summaryrefslogtreecommitdiffstats
path: root/docs/microservices
diff options
context:
space:
mode:
Diffstat (limited to 'docs/microservices')
-rw-r--r--docs/microservices/workflow.rst73
1 files changed, 73 insertions, 0 deletions
diff --git a/docs/microservices/workflow.rst b/docs/microservices/workflow.rst
new file mode 100644
index 000000000..b74a49d2b
--- /dev/null
+++ b/docs/microservices/workflow.rst
@@ -0,0 +1,73 @@
+.. 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
+----------------
+
+.. code:: json
+
+print("
+{
+ "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 \ No newline at end of file