{ "metadata": { "template_author": "Brinda Santh Muthuramalingam", "author-email": "brindasanth@gmail.com", "user-groups": "ADMIN, OPERATION", "template_name": "baseconfiguration", "template_version": "1.0.0", "template_tags": "brinda, tosca" }, "topology_template": { "inputs": { "request-id": { "required": true, "type": "string" }, "action-name": { "required": true, "type": "string" }, "scope-type": { "required": true, "type": "string" }, "hostname": { "required": true, "type": "string" } }, "node_templates": { "activate-process": { "type": "bpmn-activate", "properties": { "process-name": { "get_input": "action-name" }, "version": { "get_property": [ "SELF", "process-name" ] }, "content": { "get_artifact": [ "SELF", "activate-process" ] } }, "artifacts": { "activate-process": { "type": "artifact-bpmn-camunda", "file": "Plans/ActivateProcess.bpmn" } } }, "resource-assignment": { "type": "component-resource-assignment", "properties": { "request-id": "1234" }, "interfaces": { "DefaultComponentNode": { "operations": { "process": { "inputs": { "action-name": { "get_input": "action-name" }, "resource-type": "vnf-type", "request-id": { "get_input": "request-id" }, "resource-id": { "get_input": "hostname" }, "template-content": { "get_artifact": [ "SELF", "baseconfig-template" ] }, "mapping-content": { "get_artifact": [ "SELF", "baseconfig-mapping" ] } }, "outputs": { "resource-assignment-params": "", "status": "" } } } } }, "artifacts": { "baseconfig-template": { "type": "artifact-template-velocity", "file": "Templates/baseconfig-template.vtl" }, "baseconfig-mapping": { "type": "artifact-mapping-resource", "file": "Mappings/baseconfig-mapping.json" } } }, "resource-assignment-py": { "type": "component-resource-assignment", "properties": { "request-id": "1234" }, "interfaces": { "DefaultComponentNode": { "operations": { "process": { "implementation": { "primary": "component-script" }, "inputs": { "action-name": { "get_input": "action-name" } }, "outputs": { "resource-assignment-params": "", "status": "" } } } } }, "artifacts": { "component-script": { "type": "artifact-script-python", "file": "Scripts/baseconfig-template.vtl" } } } }, "workflows": { "activate-process": { "steps": { "call-resource-assignment": { "description": "Invoke Resource Assignment Component", "target": "resource-assignment", "activities": [ { "call_operation": "ResourceAssignmentNode.process" } ], "on_success": [ "download-baseconfig" ] }, "download-baseconfig": { "description": "Call Download Base Config Component", "target": "activate-netconf", "activities": [ { "call_operation": "NetconfTransactionNode.process" } ], "on_success": [ "download-licence" ] }, "download-licence": { "description": "Call Download Licence Component", "target": "activate-netconf", "activities": [ { "call_operation": "NetconfTransactionNode.process" } ] } } } } }, "artifact_types": { "artifact-template-velocity": { "description": " Velocity Template used for Configuration", "version": "1.0.0", "file_ext": [ "vtl" ], "derived_from": "tosca.artifacts.Implementation" }, "artifact-mapping-resource": { "description": " Velocity Template Resource Mapping File used along with Configuration template", "version": "1.0.0", "file_ext": [ "json" ], "derived_from": "tosca.artifacts.Implementation" }, "artifact-script-kotlin": { "description": " Kotlin Script Template used for Configuration", "version": "1.0.0", "file_ext": [ "kt" ], "derived_from": "tosca.artifacts.Implementation" }, "artifact-script-python": { "description": " Kotlin Script Template used for Configuration", "version": "1.0.0", "file_ext": [ "py" ], "derived_from": "tosca.artifacts.Implementation" }, "artifact-bpmn-camunda": { "description": " Camunda BPM File", "version": "1.0.0", "file_ext": [ "bpmn" ], "derived_from": "tosca.artifacts.Implementation" }, "artifact-component-jar": { "description": "Component Jar", "version": "1.0.0", "file_ext": [ "jar" ], "derived_from": "tosca.artifacts.Implementation" } }, "node_types": { "bpmn-activate": { "description": "This is BPMN Activate node type", "version": "1.0.0", "properties": { "content": { "required": false, "type": "string" }, "process-name": { "required": false, "type": "string" }, "version": { "required": false, "type": "string", "default": "LATEST" } }, "derived_from": "tosca.nodes.DG" }, "tosca.nodes.Component": { "description": "This is Resource Assignment Component API", "version": "1.0.0", "derived_from": "tosca.nodes.Root" }, "tosca.nodes.DG": { "description": "This is Directed Graph Node Type", "version": "1.0.0", "derived_from": "tosca.nodes.Root" }, "tosca.nodes.component.Python": { "description": "This is Resource Assignment Python Component API", "version": "1.0.0", "derived_from": "tosca.nodes.Root" }, "component-resource-assignment": { "description": "This is Resource Assignment Component API", "version": "1.0.0", "properties": { "request-id": { "description": "Request Id used to store the generated configuration, in the database along with the template-name", "required": true, "type": "string" } }, "interfaces": { "DefaultComponentNode": { "operations": { "process": { "inputs": { "action-name": { "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", "required": false, "type": "string" }, "resource-type": { "required": false, "type": "string" }, "request-id": { "description": "Request Id used to store the generated configuration, in the database along with the template-name", "required": true, "type": "string" }, "resource-id": { "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present", "required": true, "type": "string" }, "template-content": { "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present", "required": true, "type": "string" }, "mapping-content": { "description": "Id used to pull the data content from the data base. Either template-data or resource-id should be present", "required": true, "type": "string" } }, "outputs": { "resource-assignment-params": { "required": true, "type": "string" }, "status": { "required": true, "type": "string" } } } } } }, "derived_from": "tosca.nodes.Component" }, "component-resource-assignment-python": { "description": "This is Resource Assignment Component API", "version": "1.0.0", "properties": { "request-id": { "description": "Request Id used to store the generated configuration, in the database along with the template-name", "required": true, "type": "string" } }, "interfaces": { "DefaultComponentNode": { "operations": { "process": { "inputs": { "action-name": { "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", "required": false, "type": "string" } }, "outputs": { "resource-assignment-params": { "required": true, "type": "string" }, "status": { "required": true, "type": "string" } } } } } }, "derived_from": "tosca.nodes.component.Python" } }, "data_types": { "sample-property": { "description": "This is sample data type", "version": "1.0.0", "properties": { "content": { "required": false, "type": "string" }, "process-name": { "required": false, "type": "string" }, "version": { "required": false, "type": "string", "default": "LATEST" } }, "derived_from": "tosca.datatypes.Root" } } }