X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/91dc5f1d7f5ad9eb2640f6089e2d0476cbf87c8e..33f91bb5a4ed93e9cadf21920526daa53351dbea:/sdk/cwl/arvados_cwl/arv-cwl-schema.yml diff --git a/sdk/cwl/arvados_cwl/arv-cwl-schema.yml b/sdk/cwl/arvados_cwl/arv-cwl-schema.yml index 3a6eb47697..7ae2239e2e 100644 --- a/sdk/cwl/arvados_cwl/arv-cwl-schema.yml +++ b/sdk/cwl/arvados_cwl/arv-cwl-schema.yml @@ -1,7 +1,36 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 + $base: "http://arvados.org/cwl#" +$namespaces: + cwl: "https://w3id.org/cwl/cwl#" + cwltool: "http://commonwl.org/cwltool#" $graph: +- $import: https://w3id.org/cwl/CommonWorkflowLanguage.yml + +- name: cwltool:LoadListingRequirement + type: record + extends: cwl:ProcessRequirement + inVocab: false + fields: + class: + type: string + doc: "Always 'LoadListingRequirement'" + jsonldPredicate: + "_id": "@type" + "_type": "@vocab" + loadListing: + type: + - "null" + - type: enum + name: LoadListingEnum + symbols: [no_listing, shallow_listing, deep_listing] + - name: RunInSingleContainer type: record + extends: cwl:ProcessRequirement + inVocab: false doc: | Indicates that a subworkflow should run in a single container and not be scheduled as separate steps. @@ -38,6 +67,8 @@ $graph: - name: RuntimeConstraints type: record + extends: cwl:ProcessRequirement + inVocab: false doc: | Set Arvados-specific runtime hints. fields: @@ -62,9 +93,17 @@ $graph: - name: PartitionRequirement type: record + extends: cwl:ProcessRequirement + inVocab: false doc: | Select preferred compute partitions on which to run jobs. fields: + - name: class + type: string + doc: "Always 'arv:PartitionRequirement'" + jsonldPredicate: + _id: "@type" + _type: "@vocab" - name: partition type: - string @@ -72,6 +111,8 @@ $graph: - name: APIRequirement type: record + extends: cwl:ProcessRequirement + inVocab: false doc: | Indicates that process wants to access to the Arvados API. Will be granted limited network access and have ARVADOS_API_HOST and ARVADOS_API_TOKEN set @@ -83,3 +124,48 @@ $graph: jsonldPredicate: _id: "@type" _type: "@vocab" + +- name: IntermediateOutput + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Specify desired handling of intermediate output collections. + fields: + class: + type: string + doc: "Always 'arv:IntermediateOutput'" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + outputTTL: + type: int + doc: | + If the value is greater than zero, consider intermediate output + collections to be temporary and should be automatically + trashed. Temporary collections will be trashed `outputTTL` seconds + after creation. A value of zero means intermediate output should be + retained indefinitely (this is the default behavior). + + Note: arvados-cwl-runner currently does not take workflow dependencies + into account when setting the TTL on an intermediate output + collection. If the TTL is too short, it is possible for a collection to + be trashed before downstream steps that consume it are started. The + recommended minimum value for TTL is the expected duration of the + entire the workflow. + +- name: ReuseRequirement + type: record + extends: cwl:ProcessRequirement + inVocab: false + doc: | + Enable/disable work reuse for current process. Default true (work reuse enabled). + fields: + - name: class + type: string + doc: "Always 'arv:ReuseRequirement'" + jsonldPredicate: + _id: "@type" + _type: "@vocab" + - name: enableReuse + type: boolean