{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/chemaxon/json-schema/chemaxon-enumeration-request-schema.json",
  "title": "EnumerationRequest",
  "description": "Json structure that contains the structure and the needed parameters.",
  "x-generated": "2026-11-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/chemaxon-markush-enumeration-openapi.yml#/components/schemas/EnumerationRequest",
  "properties": {
    "chemicalTermsFilterExpression": {
      "type": "string",
      "description": "It filters out the result according to the specified chemical terms.\nFiltering is executed before returning and counting the result set."
    },
    "enableDuplicateFilter": {
      "type": "boolean",
      "default": false,
      "description": "If enabled it filters out duplicates. Filtering is executed before returning and counting the result set."
    },
    "enableValenceFilter": {
      "type": "boolean",
      "default": false,
      "description": "If the Markush structure is not properly (or too generally) formulated, it is possible\nthat it describes structures with valence errors. In this case, the valence filter setting is useful\nto filter out the offending result structures.\nFiltering is executed before returning and counting the result set."
    },
    "inputFormat": {
      "type": "string",
      "description": "Format of the input structure, or null for auto recognition."
    },
    "maxResultCount": {
      "type": "integer",
      "format": "int32",
      "default": 100,
      "description": "If set, iteration stops on reached given result count, and returns the incomplete results.\nSet to null for no limit."
    },
    "resultStructureFormat": {
      "type": "string",
      "default": "mrv",
      "description": "The output format and options for the enumerated structures."
    },
    "rgroups": {
      "type": "array",
      "description": "Additional R-groups that will be added to the main structure. Existing R-groups in the main structure are not replaced, just extended.",
      "items": {
        "$ref": "#/$defs/RgroupRequest"
      }
    },
    "structure": {
      "type": "string",
      "description": "the structure to be enumerated"
    },
    "timeoutInMilliseconds": {
      "type": "integer",
      "format": "int32",
      "default": 10000,
      "description": "If set, iteration stops on timeout, and returns the incomplete results. Set to null for no timeout."
    }
  },
  "required": [
    "structure"
  ],
  "$defs": {
    "RgroupRequest": {
      "properties": {
        "fragments": {
          "type": "array",
          "description": "R-group fragments",
          "items": {
            "type": "string"
          }
        },
        "label": {
          "type": "string",
          "description": "Label of the R-group (e.g. \"R1\", \"R2\", etc.)"
        }
      }
    }
  }
}