{ "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", "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", "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.Component" }, "tosca.nodes.Component": { "description": "This is Resource Assignment Component API", "version": "1.0.0", "properties": { "type": { "description": "Request Id used to store the generated configuration, in the database along with the template-name", "required": false, "type": "string" } }, "interfaces": { "DefaultOperation": { "operations": { "validate": { "inputs": { "action-name": { "description": "validate for action", "required": false, "type": "string" } } } } } }, "artifacts" :{ "component-jar": { "description": "Component Jar", "type": "artifact-component-jar", "file": "Component/basecomponent.jar" } }, "derived_from": "tosca.nodes.Root" }, "tosca.nodes.component.Python": { "description": "This is Resource Assignment Python Component API", "version": "1.0.0", "properties": { "type": { "description": "Request Id used to store the generated configuration, in the database along with the template-name", "required": false, "type": "string" } }, "interfaces": { "DefaultOperation": { "operations": { "validate": { "inputs": { "action-name": { "description": "validate for action", "required": false, "type": "string" } } } } } }, "artifacts" :{ "component-jar": { "description": "Component Jar", "type": "artifact-component-jar", "file": "Component/basecomponent.jar" } }, "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" } } }