additionalProperties: false
description: 'Specify basic hardware resource requirements.


  "min" is the minimum amount of a resource that must be reserved to

  schedule a job. If "min" cannot be satisfied, the job should not

  be run.


  "max" is the maximum amount of a resource that the job shall be

  allocated. If a node has sufficient resources, multiple jobs may

  be scheduled on a single node provided each job''s "max" resource

  requirements are met. If a job attempts to exceed its resource

  allocation, an implementation may deny additional resources, which

  may result in job failure.


  If both "min" and "max" are specified, an implementation may

  choose to allocate any amount between "min" and "max", with the

  actual allocation provided in the `runtime` object.


  If "min" is specified but "max" is not, then "max" == "min"

  If "max" is specified by "min" is not, then "min" == "max".


  It is an error if max < min.


  It is an error if the value of any of these fields is negative.


  If neither "min" nor "max" is specified for a resource, use the default values below

  (see also: https://www.commonwl.org/v1.2/CommandLineTool.html#ResourceRequirement).

  '
properties:
  class:
    enum:
    - ResourceRequirement
    type: string
    x-jsonld-id: '@type'
  coresMin:
    default: 1
    description: 'Minimum reserved number of CPU cores (default is 1).


      May be a fractional value to indicate to a scheduling algorithm that one core
      can be allocated to

      multiple jobs. For example, a value of 0.25 indicates that up to 4 jobs

      may run in parallel on 1 core. A value of 1.25 means that up to 3 jobs

      can run on a 4 core system (4/1.25 ~ 3).


      Processes can only share a core allocation if the sum of each of their ''ramMax'',
      ''tmpdirMax'', and

      ''outdirMax'' requests also do not exceed the capacity of the node.


      Processes sharing a core must have the same level of isolation (typically a
      container

      or VM) that they would normally have.


      The reported number of CPU cores reserved for the process, which is available
      to expressions

      on the ''CommandLineTool'' as ''runtime.cores'', must be a non-zero integer,
      and may be calculated by

      rounding up the cores request to the next whole number.


      Scheduling systems may allocate fractional CPU resources by setting quotas or
      scheduling weights.

      Scheduling systems that do not support fractional CPUs may round up the request
      to the next whole number.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/coresMin
  coresMax:
    description: 'Maximum reserved number of CPU cores.

      See ''coresMin'' for discussion about fractional CPU requests.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/coresMax
  ramMin:
    default: 256
    description: 'Minimum reserved RAM in mebibytes (2**20) (default is 256).


      May be a fractional value. If so, the actual RAM request must be rounded up

      to the next whole number.


      The reported amount of RAM reserved for the process, which is available to

      expressions on the ''CommandLineTool'' as ''runtime.ram'', must be a non-zero
      integer.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/ramMin
  ramMax:
    description: 'Maximum reserved RAM in mebibytes (2**20).

      See ''ramMin'' for discussion about fractional RAM requests.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/ramMax
  outdirMin:
    default: 1024
    description: 'Minimum reserved filesystem based storage for the designated output

      directory in mebibytes (2**20).


      May be a fractional value. If so, the actual storage request must be rounded

      up to the next whole number.


      The reported amount of storage reserved for the process, which is available

      to expressions on the ''CommandLineTool'' as ''runtime.outdirSize'', must be
      a non-zero integer.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/outdirMin
  outdirMax:
    description: 'Maximum reserved filesystem based storage for the designated output

      directory in mebibytes (2**20).

      See ''outdirMin'' for discussion about fractional storage requests.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/outdirMax
  tmpdirMin:
    default: 1024
    description: 'Minimum reserved filesystem based storage for the designated temporary

      directory in mebibytes (2**20).


      May be a fractional value. If so, the actual storage request must be rounded

      up to the next whole number.


      The reported amount of storage reserved for the process, which is available

      to expressions on the ''CommandLineTool'' as ''runtime.tmpdirSize'', must be
      a non-zero integer.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/tmpdirMin
  tmpdirMax:
    description: 'Maximum reserved filesystem based storage for the designated temporary

      directory in mebibytes (2**20).

      See ''tmpdirMin'' for discussion about fractional storage requests.

      '
    oneOf:
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/ResourceQuantityOrFractional/schema.yaml
    - $ref: https://ogcincubator.github.io/bblocks-cwl/build/annotated/cwl/v1_2_1/CWLExpression/schema.yaml
    x-jsonld-id: https://w3id.org/cwl/cwl#ResourceRequirement/tmpdirMax
title: ResourceRequirement
type: object
x-jsonld-prefixes:
  cwl: https://w3id.org/cwl/cwl#
