table(table table-bordered table-condensed).
|_. Attribute|_. Type|_. Description|_. Example|
-|name|string|If not specified, will be set to any 'name' from the 'definition' attribute.||
-|description|string|If not specified, will be set to any 'description' from the 'definition' attribute.||
-|definition|string|A definition yaml that defines the steps in the workflow.|See "Workflow definition":#workflow_definition below for details.|
-
-h2(#workflow_definition). Workflow definition
-
-The workflow definition is a string dump of the yaml document that describes the steps to be executed by any container_request created using it. It is expected to be a valid cwl document that specifies the steps and inputs to be used by the process. An example workflow with explanation follow:
-
-h3. Example workflow
-
-<pre><code>{
- "$graph": [
- {
- "class": "Workflow",
- "id": "#main",
- "inputs": [
- {
- "default": {
- "basename": "blorp.txt",
- "class": "File",
- "location": "keep:99999999999999999999999999999991+99/input/blorp.txt"
- },
- "id": "#main/x",
- "type": "File"
- }
- ],
- "steps": [
- {
- "id": "#main/step1",
- "in": [
- {
- "id": "#main/step1/x",
- "source": "#main/x"
- }
- ],
- "out": [],
- "run": "#submit_tool.cwl"
- }
- ]
- }
- . . .
- ],
- "cwlVersion": "v1.0"
-}</code></pre>
-
-h3. Explanation
-
-In the above example, the class @workflow@ in @$graph@ contains an element with the id @#main@ with @inputs@ and @steps@. In addition, information such as cwlVersion, name, description can be provided as well.
-
-table(table table-bordered table-condensed).
-|_. Element Id|_. Description|_. Notes|
-|@#main@|Specifies the steps and inputs of the workflow.||
-|@inputs@|Specifies the inputs for the workflow. The inputs can be required or optional.
-In this example, there is one input of type @File@ with id @#main/x@ with a @default@ value.
-See "Supported input types":#workflow_inputs below for the supported input types.|<pre><code>{
- "default": {
- "basename": "blorp.txt",
- "class": "File",
- "location": "keep:99999999999999999999999999999991+99/input/blorp.txt"
- },
- "id": "#main/x",
- "type": "File"
-}</code></pre>|
-|@steps@|Specifies the steps to be executed by this workflow. In this example, there is one step with id @#main/step1/x@.||
-
-h3(#workflow_inputs). Supported input types
-
-Currently, input types @boolean@, @double@, @float@, @integer@, @long@, @string@, @Directory@, @File@, and @enum@ are supported. Each can be specified as required or optional.
-
-table(table table-bordered table-condensed).
-|_. Input type|_. Example|_. Notes|
-|@boolean@ - required|<pre><code>{
- "type": "boolean",
- "id": "a_required_boolean_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|*Note:* The @id@ needs to be unique among all specified inputs.
-e.g., @a_required_boolean_input@|
-|@boolean@ - optional|<pre><code>{
- "type": ["null", "boolean"],
- "id": "a_optional_boolean_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "boolean"]@|
-|@double@|<pre><code>{
- "type": "double",
- "id": "a_double_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "double"]@|
-|@float@|<pre><code>{
- "type": "float",
- "id": "a_float_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "float"]@|
-|@int@|<pre><code>{
- "type": "int",
- "id": "an_int_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "int"]@|
-|@long@|<pre><code>{
- "type": "long",
- "id": "a_long_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "long"]@|
-|@string@|<pre><code>{
- "type": "string",
- "id": "a_string_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "string"]@|
-|@Directory@|<pre><code>{
- "type": "Directory",
- "id": "a_directory_input",
- "label": "an optional label for this input directory / collection",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "Directory"]@|
-|@File@|<pre><code>{
- "type": "File",
- "id": "a_file_input",
- "label": "an optional label for this input file in a collection",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-@"type": ["null", "File"]@|
-|@enum@ - required|<pre><code>{
- "type": {
- "type": "enum",
- "symbols": ["a", "b", "c"]
- },
- "id": "a_required_enum_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|The @symbols@ are the items in this enum.|
-|@enum@ - optional|<pre><code>{
- "type": ["null", {
- "type": "enum",
- "symbols": ["a", "b", "c"]
- }],
- "id": "a_required_enum_input",
- "label": "an optional label for this input",
- "inputBinding": {"position": 1}
-}</code></pre>|Include @null@ in @type@ definition to mark it as optional.
-<pre><code>"type": ["null", {
- "type": "enum",
- "symbols": [. . .]
- }]</code></pre>|
+|name|string|If not specified, will be set to any "name" from the "definition" attribute.||
+|description|string|If not specified, will be set to any "description" from the "definition" attribute.||
+|definition|string|A "Common Workflow Language" document.|Visit "Common Workflow Language":http://www.commonwl.org/ for details.|