.. This work is licensed under a Creative Commons Attribution 4.0 .. International License. http://creativecommons.org/licenses/by/4.0 .. Copyright (C) 2019 IBM. Workflow ======== A workflow defines an overall action to be taken on the service, hence is an entry-point for the run-time execution of the CBA package. A workflow also defines inputs and outputs that will defined the payload contract of the request and response (see Dynamic API) A workflow can be composed of one or multiple sub-actions to execute. A CBA package can have as many workflows as needed. Single action ------------- The workflow is directly backed by a node_template of type tosca.nodes.Component Multiple sub-actions -------------------- The workflow is backed by Directed Graph engine, node_template of type dg-generic, and are imperative workflows. A DG used as workflow for CDS is composed of multiple execute nodes; each individual execute node refers to a plugin, that is a node_template of type tosca.nodes.Component. Below the properties of a workflow: Workflow Example ---------------- :: { "workflow": { "resource-assignment": { <- workflow-name "inputs": { "vnf-id": { <- static inputs "required": true, "type": "string" }, "resource-assignment-properties": { <- dynamic inputs "required": true, "type": "dt-resource-assignment-properties" } }, "steps": { "call-resource-assignment": { <- step-name "description": "Resource Assignment Workflow", "target": "resource-assignment-process" <- node_template targeted by the step } }, "outputs": { "template-properties": { <- output "type": "json", <- complex type "value": { "get_attribute": [ <- uses expression to retrieve attribute from context "resource-assignment", "assignment-params" ] } } } } } } TOSCA definition: http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csd01/TOSCA-Simple-Profile-YAML-v1.2-csd01.html#_Toc494454203