Merge branch '20825-cwl-separate-runner' refs #20825
[arvados.git] / sdk / cwl / arvados_cwl / arv-cwl-schema-v1.2.yml
index de5e55ca01164fa3d86454cdcf1d249a66018e2e..389add41047b7118d1701fcd43cbe85461ac0618 100644 (file)
@@ -345,3 +345,106 @@ $graph:
         _id: "@type"
         _type: "@vocab"
     usePreemptible: boolean
+
+- name: OutputCollectionProperties
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Specify metadata properties that will be set on the output
+    collection associated with this workflow or step.
+  fields:
+    class:
+      type: string
+      doc: "Always 'arv:OutputCollectionProperties"
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    outputProperties:
+      type: PropertyDef[]
+      jsonldPredicate:
+        mapSubject: propertyName
+        mapPredicate: propertyValue
+
+
+- name: KeepCacheType
+  type: enum
+  symbols:
+    - ram_cache
+    - disk_cache
+  doc:
+    - |
+        ram_cache: Keep blocks will be cached in RAM only.
+    - |
+        disk_cache: Keep blocks will be cached to disk and
+        memory-mapped.  The disk cache leverages the kernel's virtual
+        memory system so "hot" data will generally still be kept in
+        RAM.
+
+- name: KeepCacheTypeRequirement
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Choose keep cache strategy.
+  fields:
+    - name: class
+      type: string
+      doc: "'arv:KeepCacheTypeRequirement'"
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    - name: keepCacheType
+      type: KeepCacheType?
+      doc: |
+        Whether Keep blocks loaded by arv-mount should be kept in RAM
+        only or written to disk and memory-mapped.  The disk cache
+        leverages the kernel's virtual memory system so "hot" data will
+        generally still be kept in RAM.
+
+
+- name: OutOfMemoryRetry
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Detect when a failed tool run may have run out of memory, and
+    re-submit the container with more RAM.
+  fields:
+    - name: class
+      type: string
+      doc: "'arv:OutOfMemoryRetry"
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    - name: memoryErrorRegex
+      type: string?
+      doc: |
+        A regular expression that will be used on the text of stdout
+        and stderr produced by the tool to determine if a failed job
+        should be retried with more RAM.  By default, searches for the
+        substrings 'bad_alloc' and 'OutOfMemory'.
+    - name: memoryRetryMultipler
+      type: float
+      doc: |
+        If the container failed on its first run, re-submit the
+        container with the RAM request multiplied by this factor.
+
+- name: SeparateRunner
+  type: record
+  extends: cwl:ProcessRequirement
+  inVocab: false
+  doc: |
+    Indicates that a subworkflow should run in a separate
+    arvados-cwl-runner process.
+  fields:
+    - name: class
+      type: string
+      doc: "Always 'arv:SeparateRunner'"
+      jsonldPredicate:
+        _id: "@type"
+        _type: "@vocab"
+    - name: runnerProcessName
+      type: ['null', string, cwl:Expression]
+      doc: |
+        Custom name to use for the runner process