comparison env/lib/python3.7/site-packages/cwltool/schemas/v1.0/Process.yml @ 0:26e78fe6e8c4 draft

"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author shellac
date Sat, 02 May 2020 07:14:21 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:26e78fe6e8c4
1 $base: "https://w3id.org/cwl/cwl#"
2
3 $namespaces:
4 cwl: "https://w3id.org/cwl/cwl#"
5 sld: "https://w3id.org/cwl/salad#"
6 rdfs: "http://www.w3.org/2000/01/rdf-schema#"
7
8 $graph:
9
10 - name: "Common Workflow Language, v1.0"
11 type: documentation
12 doc: {$include: concepts.md}
13
14 - $import: "salad/schema_salad/metaschema/metaschema_base.yml"
15
16 - name: BaseTypesDoc
17 type: documentation
18 doc: |
19 ## Base types
20 docChild:
21 - "#CWLType"
22 - "#Process"
23
24 - type: enum
25 name: CWLVersion
26 doc: "Version symbols for published CWL document versions."
27 symbols:
28 - cwl:draft-2
29 - cwl:draft-3.dev1
30 - cwl:draft-3.dev2
31 - cwl:draft-3.dev3
32 - cwl:draft-3.dev4
33 - cwl:draft-3.dev5
34 - cwl:draft-3
35 - cwl:draft-4.dev1
36 - cwl:draft-4.dev2
37 - cwl:draft-4.dev3
38 - cwl:v1.0.dev4
39 - cwl:v1.0
40
41 - name: CWLType
42 type: enum
43 extends: "sld:PrimitiveType"
44 symbols:
45 - cwl:File
46 - cwl:Directory
47 doc:
48 - "Extends primitive types with the concept of a file and directory as a builtin type."
49 - "File: A File object"
50 - "Directory: A Directory object"
51
52 - name: File
53 type: record
54 docParent: "#CWLType"
55 doc: |
56 Represents a file (or group of files when `secondaryFiles` is provided) that
57 will be accessible by tools using standard POSIX file system call API such as
58 open(2) and read(2).
59
60 Files are represented as objects with `class` of `File`. File objects have
61 a number of properties that provide metadata about the file.
62
63 The `location` property of a File is a URI that uniquely identifies the
64 file. Implementations must support the file:// URI scheme and may support
65 other schemes such as http://. The value of `location` may also be a
66 relative reference, in which case it must be resolved relative to the URI
67 of the document it appears in. Alternately to `location`, implementations
68 must also accept the `path` property on File, which must be a filesystem
69 path available on the same host as the CWL runner (for inputs) or the
70 runtime environment of a command line tool execution (for command line tool
71 outputs).
72
73 If no `location` or `path` is specified, a file object must specify
74 `contents` with the UTF-8 text content of the file. This is a "file
75 literal". File literals do not correspond to external resources, but are
76 created on disk with `contents` with when needed for a executing a tool.
77 Where appropriate, expressions can return file literals to define new files
78 on a runtime. The maximum size of `contents` is 64 kilobytes.
79
80 The `basename` property defines the filename on disk where the file is
81 staged. This may differ from the resource name. If not provided,
82 `basename` must be computed from the last path part of `location` and made
83 available to expressions.
84
85 The `secondaryFiles` property is a list of File or Directory objects that
86 must be staged in the same directory as the primary file. It is an error
87 for file names to be duplicated in `secondaryFiles`.
88
89 The `size` property is the size in bytes of the File. It must be computed
90 from the resource and made available to expressions. The `checksum` field
91 contains a cryptographic hash of the file content for use it verifying file
92 contents. Implementations may, at user option, enable or disable
93 computation of the `checksum` field for performance or other reasons.
94 However, the ability to compute output checksums is required to pass the
95 CWL conformance test suite.
96
97 When executing a CommandLineTool, the files and secondary files may be
98 staged to an arbitrary directory, but must use the value of `basename` for
99 the filename. The `path` property must be file path in the context of the
100 tool execution runtime (local to the compute node, or within the executing
101 container). All computed properties should be available to expressions.
102 File literals also must be staged and `path` must be set.
103
104 When collecting CommandLineTool outputs, `glob` matching returns file paths
105 (with the `path` property) and the derived properties. This can all be
106 modified by `outputEval`. Alternately, if the file `cwl.output.json` is
107 present in the output, `outputBinding` is ignored.
108
109 File objects in the output must provide either a `location` URI or a `path`
110 property in the context of the tool execution runtime (local to the compute
111 node, or within the executing container).
112
113 When evaluating an ExpressionTool, file objects must be referenced via
114 `location` (the expression tool does not have access to files on disk so
115 `path` is meaningless) or as file literals. It is legal to return a file
116 object with an existing `location` but a different `basename`. The
117 `loadContents` field of ExpressionTool inputs behaves the same as on
118 CommandLineTool inputs, however it is not meaningful on the outputs.
119
120 An ExpressionTool may forward file references from input to output by using
121 the same value for `location`.
122
123 fields:
124 - name: class
125 type:
126 type: enum
127 name: File_class
128 symbols:
129 - cwl:File
130 jsonldPredicate:
131 _id: "@type"
132 _type: "@vocab"
133 doc: Must be `File` to indicate this object describes a file.
134 - name: location
135 type: string?
136 doc: |
137 An IRI that identifies the file resource. This may be a relative
138 reference, in which case it must be resolved using the base IRI of the
139 document. The location may refer to a local or remote resource; the
140 implementation must use the IRI to retrieve file content. If an
141 implementation is unable to retrieve the file content stored at a
142 remote resource (due to unsupported protocol, access denied, or other
143 issue) it must signal an error.
144
145 If the `location` field is not provided, the `contents` field must be
146 provided. The implementation must assign a unique identifier for
147 the `location` field.
148
149 If the `path` field is provided but the `location` field is not, an
150 implementation may assign the value of the `path` field to `location`,
151 then follow the rules above.
152 jsonldPredicate:
153 _id: "@id"
154 _type: "@id"
155 - name: path
156 type: string?
157 doc: |
158 The local host path where the File is available when a CommandLineTool is
159 executed. This field must be set by the implementation. The final
160 path component must match the value of `basename`. This field
161 must not be used in any other context. The command line tool being
162 executed must be able to to access the file at `path` using the POSIX
163 `open(2)` syscall.
164
165 As a special case, if the `path` field is provided but the `location`
166 field is not, an implementation may assign the value of the `path`
167 field to `location`, and remove the `path` field.
168
169 If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02)
170 (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`,
171 `<space>`, `<tab>`, and `<newline>`) or characters
172 [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml)
173 for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452)
174 then implementations may terminate the process with a
175 `permanentFailure`.
176 jsonldPredicate:
177 "_id": "cwl:path"
178 "_type": "@id"
179 - name: basename
180 type: string?
181 doc: |
182 The base name of the file, that is, the name of the file without any
183 leading directory path. The base name must not contain a slash `/`.
184
185 If not provided, the implementation must set this field based on the
186 `location` field by taking the final path component after parsing
187 `location` as an IRI. If `basename` is provided, it is not required to
188 match the value from `location`.
189
190 When this file is made available to a CommandLineTool, it must be named
191 with `basename`, i.e. the final component of the `path` field must match
192 `basename`.
193 jsonldPredicate: "cwl:basename"
194 - name: dirname
195 type: string?
196 doc: |
197 The name of the directory containing file, that is, the path leading up
198 to the final slash in the path such that `dirname + '/' + basename ==
199 path`.
200
201 The implementation must set this field based on the value of `path`
202 prior to evaluating parameter references or expressions in a
203 CommandLineTool document. This field must not be used in any other
204 context.
205 - name: nameroot
206 type: string?
207 doc: |
208 The basename root such that `nameroot + nameext == basename`, and
209 `nameext` is empty or begins with a period and contains at most one
210 period. For the purposess of path splitting leading periods on the
211 basename are ignored; a basename of `.cshrc` will have a nameroot of
212 `.cshrc`.
213
214 The implementation must set this field automatically based on the value
215 of `basename` prior to evaluating parameter references or expressions.
216 - name: nameext
217 type: string?
218 doc: |
219 The basename extension such that `nameroot + nameext == basename`, and
220 `nameext` is empty or begins with a period and contains at most one
221 period. Leading periods on the basename are ignored; a basename of
222 `.cshrc` will have an empty `nameext`.
223
224 The implementation must set this field automatically based on the value
225 of `basename` prior to evaluating parameter references or expressions.
226 - name: checksum
227 type: string?
228 doc: |
229 Optional hash code for validating file integrity. Currently must be in the form
230 "sha1$ + hexadecimal string" using the SHA-1 algorithm.
231 - name: size
232 type: long?
233 doc: Optional file size
234 - name: "secondaryFiles"
235 type:
236 - "null"
237 - type: array
238 items: [File, Directory]
239 jsonldPredicate: "cwl:secondaryFiles"
240 doc: |
241 A list of additional files or directories that are associated with the
242 primary file and must be transferred alongside the primary file.
243 Examples include indexes of the primary file, or external references
244 which must be included when loading primary document. A file object
245 listed in `secondaryFiles` may itself include `secondaryFiles` for
246 which the same rules apply.
247 - name: format
248 type: string?
249 jsonldPredicate:
250 _id: cwl:format
251 _type: "@id"
252 identity: true
253 doc: |
254 The format of the file: this must be an IRI of a concept node that
255 represents the file format, preferrably defined within an ontology.
256 If no ontology is available, file formats may be tested by exact match.
257
258 Reasoning about format compatability must be done by checking that an
259 input file format is the same, `owl:equivalentClass` or
260 `rdfs:subClassOf` the format required by the input parameter.
261 `owl:equivalentClass` is transitive with `rdfs:subClassOf`, e.g. if
262 `<B> owl:equivalentClass <C>` and `<B> owl:subclassOf <A>` then infer
263 `<C> owl:subclassOf <A>`.
264
265 File format ontologies may be provided in the "$schema" metadata at the
266 root of the document. If no ontologies are specified in `$schema`, the
267 runtime may perform exact file format matches.
268 - name: contents
269 type: string?
270 doc: |
271 File contents literal. Maximum of 64 KiB.
272
273 If neither `location` nor `path` is provided, `contents` must be
274 non-null. The implementation must assign a unique identifier for the
275 `location` field. When the file is staged as input to CommandLineTool,
276 the value of `contents` must be written to a file.
277
278 If `loadContents` of `inputBinding` or `outputBinding` is true and
279 `location` is valid, the implementation must read up to the first 64
280 KiB of text from the file and place it in the "contents" field.
281
282
283 - name: Directory
284 type: record
285 docAfter: "#File"
286 doc: |
287 Represents a directory to present to a command line tool.
288
289 Directories are represented as objects with `class` of `Directory`. Directory objects have
290 a number of properties that provide metadata about the directory.
291
292 The `location` property of a Directory is a URI that uniquely identifies
293 the directory. Implementations must support the file:// URI scheme and may
294 support other schemes such as http://. Alternately to `location`,
295 implementations must also accept the `path` property on Direcotry, which
296 must be a filesystem path available on the same host as the CWL runner (for
297 inputs) or the runtime environment of a command line tool execution (for
298 command line tool outputs).
299
300 A Directory object may have a `listing` field. This is a list of File and
301 Directory objects that are contained in the Directory. For each entry in
302 `listing`, the `basename` property defines the name of the File or
303 Subdirectory when staged to disk. If `listing` is not provided, the
304 implementation must have some way of fetching the Directory listing at
305 runtime based on the `location` field.
306
307 If a Directory does not have `location`, it is a Directory literal. A
308 Directory literal must provide `listing`. Directory literals must be
309 created on disk at runtime as needed.
310
311 The resources in a Directory literal do not need to have any implied
312 relationship in their `location`. For example, a Directory listing may
313 contain two files located on different hosts. It is the responsibility of
314 the runtime to ensure that those files are staged to disk appropriately.
315 Secondary files associated with files in `listing` must also be staged to
316 the same Directory.
317
318 When executing a CommandLineTool, Directories must be recursively staged
319 first and have local values of `path` assigend.
320
321 Directory objects in CommandLineTool output must provide either a
322 `location` URI or a `path` property in the context of the tool execution
323 runtime (local to the compute node, or within the executing container).
324
325 An ExpressionTool may forward file references from input to output by using
326 the same value for `location`.
327
328 Name conflicts (the same `basename` appearing multiple times in `listing`
329 or in any entry in `secondaryFiles` in the listing) is a fatal error.
330
331 fields:
332 - name: class
333 type:
334 type: enum
335 name: Directory_class
336 symbols:
337 - cwl:Directory
338 jsonldPredicate:
339 _id: "@type"
340 _type: "@vocab"
341 doc: Must be `Directory` to indicate this object describes a Directory.
342 - name: location
343 type: string?
344 doc: |
345 An IRI that identifies the directory resource. This may be a relative
346 reference, in which case it must be resolved using the base IRI of the
347 document. The location may refer to a local or remote resource. If
348 the `listing` field is not set, the implementation must use the
349 location IRI to retrieve directory listing. If an implementation is
350 unable to retrieve the directory listing stored at a remote resource (due to
351 unsupported protocol, access denied, or other issue) it must signal an
352 error.
353
354 If the `location` field is not provided, the `listing` field must be
355 provided. The implementation must assign a unique identifier for
356 the `location` field.
357
358 If the `path` field is provided but the `location` field is not, an
359 implementation may assign the value of the `path` field to `location`,
360 then follow the rules above.
361 jsonldPredicate:
362 _id: "@id"
363 _type: "@id"
364 - name: path
365 type: string?
366 doc: |
367 The local path where the Directory is made available prior to executing a
368 CommandLineTool. This must be set by the implementation. This field
369 must not be used in any other context. The command line tool being
370 executed must be able to to access the directory at `path` using the POSIX
371 `opendir(2)` syscall.
372
373 If the `path` contains [POSIX shell metacharacters](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_02)
374 (`|`,`&`, `;`, `<`, `>`, `(`,`)`, `$`,`` ` ``, `\`, `"`, `'`,
375 `<space>`, `<tab>`, and `<newline>`) or characters
376 [not allowed](http://www.iana.org/assignments/idna-tables-6.3.0/idna-tables-6.3.0.xhtml)
377 for [Internationalized Domain Names for Applications](https://tools.ietf.org/html/rfc6452)
378 then implementations may terminate the process with a
379 `permanentFailure`.
380 jsonldPredicate:
381 _id: "cwl:path"
382 _type: "@id"
383 - name: basename
384 type: string?
385 doc: |
386 The base name of the directory, that is, the name of the file without any
387 leading directory path. The base name must not contain a slash `/`.
388
389 If not provided, the implementation must set this field based on the
390 `location` field by taking the final path component after parsing
391 `location` as an IRI. If `basename` is provided, it is not required to
392 match the value from `location`.
393
394 When this file is made available to a CommandLineTool, it must be named
395 with `basename`, i.e. the final component of the `path` field must match
396 `basename`.
397 jsonldPredicate: "cwl:basename"
398 - name: listing
399 type:
400 - "null"
401 - type: array
402 items: [File, Directory]
403 doc: |
404 List of files or subdirectories contained in this directory. The name
405 of each file or subdirectory is determined by the `basename` field of
406 each `File` or `Directory` object. It is an error if a `File` shares a
407 `basename` with any other entry in `listing`. If two or more
408 `Directory` object share the same `basename`, this must be treated as
409 equivalent to a single subdirectory with the listings recursively
410 merged.
411 jsonldPredicate:
412 _id: "cwl:listing"
413
414 - name: SchemaBase
415 type: record
416 abstract: true
417 fields:
418 - name: label
419 type:
420 - "null"
421 - string
422 jsonldPredicate: "rdfs:label"
423 doc: "A short, human-readable label of this object."
424
425
426 - name: Parameter
427 type: record
428 extends: SchemaBase
429 abstract: true
430 doc: |
431 Define an input or output parameter to a process.
432
433 fields:
434 - name: secondaryFiles
435 type:
436 - "null"
437 - string
438 - Expression
439 - type: array
440 items: [string, Expression]
441 jsonldPredicate: "cwl:secondaryFiles"
442 doc: |
443 Only valid when `type: File` or is an array of `items: File`.
444
445 Provides a pattern or expression specifying files or directories that
446 must be included alongside the primary file. All listed secondary
447 files must be present. An implementation may fail workflow execution
448 if an expected secondary file does not exist.
449
450 If the value is an expression, the value of `self` in the expression
451 must be the primary input or output File object to which this binding
452 applies. The `basename`, `nameroot` and `nameext` fields must be
453 present in `self`. For `CommandLineTool` outputs the `path` field must
454 also be present. The expression must return a filename string relative
455 to the path to the primary File, a File or Directory object with either
456 `path` or `location` and `basename` fields set, or an array consisting
457 of strings or File or Directory objects. It is legal to reference an
458 unchanged File or Directory object taken from input as a secondaryFile.
459
460 To work on non-filename-preserving storage systems, portable tool
461 descriptions should avoid constructing new values from `location`, but
462 should construct relative references using `basename` or `nameroot`
463 instead.
464
465 If a value in `secondaryFiles` is a string that is not an expression,
466 it specifies that the following pattern should be applied to the path
467 of the primary file to yield a filename relative to the primary File:
468
469 1. If string begins with one or more caret `^` characters, for each
470 caret, remove the last file extension from the path (the last
471 period `.` and all following characters). If there are no file
472 extensions, the path is unchanged.
473 2. Append the remainder of the string to the end of the file path.
474
475 - name: streamable
476 type: boolean?
477 doc: |
478 Only valid when `type: File` or is an array of `items: File`.
479
480 A value of `true` indicates that the file is read or written
481 sequentially without seeking. An implementation may use this flag to
482 indicate whether it is valid to stream file contents using a named
483 pipe. Default: `false`.
484
485 - name: doc
486 type:
487 - string?
488 - string[]?
489 doc: "A documentation string for this type, or an array of strings which should be concatenated."
490 jsonldPredicate: "rdfs:comment"
491
492
493 - type: enum
494 name: Expression
495 doc: |
496 'Expression' is not a real type. It indicates that a field must allow
497 runtime parameter references. If [InlineJavascriptRequirement](#InlineJavascriptRequirement)
498 is declared and supported by the platform, the field must also allow
499 Javascript expressions.
500 symbols:
501 - cwl:ExpressionPlaceholder
502
503
504 - name: InputBinding
505 type: record
506 abstract: true
507 fields:
508 - name: loadContents
509 type:
510 - "null"
511 - boolean
512 jsonldPredicate: "cwl:loadContents"
513 doc: |
514 Only valid when `type: File` or is an array of `items: File`.
515
516 Read up to the first 64 KiB of text from the file and place it in the
517 "contents" field of the file object for use by expressions.
518
519
520 - name: OutputBinding
521 type: record
522 abstract: true
523
524
525 - name: InputSchema
526 extends: SchemaBase
527 type: record
528 abstract: true
529
530
531 - name: OutputSchema
532 extends: SchemaBase
533 type: record
534 abstract: true
535
536
537 - name: InputRecordField
538 type: record
539 extends: "sld:RecordField"
540 specialize:
541 - specializeFrom: "sld:RecordSchema"
542 specializeTo: InputRecordSchema
543 - specializeFrom: "sld:EnumSchema"
544 specializeTo: InputEnumSchema
545 - specializeFrom: "sld:ArraySchema"
546 specializeTo: InputArraySchema
547 - specializeFrom: "sld:PrimitiveType"
548 specializeTo: CWLType
549 fields:
550 - name: inputBinding
551 type: InputBinding?
552 jsonldPredicate: "cwl:inputBinding"
553 - name: label
554 type: string?
555 jsonldPredicate: "rdfs:label"
556 doc: "A short, human-readable label of this process object."
557
558
559 - name: InputRecordSchema
560 type: record
561 extends: ["sld:RecordSchema", InputSchema]
562 specialize:
563 - specializeFrom: "sld:RecordField"
564 specializeTo: InputRecordField
565
566
567 - name: InputEnumSchema
568 type: record
569 extends: ["sld:EnumSchema", InputSchema]
570 fields:
571 - name: inputBinding
572 type: InputBinding?
573 jsonldPredicate: "cwl:inputBinding"
574
575
576 - name: InputArraySchema
577 type: record
578 extends: ["sld:ArraySchema", InputSchema]
579 specialize:
580 - specializeFrom: "sld:RecordSchema"
581 specializeTo: InputRecordSchema
582 - specializeFrom: "sld:EnumSchema"
583 specializeTo: InputEnumSchema
584 - specializeFrom: "sld:ArraySchema"
585 specializeTo: InputArraySchema
586 - specializeFrom: "sld:PrimitiveType"
587 specializeTo: CWLType
588 fields:
589 - name: inputBinding
590 type: InputBinding?
591 jsonldPredicate: "cwl:inputBinding"
592
593
594 - name: OutputRecordField
595 type: record
596 extends: "sld:RecordField"
597 specialize:
598 - specializeFrom: "sld:RecordSchema"
599 specializeTo: OutputRecordSchema
600 - specializeFrom: "sld:EnumSchema"
601 specializeTo: OutputEnumSchema
602 - specializeFrom: "sld:ArraySchema"
603 specializeTo: OutputArraySchema
604 - specializeFrom: "sld:PrimitiveType"
605 specializeTo: CWLType
606 fields:
607 - name: outputBinding
608 type: OutputBinding?
609 jsonldPredicate: "cwl:outputBinding"
610
611
612 - name: OutputRecordSchema
613 type: record
614 extends: ["sld:RecordSchema", "#OutputSchema"]
615 docParent: "#OutputParameter"
616 specialize:
617 - specializeFrom: "sld:RecordField"
618 specializeTo: OutputRecordField
619
620
621 - name: OutputEnumSchema
622 type: record
623 extends: ["sld:EnumSchema", OutputSchema]
624 docParent: "#OutputParameter"
625 fields:
626 - name: outputBinding
627 type: OutputBinding?
628 jsonldPredicate: "cwl:outputBinding"
629
630 - name: OutputArraySchema
631 type: record
632 extends: ["sld:ArraySchema", OutputSchema]
633 docParent: "#OutputParameter"
634 specialize:
635 - specializeFrom: "sld:RecordSchema"
636 specializeTo: OutputRecordSchema
637 - specializeFrom: "sld:EnumSchema"
638 specializeTo: OutputEnumSchema
639 - specializeFrom: "sld:ArraySchema"
640 specializeTo: OutputArraySchema
641 - specializeFrom: "sld:PrimitiveType"
642 specializeTo: CWLType
643 fields:
644 - name: outputBinding
645 type: OutputBinding?
646 jsonldPredicate: "cwl:outputBinding"
647
648
649 - name: InputParameter
650 type: record
651 extends: Parameter
652 fields:
653 - name: id
654 type: string
655 jsonldPredicate: "@id"
656 doc: "The unique identifier for this parameter object."
657
658 - name: format
659 type:
660 - "null"
661 - string
662 - type: array
663 items: string
664 - Expression
665 jsonldPredicate:
666 _id: cwl:format
667 _type: "@id"
668 identity: true
669 doc: |
670 Only valid when `type: File` or is an array of `items: File`.
671
672 This must be one or more IRIs of concept nodes
673 that represents file formats which are allowed as input to this
674 parameter, preferrably defined within an ontology. If no ontology is
675 available, file formats may be tested by exact match.
676
677
678 - name: inputBinding
679 type: InputBinding?
680 jsonldPredicate: "cwl:inputBinding"
681 doc: |
682 Describes how to handle the inputs of a process and convert them
683 into a concrete form for execution, such as command line parameters.
684
685 - name: default
686 type: Any?
687 jsonldPredicate:
688 _id: cwl:default
689 noLinkCheck: true
690 doc: |
691 The default value to use for this parameter if the parameter is missing
692 from the input object, or if the value of the parameter in the input
693 object is `null`. Default values are applied before evaluating expressions
694 (e.g. dependent `valueFrom` fields).
695
696 - name: type
697 type:
698 - "null"
699 - CWLType
700 - InputRecordSchema
701 - InputEnumSchema
702 - InputArraySchema
703 - string
704 - type: array
705 items:
706 - CWLType
707 - InputRecordSchema
708 - InputEnumSchema
709 - InputArraySchema
710 - string
711 jsonldPredicate:
712 "_id": "sld:type"
713 "_type": "@vocab"
714 refScope: 2
715 typeDSL: True
716 doc: |
717 Specify valid types of data that may be assigned to this parameter.
718
719 - name: OutputParameter
720 type: record
721 extends: Parameter
722 fields:
723 - name: id
724 type: string
725 jsonldPredicate: "@id"
726 doc: "The unique identifier for this parameter object."
727 - name: outputBinding
728 type: OutputBinding?
729 jsonldPredicate: "cwl:outputBinding"
730 doc: |
731 Describes how to handle the outputs of a process.
732 - name: format
733 type:
734 - "null"
735 - string
736 - Expression
737 jsonldPredicate:
738 _id: cwl:format
739 _type: "@id"
740 identity: true
741 doc: |
742 Only valid when `type: File` or is an array of `items: File`.
743
744 This is the file format that will be assigned to
745 the output parameter.
746
747
748
749 - type: record
750 name: ProcessRequirement
751 abstract: true
752 doc: |
753 A process requirement declares a prerequisite that may or must be fulfilled
754 before executing a process. See [`Process.hints`](#process) and
755 [`Process.requirements`](#process).
756
757 Process requirements are the primary mechanism for specifying extensions to
758 the CWL core specification.
759
760
761 - type: record
762 name: Process
763 abstract: true
764 doc: |
765
766 The base executable type in CWL is the `Process` object defined by the
767 document. Note that the `Process` object is abstract and cannot be
768 directly executed.
769
770 fields:
771 - name: id
772 type: string?
773 jsonldPredicate: "@id"
774 doc: "The unique identifier for this process object."
775 - name: inputs
776 type:
777 type: array
778 items: InputParameter
779 jsonldPredicate:
780 _id: "cwl:inputs"
781 mapSubject: id
782 mapPredicate: type
783 doc: |
784 Defines the input parameters of the process. The process is ready to
785 run when all required input parameters are associated with concrete
786 values. Input parameters include a schema for each parameter which is
787 used to validate the input object. It may also be used to build a user
788 interface for constructing the input object.
789
790 When accepting an input object, all input parameters must have a value.
791 If an input parameter is missing from the input object, it must be
792 assigned a value of `null` (or the value of `default` for that
793 parameter, if provided) for the purposes of validation and evaluation
794 of expressions.
795
796 - name: outputs
797 type:
798 type: array
799 items: OutputParameter
800 jsonldPredicate:
801 _id: "cwl:outputs"
802 mapSubject: id
803 mapPredicate: type
804 doc: |
805 Defines the parameters representing the output of the process. May be
806 used to generate and/or validate the output object.
807 - name: requirements
808 type: ProcessRequirement[]?
809 jsonldPredicate:
810 _id: "cwl:requirements"
811 mapSubject: class
812 doc: |
813 Declares requirements that apply to either the runtime environment or the
814 workflow engine that must be met in order to execute this process. If
815 an implementation cannot satisfy all requirements, or a requirement is
816 listed which is not recognized by the implementation, it is a fatal
817 error and the implementation must not attempt to run the process,
818 unless overridden at user option.
819 - name: hints
820 type: Any[]?
821 doc: |
822 Declares hints applying to either the runtime environment or the
823 workflow engine that may be helpful in executing this process. It is
824 not an error if an implementation cannot satisfy all hints, however
825 the implementation may report a warning.
826 jsonldPredicate:
827 _id: cwl:hints
828 noLinkCheck: true
829 mapSubject: class
830 - name: label
831 type: string?
832 jsonldPredicate: "rdfs:label"
833 doc: "A short, human-readable label of this process object."
834 - name: doc
835 type: string?
836 jsonldPredicate: "rdfs:comment"
837 doc: "A long, human-readable description of this process object."
838 - name: cwlVersion
839 type: CWLVersion?
840 doc: |
841 CWL document version. Always required at the document root. Not
842 required for a Process embedded inside another Process.
843 jsonldPredicate:
844 "_id": "cwl:cwlVersion"
845 "_type": "@vocab"
846
847 - name: InlineJavascriptRequirement
848 type: record
849 extends: ProcessRequirement
850 doc: |
851 Indicates that the workflow platform must support inline Javascript expressions.
852 If this requirement is not present, the workflow platform must not perform expression
853 interpolatation.
854 fields:
855 - name: class
856 type: string
857 doc: "Always 'InlineJavascriptRequirement'"
858 jsonldPredicate:
859 "_id": "@type"
860 "_type": "@vocab"
861 - name: expressionLib
862 type: string[]?
863 doc: |
864 Additional code fragments that will also be inserted
865 before executing the expression code. Allows for function definitions that may
866 be called from CWL expressions.
867
868
869 - name: SchemaDefRequirement
870 type: record
871 extends: ProcessRequirement
872 doc: |
873 This field consists of an array of type definitions which must be used when
874 interpreting the `inputs` and `outputs` fields. When a `type` field
875 contain a IRI, the implementation must check if the type is defined in
876 `schemaDefs` and use that definition. If the type is not found in
877 `schemaDefs`, it is an error. The entries in `schemaDefs` must be
878 processed in the order listed such that later schema definitions may refer
879 to earlier schema definitions.
880 fields:
881 - name: class
882 type: string
883 doc: "Always 'SchemaDefRequirement'"
884 jsonldPredicate:
885 "_id": "@type"
886 "_type": "@vocab"
887 - name: types
888 type:
889 type: array
890 items: InputSchema
891 doc: The list of type definitions.