{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "allOf": [
    {
      "$ref": "#/components/schemas/TemplatedModellerConfig"
    }
  ],
  "components": {
    "schemas": {
      "APIKeys": {
        "additionalProperties": false,
        "properties": {
          "access_key": {
            "type": "string"
          },
          "access_key_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "APIKeys1": {
        "properties": {
          "access_key": {
            "type": "string"
          },
          "access_key_id": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "AggregatorConfig": {
        "additionalProperties": false,
        "properties": {
          "secure": {
            "type": "boolean"
          },
          "weights": {
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "number"
                }
              ]
            },
            "type": ["object", "null"]
          }
        },
        "required": ["secure"],
        "type": "object"
      },
      "BitfountModelReferenceConfig": {
        "additionalProperties": false,
        "properties": {
          "model_ref": {
            "type": "string"
          },
          "model_version": {
            "type": ["integer", "null"]
          },
          "username": {
            "type": ["string", "null"]
          },
          "weights": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "BscanImageAndMaskGenerationAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "image_format": {
            "enum": ["JPEG", "PNG", null],
            "type": ["null"]
          },
          "image_optimize": {
            "type": ["boolean", "null"]
          },
          "image_progressive": {
            "type": ["boolean", "null"]
          },
          "image_quality": {
            "type": ["integer", "null"]
          },
          "image_subsampling": {
            "type": ["integer", "null"]
          },
          "image_transparency": {
            "type": ["boolean", "null"]
          },
          "output_original_bscans": {
            "type": ["boolean", "null"]
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "segmentation_configs": {
            "items": {
              "$ref": "#/components/schemas/SegmentationConfig"
            },
            "type": "array"
          }
        },
        "required": ["segmentation_configs"],
        "type": "object"
      },
      "BscanImageAndMaskGenerationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/BscanImageAndMaskGenerationAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.BscanImageAndMaskGenerationAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CSTCalculationAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "cst_radius_mm": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "fovea_landmark_idx": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "ilm_layer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "rpe_layer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "strict_measurement": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "CSTCalculationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/CSTCalculationAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.CSTCalculationAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CSVReportAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aux_cols": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "columns_to_drop": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "columns_to_drop_prefix": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "columns_to_include": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "csv_extensions": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "decimal_places": {
            "minimum": 0,
            "type": "integer"
          },
          "filter": {
            "items": {
              "$ref": "#/components/schemas/ColumnFilter"
            },
            "type": ["array", "null"]
          },
          "match_patient_visit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MatchPatientVisit"
              },
              {
                "type": "null"
              }
            ]
          },
          "matched_csv_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "ophthalmology_args": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OphthalmologyArgsConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "original_cols": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "produce_matched_only": {
            "type": "boolean"
          },
          "produce_trial_notes_csv": {
            "type": "boolean"
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": ["object", "null"]
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "sorting_columns": {
            "additionalProperties": {
              "enum": ["asc", "desc"],
              "type": "string"
            },
            "type": ["object", "null"]
          },
          "trial_name": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "CSVReportAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/CSVReportAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.CSVReportAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CSVReportGeneratorOphthalmologyAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aux_cols": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "csv_extensions": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "filter": {
            "items": {
              "$ref": "#/components/schemas/ColumnFilter"
            },
            "type": ["array", "null"]
          },
          "match_patient_visit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MatchPatientVisit"
              },
              {
                "type": "null"
              }
            ]
          },
          "matched_csv_path": {
            "type": ["string", "null"]
          },
          "original_cols": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "produce_matched_only": {
            "type": "boolean"
          },
          "produce_trial_notes_csv": {
            "type": "boolean"
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "sorting_columns": {
            "additionalProperties": {
              "enum": ["asc", "desc"],
              "type": "string"
            },
            "type": "object"
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "CSVReportGeneratorOphthalmologyAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/CSVReportGeneratorOphthalmologyAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.CSVReportGeneratorOphthalmologyAlgorithm",
              "bitfount.CSVReportGeneratorAlgorithm",
              "CSVReportGeneratorOphthalmologyAlgorithm",
              "CSVReportGeneratorAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "CodeNormalisationAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "CodeNormalisationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/CodeNormalisationAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.CodeNormalisationAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ColumnFilter": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": "string"
          },
          "how": {
            "enum": ["any", "all"],
            "type": "string"
          },
          "operator": {
            "enum": [
              "equal",
              "==",
              "equals",
              "not equal",
              "!=",
              "less than",
              "<",
              "less than or equal",
              "<=",
              "greater than",
              ">",
              "greater than or equal",
              ">="
            ],
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "type": "object"
      },
      "DPModellerConfig": {
        "additionalProperties": false,
        "properties": {
          "alphas": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "auto_fix": {
            "type": "boolean"
          },
          "delta": {
            "type": "number"
          },
          "epsilon": {
            "type": "number"
          },
          "loss_reduction": {
            "enum": ["mean", "sum"],
            "type": "string"
          },
          "max_grad_norm": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "items": {
                  "type": "number"
                },
                "type": "array"
              }
            ]
          },
          "noise_multiplier": {
            "type": "number"
          }
        },
        "required": ["epsilon"],
        "type": "object"
      },
      "DataExtractionProtocolCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "delete_uploaded_on_low_disk": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "low_disk_free_gb": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "low_disk_free_percent": {
            "anyOf": [
              {
                "maximum": 100,
                "minimum": 0,
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "skip_upload": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "trial_name": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "DataExtractionProtocolCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/DataExtractionProtocolCharcoalArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.DataExtractionProtocolCharcoal"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "DataSplitConfig": {
        "additionalProperties": false,
        "properties": {
          "args": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PercentageSplitter"
              },
              {
                "$ref": "#/components/schemas/SplitterDefinedInData"
              }
            ]
          },
          "data_splitter": {
            "enum": ["percentage", "predefined"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "DataStructureAssignConfig": {
        "additionalProperties": false,
        "properties": {
          "image_cols": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "image_prefix": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "target": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "DataStructureConfig": {
        "additionalProperties": false,
        "properties": {
          "assign": {
            "$ref": "#/components/schemas/DataStructureAssignConfig"
          },
          "compatible_datasources": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "data_split": {
            "$ref": "#/components/schemas/DataSplitConfig"
          },
          "filter": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/TaskFilterConfig"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "schema_requirements": {
            "anyOf": [
              {
                "enum": ["empty", "partial", "full"],
                "type": "string"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "empty": {
                    "items": {
                      "enum": [
                        "CSVSource",
                        "DICOMSource",
                        "ImageSource",
                        "InterMineSource",
                        "NIFTISource",
                        "OMOPSource",
                        "DICOMOphthalmologySource",
                        "HeidelbergSource",
                        "TopconSource",
                        "NullSource"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "partial": {
                    "items": {
                      "enum": [
                        "CSVSource",
                        "DICOMSource",
                        "ImageSource",
                        "InterMineSource",
                        "NIFTISource",
                        "OMOPSource",
                        "DICOMOphthalmologySource",
                        "HeidelbergSource",
                        "TopconSource",
                        "NullSource"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              },
              {
                "additionalProperties": false,
                "properties": {
                  "full": {
                    "items": {
                      "enum": [
                        "CSVSource",
                        "DICOMSource",
                        "ImageSource",
                        "InterMineSource",
                        "NIFTISource",
                        "OMOPSource",
                        "DICOMOphthalmologySource",
                        "HeidelbergSource",
                        "TopconSource",
                        "NullSource"
                      ],
                      "type": "string"
                    },
                    "type": "array"
                  }
                },
                "type": "object"
              }
            ]
          },
          "select": {
            "$ref": "#/components/schemas/DataStructureSelectConfig"
          },
          "table_config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DataStructureTableConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "transform": {
            "$ref": "#/components/schemas/DataStructureTransformConfig"
          }
        },
        "type": "object"
      },
      "DataStructureSelectConfig": {
        "additionalProperties": false,
        "properties": {
          "exclude": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "include": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "include_prefix": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "DataStructureTableConfig": {
        "additionalProperties": false,
        "properties": {
          "schema_types_override": {
            "additionalProperties": {
              "items": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "type": "array"
            },
            "type": ["object", "null"]
          },
          "table": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              }
            ]
          }
        },
        "type": "object"
      },
      "DataStructureTransformConfig": {
        "additionalProperties": false,
        "properties": {
          "auto_convert_grayscale_images": {
            "type": "boolean"
          },
          "batch": {
            "items": {
              "additionalProperties": {
                "additionalProperties": {},
                "type": "object"
              },
              "type": "object"
            },
            "type": ["array", "null"]
          },
          "dataset": {
            "items": {
              "additionalProperties": {
                "additionalProperties": {},
                "type": "object"
              },
              "type": "object"
            },
            "type": ["array", "null"]
          },
          "image": {
            "items": {
              "additionalProperties": {
                "additionalProperties": {},
                "type": "object"
              },
              "type": "object"
            },
            "type": ["array", "null"]
          }
        },
        "type": "object"
      },
      "Date": {
        "properties": {
          "day": {
            "type": ["integer", "null"]
          },
          "month": {
            "type": ["integer", "null"]
          },
          "year": {
            "type": "integer"
          }
        },
        "required": ["year"],
        "type": "object"
      },
      "EHRNERProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "EHRNERProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/EHRNERProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.EHRNERProtocol", "EHRNERProtocol"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "EHRPatientInfoDownloadAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/EHRPatientInfoDownloadArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.EHRPatientInfoDownloadAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "EHRPatientInfoDownloadArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "EHRPatientQueryAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/EHRPatientQueryArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.EHRPatientQueryAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "EHRPatientQueryArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "ETDRSAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "calculate_on_oct": {
            "type": "boolean"
          },
          "laterality": {
            "type": "string"
          },
          "oct_image_metadata_columns": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/OCTImageMetadataColumns"
              },
              {
                "type": "null"
              }
            ]
          },
          "slo_image_metadata_columns": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SLOImageMetadataColumns"
              },
              {
                "type": "null"
              }
            ]
          },
          "slo_mm_height": {
            "type": "number"
          },
          "slo_mm_width": {
            "type": "number"
          },
          "slo_photo_location_prefixes": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SLOSegmentationLocationPrefix"
              },
              {
                "type": "null"
              }
            ]
          },
          "threshold": {
            "type": "number"
          }
        },
        "required": ["laterality"],
        "type": "object"
      },
      "ETDRSAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ETDRSAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.ETDRSAlgorithm", "ETDRSAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "FederatedAveragingProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "auto_eval": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "epochs_between_parameter_updates": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "secure_aggregation": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "steps_between_parameter_updates": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "FederatedAveragingProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/FederatedAveragingProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.FederatedAveraging"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "FederatedModelTrainingAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/FederatedModelTrainingArgumentsConfig"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ModelConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "enum": ["bitfount.FederatedModelTraining"],
            "type": "string"
          },
          "pretrained_file": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "FederatedModelTrainingArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "checkpoint_filename": {
            "type": ["string", "null"]
          },
          "modeller_checkpointing": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "FluidVolumeCalculationAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "fluid_volume_include_segmentations": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "FluidVolumeCalculationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/FluidVolumeCalculationAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.FluidVolumeCalculationAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "FluidVolumeScreeningProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "FluidVolumeScreeningProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/FluidVolumeScreeningProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.FluidVolumeScreeningProtocol"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "FoveaCoordinatesAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "bscan_width_col": {
            "type": "string"
          },
          "location_prefixes": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SLOSegmentationLocationPrefix"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "FoveaCoordinatesAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/FoveaCoordinatesAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.FoveaCoordinatesAlgorithm",
              "FoveaCoordinatesAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolAmethystArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "trial_name": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolAmethystConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GAScreeningProtocolAmethystArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GAScreeningProtocolAmethyst",
              "GAScreeningProtocolAmethyst"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolBronzeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "trial_name": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolBronzeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GAScreeningProtocolBronzeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GAScreeningProtocolBronze",
              "GAScreeningProtocolBronze"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolBronzeWithEHRConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GAScreeningProtocolBronzeArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.GAScreeningProtocolBronzeWithEHR"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "batch_grouping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemplatedGroupingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "skip_upload": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "trial_name": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GAScreeningProtocolCharcoalArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.GAScreeningProtocolCharcoal"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolJadeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "GAScreeningProtocolJadeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GAScreeningProtocolJadeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GAScreeningProtocolJade",
              "bitfount.GAScreeningProtocol",
              "GAScreeningProtocolJade",
              "GAScreeningProtocol"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmAmethystArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "extra_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_exclude_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_include_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmAmethystConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialCalculationAlgorithmAmethystArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GATrialCalculationAlgorithmAmethyst",
              "bitfount.GATrialCalculationAlgorithmJade",
              "bitfount.GATrialCalculationAlgorithm",
              "GATrialCalculationAlgorithmAmethyst",
              "GATrialCalculationAlgorithmJade",
              "GATrialCalculationAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmBronzeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "extra_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "fovea_landmark_idx": {
            "type": ["integer", "null"]
          },
          "ga_area_exclude_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_include_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmBronzeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialCalculationAlgorithmBronzeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GATrialCalculationAlgorithmBronze",
              "GATrialCalculationAlgorithmBronze"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "extra_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_exclude_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_include_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialCalculationAlgorithmCharcoalArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.GATrialCalculationAlgorithmCharcoal"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmJadeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "extra_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_exclude_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ga_area_include_segmentations": {
            "anyOf": [
              {
                "items": {
                  "enum": [
                    "hypertransmission",
                    "hard_drusen",
                    "soft_drusen",
                    "confluent_drusen",
                    "diffuse_edema",
                    "is_os_disruption",
                    "epiretinal_fibrosis",
                    "hard_exudates",
                    "intraretinal_cystoid_fluid",
                    "intraretinal_hyperreflective_foci",
                    "neurosensory_retina_atrophy",
                    "reticular_pseudodrusen",
                    "rpe_atrophy",
                    "rpe_disruption",
                    "serous_rpe_detachment",
                    "subretinal_fluid",
                    "subretinal_hyperreflective_material__shrm_",
                    "ellipsoid_zone_loss"
                  ],
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "GATrialCalculationAlgorithmJadeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialCalculationAlgorithmJadeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GATrialCalculationAlgorithmJade",
              "bitfount.GATrialCalculationAlgorithm",
              "GATrialCalculationAlgorithmJade",
              "GATrialCalculationAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialPDFGeneratorAlgorithmAmethystArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "filename_prefix": {
            "pattern": "[a-zA-Z]+",
            "type": "string"
          },
          "filter": {
            "items": {
              "$ref": "#/components/schemas/ColumnFilter"
            },
            "type": ["array", "null"]
          },
          "pdf_filename_columns": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "report_metadata": {
            "$ref": "#/components/schemas/ReportMetadata"
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialPDFGeneratorAlgorithmAmethystConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmAmethystArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GATrialPDFGeneratorAlgorithmAmethyst",
              "GATrialPDFGeneratorAlgorithmAmethyst"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialPDFGeneratorAlgorithmJadeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "filename_prefix": {
            "pattern": "[a-zA-Z]+",
            "type": "string"
          },
          "filter": {
            "items": {
              "$ref": "#/components/schemas/ColumnFilter"
            },
            "type": ["array", "null"]
          },
          "pdf_filename_columns": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "report_metadata": {
            "$ref": "#/components/schemas/ReportMetadata"
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "GATrialPDFGeneratorAlgorithmJadeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmJadeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.GATrialPDFGeneratorAlgorithmJade",
              "bitfount.GATrialPDFGeneratorAlgorithm",
              "GATrialPDFGeneratorAlgorithmJade",
              "GATrialPDFGeneratorAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "GCCCalculationAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "inner_layer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "macula_landmark_idx": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "outer_layer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "region_radius_mm": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "strict_measurement": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "GCCCalculationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/GCCCalculationAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.GCCCalculationAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HubConfig": {
        "additionalProperties": false,
        "properties": {
          "url": {
            "format": "url",
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceImageClassificationInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceImageClassificationInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceImageClassificationInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceImageClassificationInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "apply_softmax_to_predictions": {
            "type": "boolean"
          },
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "model_id": {
            "type": "string"
          },
          "model_input_format": {
            "enum": ["torch_tensor", "numpy_array"],
            "type": "string"
          },
          "postprocessors": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": ["array", "null"]
          },
          "seed": {
            "type": "integer"
          },
          "subfolder": {
            "type": ["string", "null"]
          },
          "top_k": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "HuggingFaceImageSegmentationInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceImageSegmentationInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceImageSegmentationInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceImageSegmentationInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "alpha": {
            "type": "number"
          },
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "dataframe_output": {
            "type": "boolean"
          },
          "mask_threshold": {
            "type": "number"
          },
          "model_id": {
            "type": "string"
          },
          "overlap_mask_area_threshold": {
            "type": "number"
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "seed": {
            "type": "integer"
          },
          "subtask": {
            "type": ["string", "null"]
          },
          "threshold": {
            "type": "number"
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "HuggingFaceImageTextGenerationInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceImageTextGenerationInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceImageTextGenerationInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceImageTextGenerationInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "max_new_tokens": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "model_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "prompt_template": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "seed": {
            "type": "integer"
          },
          "torch_dtype": {
            "type": "string"
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "HuggingFaceNERInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceNERInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceNERInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceNERInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "aggregation_strategy": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "batch_size": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "model_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "postprocessors": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": ["array", "null"]
          },
          "seed": {
            "type": ["integer", "null"]
          }
        },
        "type": "object"
      },
      "HuggingFacePerplexityEvaluationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFacePerplexityEvaluationArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFacePerplexityEvaluation"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFacePerplexityEvaluationArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "model_id": {
            "type": "string"
          },
          "seed": {
            "type": "integer"
          },
          "stride": {
            "type": "integer"
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "HuggingFaceTextClassificationInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceTextClassificationInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceTextClassificationInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceTextClassificationInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "function_to_apply": {
            "type": ["string", "null"]
          },
          "model_id": {
            "type": "string"
          },
          "seed": {
            "type": "integer"
          },
          "top_k": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "HuggingFaceTextGenerationInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/HuggingFaceTextGenerationInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.HuggingFaceTextGenerationInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "HuggingFaceTextGenerationInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "access_token": {
            "type": ["string", "null"]
          },
          "device": {
            "type": ["string", "null"]
          },
          "early_stopping": {
            "type": "boolean"
          },
          "eos_token_id": {
            "type": ["integer", "null"]
          },
          "max_length": {
            "type": "integer"
          },
          "min_new_tokens": {
            "type": "integer"
          },
          "model_id": {
            "type": "string"
          },
          "num_beams": {
            "type": "integer"
          },
          "num_return_sequences": {
            "type": "integer"
          },
          "pad_token_id": {
            "type": ["integer", "null"]
          },
          "prompt_format": {
            "type": ["string", "null"]
          },
          "repetition_penalty": {
            "type": "number"
          },
          "seed": {
            "type": "integer"
          },
          "torch_dtype": {
            "type": "string"
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "ImageFieldType": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": "string"
          }
        },
        "required": ["column"],
        "type": "object"
      },
      "ImageSelectionAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "ImageSelectionAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ImageSelectionAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.ImageSelectionAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InSiteInsightsProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          }
        },
        "type": "object"
      },
      "InSiteInsightsProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InSiteInsightsProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InSiteInsightsProtocol"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InferenceAndCSVReportArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "InferenceAndCSVReportConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InferenceAndCSVReportArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InferenceAndCSVReport"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InferenceAndCSVReportWithAggregateReportingArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "InferenceAndCSVReportWithAggregateReportingConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InferenceAndCSVReportWithAggregateReportingArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InferenceAndCSVReportWithAggregateReporting"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InferenceAndImageOutputArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "InferenceAndImageOutputConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InferenceAndImageOutputArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InferenceAndImageOutput"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InferenceAndReturnCSVReportArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "InferenceAndReturnCSVReportConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InferenceAndReturnCSVReportArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InferenceAndReturnCSVReport"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "InstrumentedInferenceAndCSVReportArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "InstrumentedInferenceAndCSVReportConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/InstrumentedInferenceAndCSVReportArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.InstrumentedInferenceAndCSVReport"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "LoggerConfig": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "params": {
            "type": "object"
          },
          "save_dir": {
            "writeOnly": true
          }
        },
        "required": ["name"],
        "type": "object"
      },
      "LongitudinalAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "LongitudinalAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/LongitudinalAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.LongitudinalAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "MONAIBundleInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/MONAIBundleInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.MONAIBundleInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "MONAIBundleInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "bundle_name": {
            "type": "string"
          },
          "bundle_version": {
            "type": ["string", "null"]
          },
          "dataframe_output": {
            "type": "boolean"
          },
          "inference_config_overrides": {
            "type": ["object", "null"]
          },
          "invert_orientation": {
            "type": "boolean"
          },
          "nifti_output": {
            "type": "boolean"
          },
          "num_workers": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "restore_spatial": {
            "type": "boolean"
          }
        },
        "required": ["bundle_name"],
        "type": "object"
      },
      "MatchPatientVisit": {
        "additionalProperties": false,
        "properties": {
          "cols_to_match": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "date_time_col": {
            "type": "string"
          },
          "divergent_col": {
            "type": "string"
          },
          "how": {
            "enum": ["inner", "outer", "left", "right"],
            "type": "string"
          }
        },
        "required": ["cols_to_match", "date_time_col", "divergent_col"],
        "type": "object"
      },
      "MessageServiceConfig": {
        "additionalProperties": false,
        "properties": {
          "port": {
            "type": "integer"
          },
          "tls": {
            "type": "boolean"
          },
          "url": {
            "type": ["string", "null"]
          },
          "use_local_storage": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ModelConfig": {
        "additionalProperties": false,
        "properties": {
          "bitfount_model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BitfountModelReferenceConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "dp_config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DPModellerConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "hyperparameters": {
            "type": "object"
          },
          "logger_config": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LoggerConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "type": ["string", "null"]
          },
          "structure": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ModelStructureConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "ModelEvaluationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ModelEvaluationArgumentsConfig"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ModelConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "enum": ["bitfount.ModelEvaluation"],
            "type": "string"
          },
          "pretrained_file": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "ModelEvaluationArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "ModelInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ModelInferenceArgumentsConfig"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ModelConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "enum": ["bitfount.ModelInference"],
            "type": "string"
          },
          "pretrained_file": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "ModelInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "class_outputs": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "postprocessors": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": ["array", "null"]
          }
        },
        "type": "object"
      },
      "ModelStructureConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "type": "object"
          },
          "name": {
            "type": "string"
          }
        },
        "required": ["name"],
        "type": "object"
      },
      "ModelTrainingAndEvaluationAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ModelTrainingAndEvaluationArgumentsConfig"
          },
          "model": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ModelConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "name": {
            "enum": ["bitfount.ModelTrainingAndEvaluation"],
            "type": "string"
          },
          "pretrained_file": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "ModelTrainingAndEvaluationArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "ModellerUserConfig": {
        "additionalProperties": false,
        "properties": {
          "identity_verification_method": {
            "enum": ["key-based", "oidc-auth-code", "oidc-device-code"],
            "type": "string"
          },
          "private_key_file": {
            "type": ["string", "null"]
          },
          "username": {
            "pattern": "[a-z\\d](?:[a-z\\d]|(-|_)(?=[a-z\\d])){0,38}",
            "type": "string"
          }
        },
        "type": "object"
      },
      "NextGenSearchProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "type": "object"
      },
      "NextGenSearchProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/NextGenSearchProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.NextGenSearchProtocol"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "OCTImageMetadataColumns": {
        "additionalProperties": false,
        "properties": {
          "depth_mm_column": {
            "type": "string"
          },
          "height_mm_column": {
            "type": "string"
          },
          "width_mm_column": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "OphthalmologyArgsConfig": {
        "additionalProperties": false,
        "properties": {
          "aux_cols": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "csv_extensions": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "match_patient_visit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MatchPatientVisit"
              },
              {
                "type": "null"
              }
            ]
          },
          "produce_matched_only": {
            "type": "boolean"
          },
          "produce_trial_notes_csv": {
            "type": "boolean"
          },
          "trial_name": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "PatientIDExchangeAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "patient_ids_file": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "PatientIDExchangeAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/PatientIDExchangeAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.PatientIDExchangeAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "PatientTrialMatchingProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "trials_connection_string": {
            "type": ["string", "null"]
          },
          "trials_database_url": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "PatientTrialMatchingProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/PatientTrialMatchingProtocolArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.PatientTrialMatchingProtocol",
              "PatientTrialMatchingProtocol"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "PercentageSplitter": {
        "additionalProperties": false,
        "properties": {
          "iterative_splitting": {
            "type": "boolean"
          },
          "seed": {
            "type": "integer"
          },
          "shuffle": {
            "type": "boolean"
          },
          "test_percentage": {
            "type": "integer"
          },
          "time_series_sort_by": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "validation_percentage": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "PodsConfig": {
        "additionalProperties": false,
        "properties": {
          "identifiers": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": ["identifiers"],
        "type": "object"
      },
      "PrivateSqlQueryAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/PrivateSqlQueryArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.PrivateSqlQuery"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "PrivateSqlQueryArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregate_columns": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "aggregation_func": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "column_ranges": {
            "anyOf": [
              {
                "additionalProperties": {
                  "$ref": "#/components/schemas/PrivateSqlQueryColumnArgumentsConfig"
                },
                "type": ["object", "null"]
              },
              {
                "additionalProperties": {
                  "additionalProperties": {
                    "$ref": "#/components/schemas/PrivateSqlQueryColumnArgumentsConfig"
                  },
                  "type": "object"
                },
                "type": ["object", "null"]
              },
              {
                "type": "null"
              }
            ]
          },
          "db_schema": {
            "type": ["string", "null"]
          },
          "delta": {
            "type": "number"
          },
          "epsilon": {
            "type": "number"
          },
          "group_by_columns": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "query": {
            "type": ["string", "null"]
          },
          "table": {
            "type": ["string", "null"]
          }
        },
        "required": ["delta", "epsilon"],
        "type": "object"
      },
      "PrivateSqlQueryColumnArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "lower": {
            "type": ["integer", "null"]
          },
          "upper": {
            "type": ["integer", "null"]
          }
        },
        "type": "object"
      },
      "RecordFilterAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "filter_args_list": {
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "strategies": {
            "items": {
              "enum": [
                "latest",
                "frequency",
                "age_range",
                "series_description_latest",
                "patient_id",
                "patient_id_with_previous_runs",
                "scan_frequency",
                "scan_in_period"
              ]
            },
            "type": "array"
          }
        },
        "required": ["filter_args_list", "strategies"],
        "type": "object"
      },
      "RecordFilterAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/RecordFilterAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.RecordFilterAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReduceCSVAlgorithmCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "delete_intermediate": {
            "anyOf": [
              {
                "default": null,
                "type": ["boolean", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "eligible_only": {
            "anyOf": [
              {
                "default": true,
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          }
        },
        "type": "object"
      },
      "ReduceCSVAlgorithmCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ReduceCSVAlgorithmCharcoalArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.ReduceCSVAlgorithmCharcoal",
              "ReduceCSVAlgorithmCharcoal"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "ReportMetadata": {
        "additionalProperties": false,
        "properties": {
          "heading": {
            "type": ["string", "null"]
          },
          "image_field": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ImageFieldType"
              },
              {
                "type": "null"
              }
            ]
          },
          "text_fields": {
            "items": {
              "$ref": "#/components/schemas/TextFieldType"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ResultsOnlyProtocolArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "save_location": {
            "anyOf": [
              {
                "items": {
                  "enum": ["Worker", "Modeller"]
                },
                "type": "array"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          },
          "secure_aggregation": {
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "ResultsOnlyProtocolConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/ResultsOnlyProtocolArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.ResultsOnly"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "RetinalDiseaseProtocolCobaltArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "RetinalDiseaseProtocolCobaltConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/RetinalDiseaseProtocolCobaltArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.RetinalDiseaseProtocolCobalt",
              "bitfount.BasicOCTProtocol",
              "RetinalDiseaseProtocolCobalt",
              "BasicOCTProtocol"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "S3UploadAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aws_profile": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "aws_region": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "s3_bucket": {
            "anyOf": [
              {
                "type": ["string", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "upload_url_expiration": {
            "anyOf": [
              {
                "minimum": 1,
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "S3UploadAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/S3UploadAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.S3UploadAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "S3UploadAlgorithmWithMRNTrackingConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/S3UploadAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.S3UploadAlgorithmWithMRNTracking"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "SLOImageMetadataColumns": {
        "additionalProperties": false,
        "properties": {
          "height_mm_column": {
            "type": "string"
          },
          "width_mm_column": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SLOSegmentationLocationPrefix": {
        "additionalProperties": false,
        "properties": {
          "end_x_image": {
            "type": "string"
          },
          "end_y_image": {
            "type": "string"
          },
          "start_x_image": {
            "type": "string"
          },
          "start_y_image": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SegmentationConfig": {
        "additionalProperties": false,
        "properties": {
          "color": {},
          "id": {
            "type": "string"
          },
          "label": {
            "type": ["string", "null"]
          }
        },
        "required": ["color", "id"],
        "type": "object"
      },
      "SplitterDefinedInData": {
        "additionalProperties": false,
        "properties": {
          "column_name": {
            "type": "string"
          },
          "infer_data_split_labels": {
            "type": "boolean"
          },
          "test_set_label": {
            "type": "string"
          },
          "training_set_label": {
            "type": "string"
          },
          "validation_set_label": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "SqlQueryAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/SqlQueryArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.SqlQuery"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "SqlQueryArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "type": "string"
          },
          "table": {
            "type": ["string", "null"]
          }
        },
        "required": ["query"],
        "type": "object"
      },
      "TIMMFederatedTrainingAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TIMMFederatedTrainingArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TIMMFederatedTraining"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TIMMFederatedTrainingArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "args": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemplatedTimmTrainingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "labels": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "lora_rank": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "model_id": {
            "type": "string"
          },
          "pretrained_file": {
            "type": ["string", "null"]
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "TIMMFineTuningAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TIMMFineTuningArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TIMMFineTuning"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TIMMFineTuningArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "args": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemplatedTimmTrainingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "batch_transformations": {
            "type": "object"
          },
          "labels": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "model_id": {
            "type": "string"
          },
          "return_weights": {
            "type": "boolean"
          },
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "TIMMInferenceAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TIMMInferenceArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TIMMInference"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TIMMInferenceArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "batch_transformations": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "type": ["array", "null"]
          },
          "checkpoint_path": {
            "type": ["string", "null"]
          },
          "class_outputs": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "hf_checkpoint_filename": {
            "type": ["string", "null"]
          },
          "hf_checkpoint_repo_id": {
            "type": ["string", "null"]
          },
          "model_id": {
            "type": "string"
          },
          "num_classes": {
            "type": ["integer", "null"]
          },
          "postprocessors": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": ["array", "null"]
          }
        },
        "required": ["model_id"],
        "type": "object"
      },
      "TaskConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "algorithm": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/LongitudinalAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/GCCCalculationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/CSTCalculationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/ImageSelectionAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/PatientIDExchangeAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/S3UploadAlgorithmWithMRNTrackingConfig"
              },
              {
                "$ref": "#/components/schemas/S3UploadAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmSapphireConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmBronzeConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmAmethystConfig"
              },
              {
                "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmJadeConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmAmethystConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmJadeConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialCalculationAlgorithmCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialCalculationAlgorithmBronzeConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialCalculationAlgorithmAmethystConfig"
              },
              {
                "$ref": "#/components/schemas/GATrialCalculationAlgorithmJadeConfig"
              },
              {
                "$ref": "#/components/schemas/ReduceCSVAlgorithmCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/_SimpleCSVAlgorithmAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/FoveaCoordinatesAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/FluidVolumeCalculationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/ETDRSAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/CSVReportGeneratorOphthalmologyAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/BscanImageAndMaskGenerationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/RecordFilterAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/TrialMatchingAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/CodeNormalisationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/EHRPatientInfoDownloadAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/EHRPatientQueryAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceNERInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/MONAIBundleInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/TIMMInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/TIMMFederatedTrainingAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/TIMMFineTuningAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceTextClassificationInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceImageSegmentationInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceImageClassificationInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/CSVReportAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceImageTextGenerationInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFaceTextGenerationInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/HuggingFacePerplexityEvaluationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/PrivateSqlQueryAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/SqlQueryAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/ModelInferenceAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/ModelEvaluationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/ModelTrainingAndEvaluationAlgorithmConfig"
              },
              {
                "$ref": "#/components/schemas/FederatedModelTrainingAlgorithmConfig"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/LongitudinalAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GCCCalculationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/CSTCalculationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ImageSelectionAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/PatientIDExchangeAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/S3UploadAlgorithmWithMRNTrackingConfig"
                    },
                    {
                      "$ref": "#/components/schemas/S3UploadAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmSapphireConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoalConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmCharcoalConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmBronzeConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmAmethystConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmJadeConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmAmethystConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialPDFGeneratorAlgorithmJadeConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialCalculationAlgorithmCharcoalConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialCalculationAlgorithmBronzeConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialCalculationAlgorithmAmethystConfig"
                    },
                    {
                      "$ref": "#/components/schemas/GATrialCalculationAlgorithmJadeConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ReduceCSVAlgorithmCharcoalConfig"
                    },
                    {
                      "$ref": "#/components/schemas/_SimpleCSVAlgorithmAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/FoveaCoordinatesAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/FluidVolumeCalculationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ETDRSAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/CSVReportGeneratorOphthalmologyAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/BscanImageAndMaskGenerationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/RecordFilterAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TrialMatchingAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/CodeNormalisationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/EHRPatientInfoDownloadAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/EHRPatientQueryAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceNERInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/MONAIBundleInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TIMMInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TIMMFederatedTrainingAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/TIMMFineTuningAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceTextClassificationInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceImageSegmentationInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceImageClassificationInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/CSVReportAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceImageTextGenerationInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFaceTextGenerationInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/HuggingFacePerplexityEvaluationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/PrivateSqlQueryAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/SqlQueryAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ModelInferenceAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ModelEvaluationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/ModelTrainingAndEvaluationAlgorithmConfig"
                    },
                    {
                      "$ref": "#/components/schemas/FederatedModelTrainingAlgorithmConfig"
                    }
                  ]
                },
                "type": "array"
              }
            ]
          },
          "data_structure": {
            "$ref": "#/components/schemas/DataStructureConfig"
          },
          "primary_results_path": {
            "type": ["string", "null"]
          },
          "protocol": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PatientTrialMatchingProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/EHRNERProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/WetAMDScreeningProtocolSapphireConfig"
              },
              {
                "$ref": "#/components/schemas/InSiteInsightsProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/InferenceAndImageOutputConfig"
              },
              {
                "$ref": "#/components/schemas/DataExtractionProtocolCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/NextGenSearchProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/GAScreeningProtocolCharcoalConfig"
              },
              {
                "$ref": "#/components/schemas/GAScreeningProtocolBronzeWithEHRConfig"
              },
              {
                "$ref": "#/components/schemas/GAScreeningProtocolBronzeConfig"
              },
              {
                "$ref": "#/components/schemas/GAScreeningProtocolAmethystConfig"
              },
              {
                "$ref": "#/components/schemas/GAScreeningProtocolJadeConfig"
              },
              {
                "$ref": "#/components/schemas/FluidVolumeScreeningProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/RetinalDiseaseProtocolCobaltConfig"
              },
              {
                "$ref": "#/components/schemas/InferenceAndReturnCSVReportConfig"
              },
              {
                "$ref": "#/components/schemas/InstrumentedInferenceAndCSVReportConfig"
              },
              {
                "$ref": "#/components/schemas/InferenceAndCSVReportWithAggregateReportingConfig"
              },
              {
                "$ref": "#/components/schemas/InferenceAndCSVReportConfig"
              },
              {
                "$ref": "#/components/schemas/FederatedAveragingProtocolConfig"
              },
              {
                "$ref": "#/components/schemas/ResultsOnlyProtocolConfig"
              }
            ]
          },
          "transformation_file": {
            "type": ["string", "null"]
          }
        },
        "required": ["algorithm", "data_structure", "protocol"],
        "type": "object"
      },
      "TaskFilterConfig": {
        "properties": {
          "filter_type": {
            "enum": [
              "file-creation-min-date",
              "file-creation-max-date",
              "file-modification-min-date",
              "file-modification-max-date",
              "min-dob",
              "max-dob",
              "min-file-size",
              "max-file-size",
              "min-frames",
              "max-frames",
              "check-required-fields",
              "required-field-names",
              "modality",
              "scan-acquisition-min-date",
              "scan-acquisition-max-date",
              "series-description",
              "inferred-scan-type"
            ],
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/Date"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "TemplateVariablesEntryArray": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "items": {
            "$ref": "#/components/schemas/_TemplateArrayItemsDetails"
          },
          "label": {
            "type": "string"
          },
          "minItems": {
            "type": ["integer", "null"]
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "enum": ["array"],
            "type": "string"
          }
        },
        "required": ["items", "label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryBool": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "type": ["boolean", "null"]
          },
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "enum": ["boolean"],
            "type": "string"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryFilePath": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "type": ["string", "null"]
          },
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "$ref": "#/components/schemas/_TemplateFilePathTypeEntry"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryModelSlug": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "$ref": "#/components/schemas/_TemplateModelSlugTypeEntry"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryNumber": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "label": {
            "type": "string"
          },
          "minimum": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "enum": ["number"],
            "type": "string"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntrySchemaColumnName": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "type": ["string", "null"]
          },
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "$ref": "#/components/schemas/_TemplateSchemaColumnNameTypeEntry"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntrySchemaColumnNameArray": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "$ref": "#/components/schemas/_TemplateSchemaColumnNameArrayTypeEntry"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryString": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "type": ["string", "null"]
          },
          "enum": {
            "items": {
              "type": "string"
            },
            "type": ["array", "null"]
          },
          "label": {
            "type": "string"
          },
          "minLength": {
            "type": ["integer", "null"]
          },
          "pattern": {
            "type": ["string", "null"]
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "enum": ["string"],
            "type": "string"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplateVariablesEntryTaskFilters": {
        "additionalProperties": false,
        "properties": {
          "default": {
            "items": {
              "type": "object"
            },
            "type": ["array", "null"]
          },
          "label": {
            "type": "string"
          },
          "tooltip": {
            "type": ["string", "null"]
          },
          "type": {
            "$ref": "#/components/schemas/_TemplateTaskFiltersTypeEntry"
          }
        },
        "required": ["label", "type"],
        "type": "object"
      },
      "TemplatedGroupingConfig": {
        "additionalProperties": false,
        "properties": {
          "group_by": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "include_non_new_group_files": {
            "type": "boolean"
          },
          "order_by": {
            "anyOf": [
              {
                "items": {},
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "per_group_head": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": ["object", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "TemplatedModellerConfig": {
        "additionalProperties": false,
        "properties": {
          "batched_execution": {
            "type": ["boolean", "null"]
          },
          "enable_anonymized_tracker_upload": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "force_rerun_failed_files": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "hub": {
            "$ref": "#/components/schemas/HubConfig"
          },
          "message_service": {
            "$ref": "#/components/schemas/MessageServiceConfig"
          },
          "modeller": {
            "$ref": "#/components/schemas/ModellerUserConfig"
          },
          "pods": {
            "$ref": "#/components/schemas/PodsConfig"
          },
          "project_id": {
            "type": ["string", "null"]
          },
          "requires_ehr_connection": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "run_on_new_data_only": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "secrets": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/APIKeys"
              },
              {
                "additionalProperties": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/APIKeys1"
                    }
                  ]
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ]
          },
          "supports_mps": {
            "type": ["boolean", "null"]
          },
          "task": {
            "$ref": "#/components/schemas/TaskConfig"
          },
          "template": {
            "additionalProperties": {
              "else": {
                "allOf": [
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "required": ["file_path"]
                        }
                      }
                    },
                    "then": {
                      "$ref": "#/components/schemas/TemplateVariablesEntryFilePath"
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "required": ["model_slug"]
                        }
                      }
                    },
                    "then": {
                      "$ref": "#/components/schemas/TemplateVariablesEntryModelSlug"
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "required": ["schema_column_name"]
                        }
                      }
                    },
                    "then": {
                      "$ref": "#/components/schemas/TemplateVariablesEntrySchemaColumnName"
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "required": ["schema_column_name_array"]
                        }
                      }
                    },
                    "then": {
                      "$ref": "#/components/schemas/TemplateVariablesEntrySchemaColumnNameArray"
                    }
                  },
                  {
                    "if": {
                      "properties": {
                        "type": {
                          "required": ["task_filters"]
                        }
                      }
                    },
                    "then": {
                      "$ref": "#/components/schemas/TemplateVariablesEntryTaskFilters"
                    }
                  }
                ],
                "properties": {
                  "type": {
                    "maxProperties": 1,
                    "minProperties": 1,
                    "propertyNames": {
                      "enum": [
                        "file_path",
                        "model_slug",
                        "schema_column_name",
                        "schema_column_name_array",
                        "task_filters"
                      ]
                    },
                    "type": "object"
                  }
                },
                "required": ["type"]
              },
              "if": {
                "properties": {
                  "type": {
                    "type": "string"
                  }
                },
                "required": ["type"]
              },
              "then": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/TemplateVariablesEntryString"
                  },
                  {
                    "$ref": "#/components/schemas/TemplateVariablesEntryBool"
                  },
                  {
                    "$ref": "#/components/schemas/TemplateVariablesEntryNumber"
                  },
                  {
                    "$ref": "#/components/schemas/TemplateVariablesEntryArray"
                  }
                ]
              }
            },
            "type": ["object", "null"]
          },
          "test_run": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "version": {
            "type": ["string", "null"]
          }
        },
        "required": ["pods", "task"],
        "type": "object"
      },
      "TemplatedTimmTrainingConfig": {
        "additionalProperties": false,
        "properties": {
          "amp": {
            "type": "boolean"
          },
          "amp_dtype": {
            "type": "string"
          },
          "amp_impl": {
            "type": "string"
          },
          "aug_splits": {
            "type": "integer"
          },
          "batch_size": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "bce_loss": {
            "type": "boolean"
          },
          "bce_target_thresh": {
            "type": ["number", "null"]
          },
          "bn_eps": {
            "type": ["number", "null"]
          },
          "bn_momentum": {
            "type": ["number", "null"]
          },
          "channels_last": {
            "type": "boolean"
          },
          "checkpoint_hist": {
            "type": "integer"
          },
          "clip_grad": {
            "type": ["number", "null"]
          },
          "clip_mode": {
            "type": "string"
          },
          "cooldown_epochs": {
            "type": "integer"
          },
          "crop_pct": {
            "type": ["number", "null"]
          },
          "cutmix": {
            "type": "number"
          },
          "cutmix_minmax": {
            "items": {
              "type": "number"
            },
            "type": ["array", "null"]
          },
          "decay_epochs": {
            "type": "number"
          },
          "decay_milestones": {
            "items": {
              "type": "integer"
            },
            "type": "array"
          },
          "decay_rate": {
            "type": "number"
          },
          "dist_bn": {
            "type": "string"
          },
          "drop": {
            "type": "number"
          },
          "drop_block": {
            "type": ["number", "null"]
          },
          "drop_connect": {
            "type": ["number", "null"]
          },
          "drop_path": {
            "type": ["number", "null"]
          },
          "epoch_repeats": {
            "type": "number"
          },
          "epochs": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "eval_metric": {
            "type": "string"
          },
          "fast_norm": {
            "type": "boolean"
          },
          "fuser": {
            "type": "string"
          },
          "gp": {
            "type": ["string", "null"]
          },
          "grad_accum_steps": {
            "type": "integer"
          },
          "grad_checkpointing": {
            "type": "boolean"
          },
          "head_init_bias": {
            "type": ["number", "null"]
          },
          "head_init_scale": {
            "type": ["number", "null"]
          },
          "img_size": {
            "type": ["integer", "null"]
          },
          "in_chans": {
            "type": ["integer", "null"]
          },
          "initial_checkpoint": {
            "type": "string"
          },
          "input_size": {
            "type": ["null"]
          },
          "interpolation": {
            "type": "string"
          },
          "jsd_loss": {
            "type": "boolean"
          },
          "layer_decay": {
            "type": ["number", "null"]
          },
          "local_rank": {
            "type": "integer"
          },
          "log_interval": {
            "type": "integer"
          },
          "lr": {
            "anyOf": [
              {
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "lr_base": {
            "type": "number"
          },
          "lr_base_scale": {
            "type": "string"
          },
          "lr_base_size": {
            "type": "integer"
          },
          "lr_cycle_decay": {
            "type": "number"
          },
          "lr_cycle_limit": {
            "type": "integer"
          },
          "lr_cycle_mul": {
            "type": "number"
          },
          "lr_k_decay": {
            "type": "number"
          },
          "lr_noise": {
            "items": {
              "type": "number"
            },
            "type": ["array", "null"]
          },
          "lr_noise_pct": {
            "type": "number"
          },
          "lr_noise_std": {
            "type": "number"
          },
          "mean": {
            "items": {
              "type": "number"
            },
            "type": ["array", "null"]
          },
          "min_lr": {
            "type": "number"
          },
          "mixup": {
            "type": "number"
          },
          "mixup_mode": {
            "type": "string"
          },
          "mixup_off_epoch": {
            "type": "integer"
          },
          "mixup_prob": {
            "type": "number"
          },
          "mixup_switch_prob": {
            "type": "number"
          },
          "model_ema": {
            "type": "boolean"
          },
          "model_ema_decay": {
            "type": "number"
          },
          "model_ema_force_cpu": {
            "type": "boolean"
          },
          "model_kwargs": {
            "additionalProperties": {},
            "type": "object"
          },
          "momentum": {
            "type": "number"
          },
          "no_ddp_bb": {
            "type": "boolean"
          },
          "no_prefetcher": {
            "type": "boolean"
          },
          "num_classes": {
            "type": ["integer", "null"]
          },
          "opt": {
            "type": "string"
          },
          "opt_betas": {
            "items": {
              "type": "number"
            },
            "type": ["array", "null"]
          },
          "opt_eps": {
            "type": ["number", "null"]
          },
          "opt_kwargs": {
            "additionalProperties": {},
            "type": "object"
          },
          "patience_epochs": {
            "type": "integer"
          },
          "pretrained": {
            "type": "boolean"
          },
          "recovery_interval": {
            "type": "integer"
          },
          "resplit": {
            "type": "boolean"
          },
          "save_images": {
            "type": "boolean"
          },
          "sched": {
            "type": "string"
          },
          "sched_on_updates": {
            "type": "boolean"
          },
          "seed": {
            "type": "integer"
          },
          "smoothing": {
            "type": "number"
          },
          "split_bn": {
            "type": "boolean"
          },
          "start_epoch": {
            "type": ["integer", "null"]
          },
          "std": {
            "items": {
              "type": "number"
            },
            "type": ["array", "null"]
          },
          "sync_bn": {
            "type": "boolean"
          },
          "synchronize_step": {
            "type": "boolean"
          },
          "torchcompile": {
            "type": ["string", "null"]
          },
          "torchscript": {
            "type": "boolean"
          },
          "tta": {
            "type": "integer"
          },
          "validation_batch_size": {
            "type": ["integer", "null"]
          },
          "warmup_epochs": {
            "type": "integer"
          },
          "warmup_lr": {
            "type": "number"
          },
          "warmup_prefix": {
            "type": "boolean"
          },
          "weight_decay": {
            "type": "number"
          },
          "workers": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "TextFieldType": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": ["string", "null"]
          },
          "datetime_format": {
            "type": ["string", "null"]
          },
          "heading": {
            "type": "string"
          },
          "value": {
            "type": ["string", "null"]
          }
        },
        "required": ["heading"],
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmAmethystArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "cnv_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_upper_bound": {
            "anyOf": [
              {
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_lower_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_upper_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total_ga_area_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "total_ga_area_upper_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmAmethystConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmAmethystArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.TrialInclusionCriteriaMatchAlgorithmAmethyst",
              "TrialInclusionCriteriaMatchAlgorithmAmethyst"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmBronzeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "cnv_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "conditions_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "distance_from_fovea_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "distance_from_fovea_upper_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "exclude_foveal_ga": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_upper_bound": {
            "anyOf": [
              {
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_lower_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_upper_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total_ga_area_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "total_ga_area_upper_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmBronzeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmBronzeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.TrialInclusionCriteriaMatchAlgorithmBronze",
              "TrialInclusionCriteriaMatchAlgorithmBronze"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "cnv_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "conditions_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "diabetic_macular_edema_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "diabetic_macular_edema_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "diffuse_edema_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "diffuse_edema_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "drusen_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "eligible_on_exclusion_codes_lat_unknown": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "eligible_on_inclusion_codes_lat_unknown": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "epiretinal_fibrosis_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "epiretinal_fibrosis_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "hard_exudates_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "hypertransmission_threshold": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "intraretinal_cystoid_fluid_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "intraretinal_cystoid_fluid_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "largest_ga_lesion_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_upper_bound": {
            "anyOf": [
              {
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "neurosensory_retina_atrophy_threshold": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_lower_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_upper_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "serous_rpe_detachment_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subretinal_fluid_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subretinal_fluid_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subretinal_hyperreflective_material__shrm__threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "subretinal_hyperreflective_material_typical_width_micrometers": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total_ga_area_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "total_ga_area_upper_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "wet_amd_threshold": {
            "anyOf": [
              {
                "maximum": 1.0,
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmCharcoalArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TrialInclusionCriteriaMatchAlgorithmCharcoal"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoalArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "conditions_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "conditions_inclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_lower_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "procedures_exclusion_study_eye_codes": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": ["array", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoalConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoalArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.TrialInclusionCriteriaMatchAlgorithmGlaucomaCharcoal"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmJadeArgumentsConfig": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmJadeConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmJadeArgumentsConfig"
          },
          "name": {
            "enum": [
              "bitfount.TrialInclusionCriteriaMatchAlgorithmJade",
              "bitfount.TrialInclusionCriteriaMatchAlgorithm",
              "TrialInclusionCriteriaMatchAlgorithmJade",
              "TrialInclusionCriteriaMatchAlgorithm"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmSapphireArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "cnv_threshold": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "largest_ga_lesion_upper_bound": {
            "anyOf": [
              {
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_lower_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "patient_age_upper_bound": {
            "anyOf": [
              {
                "type": ["integer", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total_ga_area_lower_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          },
          "total_ga_area_upper_bound": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialInclusionCriteriaMatchAlgorithmSapphireConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialInclusionCriteriaMatchAlgorithmSapphireArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TrialInclusionCriteriaMatchAlgorithmSapphire"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrialMatchingAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "default_country": {
            "type": "string"
          },
          "max_distance_km": {
            "anyOf": [
              {
                "minimum": 0.0,
                "type": ["number", "null"]
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "top_n": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^\\{\\{\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\}\\}$",
                "type": "string"
              }
            ]
          }
        },
        "type": "object"
      },
      "TrialMatchingAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/TrialMatchingAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.TrialMatchingAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "WetAMDScreeningProtocolSapphireArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "aggregator": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AggregatorConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "batch_grouping": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemplatedGroupingConfig"
              },
              {
                "type": "null"
              }
            ]
          },
          "rename_columns": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "results_notification_email": {
            "type": ["boolean", "null"]
          },
          "trial_name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "WetAMDScreeningProtocolSapphireConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/WetAMDScreeningProtocolSapphireArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount.WetAMDScreeningProtocolSapphire"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "_SimpleCSVAlgorithmAlgorithmConfig": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "$ref": "#/components/schemas/_SimpleCSVAlgorithmArgumentsConfig"
          },
          "name": {
            "enum": ["bitfount._SimpleCSVAlgorithm", "_SimpleCSVAlgorithm"],
            "type": "string"
          }
        },
        "type": "object"
      },
      "_SimpleCSVAlgorithmArgumentsConfig": {
        "additionalProperties": false,
        "properties": {
          "save_path": {
            "type": ["string", "null"],
            "writeOnly": true
          }
        },
        "type": "object"
      },
      "_TemplateArrayItemsDetails": {
        "additionalProperties": false,
        "properties": {
          "type": {
            "enum": ["string"],
            "type": "string"
          }
        },
        "required": ["type"],
        "type": "object"
      },
      "_TemplateFilePathTypeDetails": {
        "additionalProperties": false,
        "properties": {
          "extension": {
            "type": ["string", "null"]
          }
        },
        "type": "object"
      },
      "_TemplateFilePathTypeEntry": {
        "additionalProperties": false,
        "properties": {
          "file_path": {
            "$ref": "#/components/schemas/_TemplateFilePathTypeDetails"
          }
        },
        "required": ["file_path"],
        "type": "object"
      },
      "_TemplateModelSlugTypeDetails": {
        "additionalProperties": false,
        "properties": {
          "author": {
            "type": ["string", "null"]
          },
          "library": {
            "type": "string"
          },
          "pipeline_tag": {
            "type": ["string", "null"]
          },
          "provider": {
            "type": "string"
          }
        },
        "required": ["library", "provider"],
        "type": "object"
      },
      "_TemplateModelSlugTypeEntry": {
        "additionalProperties": false,
        "properties": {
          "model_slug": {
            "$ref": "#/components/schemas/_TemplateModelSlugTypeDetails"
          }
        },
        "required": ["model_slug"],
        "type": "object"
      },
      "_TemplateSchemaColumnNameArrayTypeEntry": {
        "additionalProperties": false,
        "properties": {
          "schema_column_name_array": {
            "$ref": "#/components/schemas/_TemplateSchemaColumnNameTypeDetails1"
          }
        },
        "required": ["schema_column_name_array"],
        "type": "object"
      },
      "_TemplateSchemaColumnNameTypeDetails": {
        "additionalProperties": false,
        "properties": {
          "semantic_type": {
            "enum": ["categorical", "continuous", "image", "text"],
            "type": "string"
          }
        },
        "required": ["semantic_type"],
        "type": "object"
      },
      "_TemplateSchemaColumnNameTypeDetails1": {
        "additionalProperties": false,
        "properties": {
          "semantic_type": {
            "enum": ["categorical", "continuous", "image", "text"],
            "type": "string"
          }
        },
        "required": ["semantic_type"],
        "type": "object"
      },
      "_TemplateSchemaColumnNameTypeEntry": {
        "additionalProperties": false,
        "properties": {
          "schema_column_name": {
            "$ref": "#/components/schemas/_TemplateSchemaColumnNameTypeDetails"
          }
        },
        "required": ["schema_column_name"],
        "type": "object"
      },
      "_TemplateTaskFiltersTypeDetails": {
        "additionalProperties": false,
        "properties": {
          "filter_types": {
            "items": {
              "enum": [
                "file-creation-min-date",
                "file-creation-max-date",
                "file-modification-min-date",
                "file-modification-max-date",
                "min-dob",
                "max-dob",
                "min-file-size",
                "max-file-size",
                "min-frames",
                "max-frames",
                "check-required-fields",
                "required-field-names",
                "modality",
                "scan-acquisition-min-date",
                "scan-acquisition-max-date",
                "series-description",
                "inferred-scan-type"
              ],
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": ["filter_types"],
        "type": "object"
      },
      "_TemplateTaskFiltersTypeEntry": {
        "additionalProperties": false,
        "properties": {
          "task_filters": {
            "$ref": "#/components/schemas/_TemplateTaskFiltersTypeDetails"
          }
        },
        "required": ["task_filters"],
        "type": "object"
      }
    }
  },
  "info": {
    "title": "TemplatedModellerConfig OpenAPI Spec",
    "version": "0.0.0"
  },
  "openapi": "3.1.0",
  "options": {
    "externalDocs": {
      "description": "More information about the YAML API",
      "url": "https://docs.bitfount.com/api/bitfount/runners/config_schemas"
    }
  },
  "paths": {},
  "yaml_versions": [
    "2.0.0",
    "3.0.0",
    "4.0.0",
    "4.0.1",
    "4.1.0",
    "5.0.0",
    "6.0.0",
    "6.1.0",
    "6.2.0",
    "6.2.1",
    "6.3.0",
    "6.4.0",
    "6.5.0",
    "6.6.0"
  ]
}
