Skip to content

Commit d07da91

Browse files
Added CWL extensions file
1 parent 97afb19 commit d07da91

File tree

1 file changed

+261
-0
lines changed

1 file changed

+261
-0
lines changed

extensions.yml

Lines changed: 261 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,261 @@
1+
$base: http://commonwl.org/cwltool#
2+
$namespaces:
3+
cwl: "https://w3id.org/cwl/cwl#"
4+
cwltool: "http://commonwl.org/cwltool#"
5+
$graph:
6+
- $import: https://github.com/common-workflow-language/cwl-v1.2/raw/codegen/CommonWorkflowLanguage.yml
7+
8+
- name: Secrets
9+
type: record
10+
inVocab: false
11+
extends: cwl:ProcessRequirement
12+
fields:
13+
class:
14+
type: string
15+
doc: "Always 'Secrets'"
16+
jsonldPredicate:
17+
"_id": "@type"
18+
"_type": "@vocab"
19+
secrets:
20+
type: string[]
21+
doc: |
22+
List one or more input parameters that are sensitive (such as passwords)
23+
which will be deliberately obscured from logging.
24+
jsonldPredicate:
25+
"_type": "@id"
26+
refScope: 0
27+
28+
29+
- name: ProcessGenerator
30+
type: record
31+
inVocab: true
32+
extends: cwl:Process
33+
documentRoot: true
34+
fields:
35+
- name: class
36+
jsonldPredicate:
37+
"_id": "@type"
38+
"_type": "@vocab"
39+
type: string
40+
- name: run
41+
type: [string, cwl:Process]
42+
jsonldPredicate:
43+
_id: "cwl:run"
44+
_type: "@id"
45+
subscope: run
46+
doc: |
47+
Specifies the process to run.
48+
49+
- name: MPIRequirement
50+
type: record
51+
inVocab: false
52+
extends: cwl:ProcessRequirement
53+
doc: |
54+
Indicates that a process requires an MPI runtime.
55+
fields:
56+
- name: class
57+
type: string
58+
doc: "Always 'MPIRequirement'"
59+
jsonldPredicate:
60+
"_id": "@type"
61+
"_type": "@vocab"
62+
- name: processes
63+
type: [int, cwl:Expression]
64+
doc: |
65+
The number of MPI processes to start. If you give a string,
66+
this will be evaluated as a CWL Expression and it must
67+
evaluate to an integer.
68+
69+
- name: CUDARequirement
70+
type: record
71+
extends: cwl:ProcessRequirement
72+
inVocab: false
73+
doc: |
74+
Require support for NVIDA CUDA (GPU hardware acceleration).
75+
fields:
76+
class:
77+
type: string
78+
doc: 'cwltool:CUDARequirement'
79+
jsonldPredicate:
80+
_id: "@type"
81+
_type: "@vocab"
82+
cudaVersionMin:
83+
type: string
84+
doc: |
85+
Minimum CUDA version to run the software, in X.Y format. This
86+
corresponds to a CUDA SDK release. When running directly on
87+
the host (not in a container) the host must have a compatible
88+
CUDA SDK (matching the exact version, or, starting with CUDA
89+
11.3, matching major version). When run in a container, the
90+
container image should provide the CUDA runtime, and the host
91+
driver is injected into the container. In this case, because
92+
CUDA drivers are backwards compatible, it is possible to
93+
use an older SDK with a newer driver across major versions.
94+
95+
See https://docs.nvidia.com/deploy/cuda-compatibility/ for
96+
details.
97+
cudaComputeCapability:
98+
type:
99+
- 'string'
100+
- 'string[]'
101+
doc: |
102+
CUDA hardware capability required to run the software, in X.Y
103+
format.
104+
105+
* If this is a single value, it defines only the minimum
106+
compute capability. GPUs with higher capability are also
107+
accepted.
108+
109+
* If it is an array value, then only select GPUs with compute
110+
capabilities that explicitly appear in the array.
111+
cudaDeviceCountMin:
112+
type: ['null', int, cwl:Expression]
113+
default: 1
114+
doc: |
115+
Minimum number of GPU devices to request. If not specified,
116+
same as `cudaDeviceCountMax`. If neither are specified,
117+
default 1.
118+
cudaDeviceCountMax:
119+
type: ['null', int, cwl:Expression]
120+
doc: |
121+
Maximum number of GPU devices to request. If not specified,
122+
same as `cudaDeviceCountMin`.
123+
124+
- name: LoopInput
125+
type: record
126+
fields:
127+
id:
128+
type: string?
129+
jsonldPredicate: "@id"
130+
doc: "It must reference the `id` of one of the elements in the `in` field of the step."
131+
loopSource:
132+
doc: |
133+
Specifies one or more of the step output parameters that will
134+
provide input to the loop iterations after the first one (inputs
135+
of the first iteration are the step input parameters).
136+
type:
137+
- string?
138+
- string[]?
139+
jsonldPredicate:
140+
"_type": "@id"
141+
refScope: 1
142+
linkMerge:
143+
type: cwl:LinkMergeMethod?
144+
jsonldPredicate: "cwl:linkMerge"
145+
default: merge_nested
146+
doc: |
147+
The method to use to merge multiple inbound links into a single array.
148+
If not specified, the default method is "merge_nested".
149+
pickValue:
150+
type: ["null", cwl:PickValueMethod]
151+
jsonldPredicate: "cwl:pickValue"
152+
doc: |
153+
The method to use to choose non-null elements among multiple sources.
154+
default:
155+
type: ["null", Any]
156+
doc: |
157+
The default value for this parameter to use if either there is no
158+
`source` field, or the value produced by the `source` is `null`. The
159+
default must be applied prior to scattering or evaluating `valueFrom`.
160+
jsonldPredicate:
161+
_id: "sld:default"
162+
_container: "@list"
163+
noLinkCheck: true
164+
valueFrom:
165+
type:
166+
- "null"
167+
- string
168+
- cwl:Expression
169+
jsonldPredicate: "cwl:valueFrom"
170+
doc: |
171+
To use valueFrom, [StepInputExpressionRequirement](#StepInputExpressionRequirement) must
172+
be specified in the workflow or workflow step requirements.
173+
174+
If `valueFrom` is a constant string value, use this as the value for
175+
this input parameter.
176+
177+
If `valueFrom` is a parameter reference or expression, it must be
178+
evaluated to yield the actual value to be assigned to the input field.
179+
180+
The `self` value in the parameter reference or expression must be
181+
`null` if there is no `loopSource` field, or the value of the
182+
parameter(s) specified in the `loopSource` field.
183+
184+
The value of `inputs` in the parameter reference or expression must be
185+
the input object to the previous iteration of the workflow step (or the initial
186+
inputs for the first iteration).
187+
188+
- name: Loop
189+
type: record
190+
extends: cwl:ProcessRequirement
191+
inVocab: false
192+
doc: |
193+
Prototype to enable workflow-level looping of a step.
194+
195+
Valid only under `requirements` of a https://www.commonwl.org/v1.2/Workflow.html#WorkflowStep.
196+
Unlike other CWL requirements, Loop requirement is not propagated to inner steps.
197+
198+
`loopWhen` is an expansion of the CWL v1.2 `when` construct which controls
199+
conditional execution.
200+
201+
Using `loopWhen` and `when` for the same step will produce an error.
202+
203+
`loopWhen` is not compatible with `scatter` at this time and combining the
204+
two in the same step will produce an error.
205+
fields:
206+
class:
207+
type: string
208+
doc: 'cwltool:Loop'
209+
jsonldPredicate:
210+
_id: "@type"
211+
_type: "@vocab"
212+
loopWhen:
213+
type: cwl:Expression
214+
doc: |
215+
Only run the step while the expression evaluates to `true`.
216+
If `false` and no iteration has been performed, the step is skipped.
217+
218+
A skipped step produces a `null` on each output.
219+
220+
The `inputs` value in the expression must be the step input object.
221+
222+
It is an error if this expression returns a value other than `true` or `false`.
223+
loop:
224+
type: LoopInput[]
225+
jsonldPredicate:
226+
_id: "cwltool:loop"
227+
mapSubject: id
228+
mapPredicate: loopSource
229+
doc: |
230+
Defines the input parameters of the loop iterations after the first one
231+
(inputs of the first iteration are the step input parameters). If no
232+
`loop` rule is specified for a given step `in` field, the initial value
233+
is kept constant among all iterations.
234+
outputMethod:
235+
type:
236+
type: enum
237+
name: LoopOutputModes
238+
symbols: [ last, all ]
239+
default: last
240+
doc: |
241+
- Specify the desired method of dealing with loop outputs
242+
- Default. Propagates only the last computed element to the subsequent steps when the loop terminates.
243+
- Propagates a single array with all output values to the subsequent steps when the loop terminates.
244+
- name: ShmSize
245+
type: record
246+
extends: cwl:ProcessRequirement
247+
inVocab: false
248+
fields:
249+
class:
250+
type: string
251+
doc: 'cwltool:ShmSize'
252+
jsonldPredicate:
253+
"_id": "@type"
254+
"_type": "@vocab"
255+
shmSize:
256+
type: string
257+
doc: |
258+
Size of /dev/shm. The format is `<number><unit>`. <number> must be greater
259+
than 0. Unit is optional and can be `b` (bytes), `k` (kilobytes), `m`
260+
(megabytes), or `g` (gigabytes). If you omit the unit, the default is
261+
bytes. If you omit the size entirely, the value is `64m`."

0 commit comments

Comments
 (0)