{
  "namespace": "com.pacbio.common.models.pipeline_presets",
  "type": "record",
  "name": "PipelinePreset",
  "doc": "Pipeline Preset with custom task options",
  "fields": [
    {
      "name": "pipelineId",
      "type": "string",
      "doc": "Fully qualified pipeline ID, must only have [A-Z][0-9]_."
    },
    {
      "name": "presetId",
      "type": "string",
      "doc": "Fully qualified ID of the pipeline preset, must only have [A-Z][0-9]_."
    },
    {
      "name": "name",
      "type": ["string", "null"],
      "doc": "Plain-English name of the task option as it will appear in UI"
    },
    {
      "name": "description",
      "type": ["string", "null"],
      "doc": "More detailed description of the task option as it will appear in UI",  
      "default": null
    },
    {
      "name": "options",
      "type": {
        "type": "array",
        "items": {
          "type": "record",
          "name": "WorkflowOption",
          "fields": [
            {
              "name": "id",
              "type": "string",
              "doc": "Workflow option ID"
            },
            {
              "name": "value",
              "type": ["long", "boolean", "string", "int", "double"],
              "doc": "Value"
            },
            {
              "name": "optionTypeId",
              "type": "string",
              "doc": "Option type ID e.g. integer or string"
            }
          ]
        }
      }
    },
    {
      "name": "taskOptions",
      "type": {
        "type": "array",
        "items": {
          "type": "record",
          "name": "TaskOption",
          "fields": [
            {
              "name": "id",
              "type": "string",
              "doc": "Task option ID"
            },
            {
              "name": "value",
              "type": ["long", "boolean", "string", "int", "double"],
              "doc": "Value"
            },
            {
              "name": "optionTypeId",
              "type": "string",
              "doc": "Option type ID e.g. integer or string"
            }
          ]
        }
      }
    }
  ]
}
