{ "metadata" : { "template_author" : "Brinda Santh", "template_name" : "enhance-template", "template_version" : "1.0.0", "template_tags" : "brinda, VPE", "service-type" : "Sample Service", "release" : "1806", "vnf-type" : "VPE" }, "tosca_definitions_version" : "controller_blueprint_1_0_0", "artifact_types" : { }, "data_types" : { "dt-v4-aggregate" : { "description" : "This is dt-v4-aggregate Data Type", "version" : "1.0.0", "properties" : { "ipv4-address" : { "required" : true, "type" : "string" }, "ipv4-plen" : { "required" : false, "type" : "integer" } }, "derived_from" : "tosca.datatypes.Root" }, "dt-license-key" : { "description" : "This is dt-plicense-key Data Type", "version" : "1.0.0", "properties" : { "license-key" : { "required" : true, "type" : "string" } }, "derived_from" : "tosca.datatypes.Root" }, "datatype-resource-assignment" : { "description" : "This is Resource Assignment Data Type", "version" : "1.0.0", "properties" : { "property" : { "required" : true, "type" : "datatype-property" }, "input-param" : { "required" : true, "type" : "boolean" }, "dictionary-name" : { "required" : false, "type" : "string" }, "dictionary-source" : { "required" : false, "type" : "string" }, "dependencies" : { "required" : true, "type" : "list", "entry_schema" : { "type" : "string" } }, "status" : { "required" : false, "type" : "string" }, "message" : { "required" : false, "type" : "string" }, "updated-date" : { "required" : false, "type" : "string" }, "updated-by" : { "required" : false, "type" : "string" } }, "derived_from" : "tosca.datatypes.Root" }, "datatype-property" : { "description" : "This is Entry point Input Data Type, which is dynamic datatype, The parameter names will be populated during the Design time for each inputs", "version" : "1.0.0", "properties" : { "type" : { "required" : true, "type" : "string" }, "description" : { "required" : false, "type" : "string" }, "required" : { "required" : false, "type" : "boolean" }, "default" : { "required" : false, "type" : "string" }, "entry_schema" : { "required" : false, "type" : "string" } }, "derived_from" : "tosca.datatypes.Root" }, "dt-resource-assignment-request" : { "description" : "This is Dynamic Data type definition generated from resource mapping for the config template name base-config-template.", "version" : "1.0.0", "properties" : { "hostname" : { "required" : true, "type" : "string" }, "licenses" : { "required" : true, "type" : "list", "entry_schema" : { "type" : "dt-license-key" } }, "rs-db-source" : { "required" : true, "type" : "string" }, "service" : { "required" : true, "type" : "string" }, "service-instance-id" : { "required" : true, "type" : "string" }, "mdsal-source" : { "description" : "", "required" : true, "type" : "list", "entry_schema" : { "type" : "dt-v4-aggregate" } } }, "derived_from" : "tosca.datatypes.Dynamic" } }, "node_types" : { "dg-resource-assignment" : { "description" : "This is Resource Assignment Directed Graph", "version" : "1.0.0", "properties" : { "mode" : { "required" : false, "type" : "string", "default" : "sync" }, "version" : { "required" : false, "type" : "string", "default" : "LATEST" }, "is-start-flow" : { "required" : false, "type" : "boolean", "default" : false } }, "capabilities" : { "dg-node" : { "type" : "tosca.capabilities.Node" } }, "requirements" : { "component-dependency" : { "capability" : "component-node", "node" : "component-resource-assignment", "relationship" : "tosca.relationships.DependsOn" } }, "interfaces" : { "CONFIG" : { "operations" : { "ResourceAssignment" : { "inputs" : { "params" : { "required" : false, "type" : "list", "entry_schema" : { "type" : "datatype-property" } } } } } } }, "derived_from" : "tosca.nodes.DG" }, "tosca.nodes.Component" : { "description" : "This is default Component Node", "version" : "1.0.0", "derived_from" : "tosca.nodes.Root" }, "artifact-config-template" : { "description" : "This is Configuration Velocity Template", "version" : "1.0.0", "properties" : { "action-names" : { "required" : true, "type" : "list", "entry_schema" : { "type" : "string" } } }, "capabilities" : { "content" : { "type" : "tosca.capabilities.Content", "properties" : { "content" : { "required" : true, "type" : "string" } } }, "mapping" : { "type" : "tosca.capabilities.Mapping", "properties" : { "mapping" : { "required" : false, "type" : "list", "entry_schema" : { "type" : "datatype-resource-assignment" } } } } }, "derived_from" : "tosca.nodes.Artifact" }, "tosca.nodes.Vnf" : { "description" : "This is VNF Node Type", "version" : "1.0.0", "derived_from" : "tosca.nodes.Root" }, "tosca.nodes.Artifact" : { "description" : "This is Deprecated Artifact Node Type.", "version" : "1.0.0", "derived_from" : "tosca.nodes.Root" }, "dg-activate-netconf" : { "description" : "This is Download Netconf Directed Graph", "version" : "1.0.0", "properties" : { "mode" : { "required" : false, "type" : "string", "default" : "sync" }, "version" : { "required" : false, "type" : "string", "default" : "LATEST" }, "is-start-flow" : { "required" : false, "type" : "boolean", "default" : false } }, "capabilities" : { "dg-node" : { "type" : "tosca.capabilities.Node" } }, "requirements" : { "component-dependency" : { "capability" : "component-node", "node" : "component-netconf-executor", "relationship" : "tosca.relationships.DependsOn" } }, "interfaces" : { "CONFIG" : { "operations" : { "ActivateNetconf" : { "inputs" : { "params" : { "required" : false, "type" : "list", "entry_schema" : { "type" : "datatype-property" } } } } } } }, "derived_from" : "tosca.nodes.DG" }, "source-input" : { "description" : "This is Input Resource Source Node Type", "version" : "1.0.0", "properties" : { "key" : { "required" : false, "type" : "string" }, "key-dependencies" : { "required" : true, "type" : "list", "entry_schema" : { "type" : "string" } } }, "derived_from" : "tosca.nodes.ResourceSource" }, "tosca.nodes.ResourceSource" : { "description" : "TOSCA base type for Resource Sources", "version" : "1.0.0", "derived_from" : "tosca.nodes.Root" }, "component-resource-assignment" : { "description" : "This is Resource Assignment Component API", "version" : "1.0.0", "capabilities" : { "component-node" : { "type" : "tosca.capabilities.Node" } }, "interfaces" : { "ResourceAssignmentComponent" : { "operations" : { "process" : { "inputs" : { "template-name" : { "description" : "Service Template Name.", "required" : true, "type" : "string" }, "template-version" : { "description" : "Service Template Version.", "required" : true, "type" : "string" }, "resource-type" : { "description" : "Request type.", "required" : true, "type" : "string" }, "template-names" : { "description" : "Name of the artifact Node Templates, to get the template Content.", "required" : true, "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" : true, "type" : "string" }, "action-name" : { "description" : "Action Name of the process", "required" : true, "type" : "string" } }, "outputs" : { "resource-assignment-params" : { "required" : true, "type" : "string" }, "status" : { "required" : true, "type" : "string" } } } } } }, "derived_from" : "tosca.nodes.Component" }, "tosca.nodes.component.Jython" : { "description" : "This is Jython Component", "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" }, "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" ] } ] }, "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" }, "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" : true, "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 } } } }, "derived_from" : "tosca.nodes.Vnf" }, "source-rest" : { "description" : "This is Rest Resource Source Node Type", "version" : "1.0.0", "properties" : { "type" : { "required" : false, "type" : "string", "constraints" : [ { "valid_values" : [ "JSON" ] } ], "default" : "JSON" }, "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" }, "component-netconf-executor" : { "description" : "This is Netconf Transaction Configuration Component API", "version" : "1.0.0", "capabilities" : { "component-node" : { "type" : "tosca.capabilities.Node" } }, "requirements" : { "netconf-connection" : { "capability" : "netconf", "node" : "vnf-netconf-device", "relationship" : "tosca.relationships.ConnectsTo" } }, "interfaces" : { "NetconfExecutorComponent" : { "operations" : { "process" : { "inputs" : { "request-id" : { "description" : "Request Id used to store the generated configuration, in the database along with the template-name", "required" : true, "type" : "string" }, "template-name" : { "description" : "Service Template Name", "required" : true, "type" : "string" }, "template-version" : { "description" : "Service Template Version", "required" : true, "type" : "string" }, "action-name" : { "description" : "Action 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" : { "description" : "Resource Type 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-id" : { "description" : "Resource Id 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" }, "reservation-id" : { "description" : "Reservation Id used to send to NPM", "required" : false, "type" : "string" }, "execution-script" : { "description" : "Python Script to Execute for this Component action, It should refer any one of Prython Artifact Definition for this Node Template.", "required" : true, "type" : "string" } }, "outputs" : { "response-data" : { "description" : "Execution Response Data in JSON format.", "required" : false, "type" : "string" }, "status" : { "description" : "Status of the Component Execution ( success or failure )", "required" : true, "type" : "string" } } } } } }, "derived_from" : "tosca.nodes.component.Jython" } }, "topology_template" : { "inputs" : { "request-id" : { "required" : true, "type" : "string" }, "service-instance-id" : { "required" : true, "type" : "string" }, "scope-type" : { "required" : true, "type" : "string" }, "action-name" : { "required" : true, "type" : "string" }, "hostname" : { "required" : true, "type" : "string" }, "resource-assignment-request" : { "description" : "This is Dynamic Data type for the receipe resource-assignment-action.", "required" : false, "type" : "dt-resource-assignment-request" } }, "node_templates" : { "vpe-netconf-device" : { "type" : "vnf-netconf-device", "capabilities" : { "netconf" : { "properties" : { "login-key" : "sdnc", "login-account" : "sndc-local", "source" : "local", "target-ip-address" : { "get_attribute" : [ "SELF", "lo0-local-ipv4-address" ] }, "port-number" : 22, "connection-time-out" : 30 } } } }, "activate-netconf-component" : { "type" : "component-netconf-executor", "capabilities" : { "component-node" : { } }, "requirements" : { "netconf-connection" : { "capability" : "netconf", "node" : "vpe-netconf-device", "relationship" : "tosca.relationships.ConnectsTo" } }, "interfaces" : { "NetconfExecutorComponent" : { "operations" : { "process" : { "implementation" : { "primary" : "file://netconf_adaptor/DefaultBaseLicenceConfig.py" }, "inputs" : { "action-name" : { "get_input" : "action-name" }, "template-name" : { "get_input" : "template_name" }, "template-version" : { "get_input" : "template_version" }, "resource-type" : "vnf-type", "request-id" : { "get_input" : "request-id" }, "resource-id" : { "get_input" : "hostname" }, "execution-script" : "execution-script" }, "outputs" : { "response-data" : { "get_attribute" : [ "SELF", "netconf-executor-baseconfig.response-data" ] }, "status" : { "get_attribute" : [ "SELF", "netconf-executor-baseconfig.status" ] } } } } } } }, "resource-assignment-ra-component" : { "type" : "component-resource-assignment", "capabilities" : { "component-node" : { } }, "interfaces" : { "ResourceAssignmentComponent" : { "operations" : { "process" : { "inputs" : { "template-names" : [ "base-config-template", "licence-template" ], "action-name" : { "get_input" : "action-name" }, "template-name" : { "get_input" : "template_name" }, "template-version" : { "get_input" : "template-version" }, "resource-type" : "vnf-type", "request-id" : { "get_input" : "request-id" }, "resource-id" : { "get_input" : "hostname" } }, "outputs" : { "resource-assignment-params" : "success", "status" : "status" } } } } } }, "resource-assignment-action" : { "type" : "dg-resource-assignment", "properties" : { "mode" : "sync", "version" : "LATEST", "is-start-flow" : false }, "capabilities" : { "dg-node" : { } }, "requirements" : { "component-dependency" : { "capability" : "component-node", "node" : "resource-assignment-ra-component", "relationship" : "tosca.relationships.DependsOn" } }, "interfaces" : { "CONFIG" : { "operations" : { "ResourceAssignment" : { "inputs" : { "params" : [ ] } } } } } }, "activate-action" : { "type" : "dg-activate-netconf", "properties" : { "mode" : "sync", "version" : "LATEST", "is-start-flow" : false }, "capabilities" : { "dg-node" : { } }, "requirements" : { "component-dependency" : { "capability" : "component-node", "node" : "activate-netconf-component", "relationship" : "tosca.relationships.DependsOn" } }, "interfaces" : { "CONFIG" : { "operations" : { "ActivateNetconf" : { "inputs" : { "params" : [ ] } } } } } }, "base-config-template" : { "type" : "artifact-config-template", "properties" : { "action-names" : [ "resource-assignment-action" ] }, "capabilities" : { "content" : { "properties" : { "content" : "db://base-config-template" } }, "mapping" : { "properties" : { "mapping" : [ { "name" : "rs-db-source", "property" : { "required" : true, "type" : "string" }, "input-param" : false, "dictionary-name" : "sample-db-source", "dictionary-source" : "db", "dependencies" : [ "hostname" ], "version" : 0 }, { "name" : "mdsal-source", "property" : { "description" : "", "required" : true, "type" : "list", "entry_schema" : { "type" : "dt-v4-aggregate" } }, "input-param" : false, "dictionary-name" : "sample-mdsal-source", "dictionary-source" : "mdsal", "dependencies" : [ "service-instance-id" ], "version" : 0 }, { "name" : "hostname", "property" : { "required" : true, "type" : "string" }, "dictionary-name" : "hostname", "dictionary-source" : "input", "version" : 0, "input-param" : false }, { "name" : "service", "property" : { "required" : true, "type" : "string" }, "dictionary-name" : "service", "dictionary-source" : "input", "version" : 0, "input-param" : false }, { "name" : "service-instance-id", "property" : { "required" : true, "type" : "string" }, "dictionary-name" : "service-instance-id", "dictionary-source" : "input", "version" : 0, "input-param" : false } ] } } } }, "licence-template" : { "type" : "artifact-config-template", "properties" : { "action-names" : [ "resource-assignment-action" ] }, "capabilities" : { "content" : { "properties" : { "content" : "db://licence-template" } }, "mapping" : { "properties" : { "mapping" : [ { "name" : "licenses", "property" : { "required" : true, "type" : "list", "entry_schema" : { "type" : "dt-license-key" } }, "input-param" : false, "dictionary-name" : "sample-licenses", "dictionary-source" : "mdsal", "dependencies" : [ "service-instance-id" ], "version" : 0 }, { "name" : "service-instance-id", "property" : { "required" : true, "type" : "string" }, "dictionary-name" : "service-instance-id", "dictionary-source" : "input", "version" : 0, "input-param" : false } ] } } } } } } }