{
  "$defs": {
    "DefaultValuesConfig": {
      "additionalProperties": true,
      "description": "Default value override mapping.",
      "title": "DefaultValuesConfig",
      "type": "object"
    },
    "DuplicateNameSuffixConfig": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Duplicate-name suffix mapping.",
      "propertyNames": {
        "enum": [
          "model",
          "enum",
          "default"
        ]
      },
      "title": "DuplicateNameSuffixConfig",
      "type": "object"
    },
    "EnumFieldAsLiteralMapConfig": {
      "additionalProperties": {
        "enum": [
          "literal",
          "enum"
        ],
        "type": "string"
      },
      "description": "Per-field enum/literal generation override mapping.",
      "title": "EnumFieldAsLiteralMapConfig",
      "type": "object"
    },
    "ExtraTemplateDataConfig": {
      "additionalProperties": {
        "additionalProperties": true,
        "type": "object"
      },
      "description": "Extra template data mapping.",
      "title": "ExtraTemplateDataConfig",
      "type": "object"
    },
    "ModelValidators": {
      "description": "Validators configuration for a single model.",
      "properties": {
        "validators": {
          "items": {
            "$ref": "#/$defs/ValidatorDefinition"
          },
          "title": "Validators",
          "type": "array"
        }
      },
      "required": [
        "validators"
      ],
      "title": "ModelValidators",
      "type": "object"
    },
    "StringMappingConfig": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "JSON object with string keys and string values.",
      "title": "StringMappingConfig",
      "type": "object"
    },
    "StringOrStringListMappingConfig": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        ]
      },
      "description": "JSON object with string keys and string or list-of-string values.",
      "title": "StringOrStringListMappingConfig",
      "type": "object"
    },
    "ValidatorDefinition": {
      "description": "Definition of a single validator.",
      "properties": {
        "field": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Field"
        },
        "fields": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Fields"
        },
        "function": {
          "title": "Function",
          "type": "string"
        },
        "mode": {
          "$ref": "#/$defs/ValidatorMode",
          "default": "after"
        }
      },
      "required": [
        "function"
      ],
      "title": "ValidatorDefinition",
      "type": "object"
    },
    "ValidatorMode": {
      "description": "Validator mode for Pydantic v2 field_validator.",
      "enum": [
        "before",
        "after",
        "wrap",
        "plain"
      ],
      "title": "ValidatorMode",
      "type": "string"
    },
    "ValidatorsConfig": {
      "additionalProperties": {
        "$ref": "#/$defs/ModelValidators"
      },
      "description": "Root model for validators configuration.",
      "title": "ValidatorsConfig",
      "type": "object"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Strict JSON configuration schemas accepted by datamodel-code-generator.",
  "properties": {
    "aliases": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringOrStringListMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "base-class-map": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringOrStringListMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "custom-formatters-kwargs": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "default-values": {
      "anyOf": [
        {
          "$ref": "#/$defs/DefaultValuesConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "duplicate-name-suffix": {
      "anyOf": [
        {
          "$ref": "#/$defs/DuplicateNameSuffixConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "enum-field-as-literal-map": {
      "anyOf": [
        {
          "$ref": "#/$defs/EnumFieldAsLiteralMapConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "extra-template-data": {
      "anyOf": [
        {
          "$ref": "#/$defs/ExtraTemplateDataConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "model-name-map": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "serialization-aliases": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "type-overrides": {
      "anyOf": [
        {
          "$ref": "#/$defs/StringMappingConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "validators": {
      "anyOf": [
        {
          "$ref": "#/$defs/ValidatorsConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "title": "JsonConfigSchemasPayload",
  "type": "object"
}
