{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/broad-institute/main/json-schema/broad-institute-submission-request-schema.json",
  "title": "SubmissionRequest",
  "description": "If the referenced method configuration takes no root entity, do not define `entityType`, `entityName` and `expression`.",
  "x-generated": "2026-10-15",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/broad-institute-openapi.yml#/components/schemas/SubmissionRequest",
  "required": [
    "methodConfigurationName",
    "methodConfigurationNamespace",
    "useCallCache"
  ],
  "type": "object",
  "properties": {
    "methodConfigurationNamespace": {
      "type": "string",
      "description": "Namespace of the method configuration to execute."
    },
    "methodConfigurationName": {
      "type": "string",
      "description": "Name of the method configuration to execute."
    },
    "entityType": {
      "type": "string",
      "description": "Type of root entity for expression. Optional if the method configuration has no root entity."
    },
    "entityName": {
      "type": "string",
      "description": "Name of root entity for expression. Optional if the method configuration has no root entity."
    },
    "expression": {
      "type": "string",
      "description": "Expression that resolves to one or more entities matching the entity type in the method configuration. Optional if the method configuration has no root entity."
    },
    "useCallCache": {
      "type": "boolean",
      "description": "Whether or not to read from cache for this submission."
    },
    "deleteIntermediateOutputFiles": {
      "type": "boolean",
      "description": "Whether or not to delete intermediate output files when the workflow completes. See Cromwell docs for more information."
    },
    "useReferenceDisks": {
      "type": "boolean",
      "description": "Whether or not to use pre-built disks for common genome references"
    },
    "memoryRetryMultiplier": {
      "type": "number",
      "description": "If a task fails due to running out of memory and the task has `maxRetries` in its runtime attributes, then it will be retried with its memory multiplied by this amount.  See [Cromwell docs](https://cromwell.readthedocs.io/en/develop/cromwell_features/RetryWithMoreMemory/#retry-with-more-memory) for more information."
    },
    "workflowFailureMode": {
      "type": "string",
      "description": "What happens after a task fails. Choose from ContinueWhilePossible and NoNewCalls. Defaults to NoNewCalls if not specified. See Cromwell docs for more information.",
      "default": "NoNewCalls",
      "enum": [
        "NoNewCalls",
        "ContinueWhilePossible"
      ]
    },
    "userComment": {
      "type": "string",
      "description": "Freeform user defined description, optional (max length 1000 characters)"
    },
    "ignoreEmptyOutputs": {
      "type": "boolean",
      "default": false,
      "description": "Whether or not to create output columns if they would be empty and optional.  Defaults to false (columns are created)."
    },
    "perWorkflowCostCap": {
      "type": "number",
      "description": "A cost threshold in USD to apply to individual workflows. When the estimated cost is exceeded, the workflow is terminated.",
      "format": "float",
      "minimum": 0.01,
      "maximum": 9999999999.99,
      "multipleOf": 0.01
    }
  }
}