{
  "current_options": [
    {
      "dest": "input",
      "flags": [
        "--input"
      ],
      "name": "--input",
      "value": "tests/data/jsonschema/person.json"
    },
    {
      "dest": "output_model_type",
      "flags": [
        "--output-model-type"
      ],
      "name": "--output-model-type",
      "value": "pydantic_v2.BaseModel"
    },
    {
      "dest": "strict_types",
      "flags": [
        "--strict-types"
      ],
      "name": "--strict-types",
      "value": [
        "str",
        "int"
      ]
    },
    {
      "dest": "use_annotated",
      "flags": [
        "--use-annotated",
        "--no-use-annotated"
      ],
      "name": "--use-annotated",
      "value": false
    }
  ],
  "current_options_text": "--input tests/data/jsonschema/person.json\n--output-model-type pydantic_v2.BaseModel\n--strict-types str int\n--no-use-annotated",
  "format": "json",
  "help_text": "usage: \n  datamodel-codegen [options]\n\nGenerate Python data models from schema definitions or structured data\n\nFor detailed usage, see: https://datamodel-code-generator.koxudaxi.dev\n\nOptions:\n  --additional-imports ADDITIONAL_IMPORTS\n                        Custom imports for output (delimited list input). For\n                        example \"datetime.date,datetime.datetime\"\n  --allow-private-network, --no-allow-private-network\n                        Allow HTTP(S) schema requests to private, loopback,\n                        link-local, or otherwise non-public network hosts. By\n                        default these targets are blocked to reduce server-\n                        side request forgery (SSRF) risk. If a trusted\n                        internal schema endpoint is blocked, verify the URL\n                        and pass this option; otherwise use a local schema\n                        file or public endpoint. Pass --no-allow-private-\n                        network to override a configuration file that enables\n                        it.\n  --allow-remote-refs, --no-allow-remote-refs\n                        Allow fetching remote $ref references over HTTP/HTTPS.\n                        Currently remote fetching is allowed by default but\n                        emits a deprecation warning. Pass --allow-remote-refs\n                        to opt in without warning, or --no-allow-remote-refs\n                        to block remote fetching. In a future version, remote\n                        fetching will be disabled by default.\n  --class-decorators CLASS_DECORATORS\n                        Custom decorators for generated model classes\n                        (delimited list input). For example\n                        \"@dataclass_json(letter_case=LetterCase.CAMEL)\". The\n                        \"@\" prefix is optional and will be added automatically\n                        if missing.\n  --custom-formatters CUSTOM_FORMATTERS\n                        List of modules with custom formatter (delimited list\n                        input).\n  --emit-model-metadata EMIT_MODEL_METADATA\n                        Write a separate JSON map from generated models and\n                        fields to the JSON Pointer locations of their source\n                        schemas; module and class name identify a model.\n  --external-ref-mapping FILE_PATH=PYTHON_PACKAGE [FILE_PATH=PYTHON_PACKAGE ...]\n                        Map external $ref file paths to Python import packages\n                        instead of generating duplicate classes. Accepts one\n                        or more mappings after a single flag. Format:\n                        \"path/to/schema.yaml=mypackage.models\". When a $ref\n                        points to a mapped file, an import statement is\n                        generated instead of a class definition.\n  --formatters {builtin,black,isort,ruff-check,ruff-format} [{builtin,black,isort,ruff-check,ruff-format} ...]\n                        Formatters (current default: black, isort; future\n                        default: builtin). For Ruff projects, use --formatters\n                        ruff-check ruff-format (install with pip install\n                        'datamodel-code-generator[ruff]'). Use --formatters\n                        builtin when no external formatter is used or\n                        generation speed takes priority. Keep --formatters\n                        black isort to preserve existing formatting. Presets\n                        dated 20260909 or later include builtin; explicit\n                        formatters override presets. The future builtin\n                        default reduces installation dependencies and version\n                        constraints. Black/isort remain required today;\n                        declare [black,isort] extras for their later optional\n                        installation. Review custom-template output with\n                        builtin. Details: https://datamodel-code-\n                        generator.koxudaxi.dev/formatter-behavior/\n  --http-backend {auto,httpx,httpx2}\n                        Select the HTTP client backend. 'auto' (default)\n                        selects stable HTTPX when its client module is\n                        installed and only selects experimental HTTPX2 when\n                        that module is absent. 'httpx' and 'httpx2' require\n                        that exact backend. Explicit selections and paired\n                        dependency errors do not fall back.\n  --http-headers HTTP_HEADER [HTTP_HEADER ...]\n                        Set headers in HTTP requests to the remote host.\n                        (example: \"Authorization: Basic dXNlcjpwYXNz\")\n  --http-ignore-tls     Disable verification of the remote host's TLS\n                        certificate\n  --http-local-ref-path HTTP_LOCAL_REF_PATH\n                        Resolve HTTP(S) JSON Schema $ref URLs from a local\n                        directory instead of fetching them. URLs are mapped\n                        under the directory by host and path; extensionless\n                        refs also try '.json'.\n  --http-query-parameters HTTP_QUERY_PARAMETERS [HTTP_QUERY_PARAMETERS ...]\n                        Set query parameters in HTTP requests to the remote\n                        host. (example: \"ref=branch\")\n  --http-timeout HTTP_TIMEOUT\n                        Timeout in seconds for HTTP requests to remote hosts\n                        (default: 30)\n  --ignore-ref-siblings-by-schema-version, --no-ignore-ref-siblings-by-schema-version\n                        Read a $ref as its target alone where the schema\n                        version ignores the keywords beside it (JSON Schema\n                        draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), as those\n                        versions specify: a $ref with a sibling format: binary\n                        takes the referenced type instead of bytes, a sibling\n                        uniqueItems makes no set, and a sibling description or\n                        default is left out too. Versions that apply the\n                        keywords beside a $ref (2019-09 and later, OpenAPI 3.1\n                        and later, AsyncAPI 3) read them as before. Without it\n                        the keywords beside such a $ref overlay its target, as\n                        in 0.88.0. The version is the one --read-schema-\n                        version-per-document reads, else that of the document\n                        parsed.\n  --input INPUT         Input file/directory (default: stdin)\n  --input-file-type {auto,openapi,asyncapi,jsonschema,mcp-tools,xmlschema,protobuf,avro,json,yaml,dict,csv,graphql}\n                        Input file type (default: auto). Use 'jsonschema',\n                        'openapi', 'asyncapi', 'graphql', 'mcp-tools',\n                        'xmlschema', 'protobuf', or 'avro' for schema\n                        definitions. Use 'json', 'yaml', or 'csv' for raw\n                        sample data to infer a schema automatically.\n  --input-model MODULE_OR_PATH:NAME\n                        Python import path or file path to a Pydantic v2 model\n                        or schema dict (e.g., 'mypackage.module:ClassName',\n                        './models.py:ClassName', or\n                        'mypackage.schemas:SCHEMA_DICT'). Can be specified\n                        multiple times for related models with inheritance.\n                        For dict input, --input-file-type is required. Cannot\n                        be used with --input or --url.\n  --input-model-ref-strategy {regenerate-all,reuse-foreign,reuse-all}\n                        Strategy for referenced types in --input-model.\n                        'regenerate-all': Regenerate all types. 'reuse-\n                        foreign': Reuse types from different families (Enum,\n                        etc.), regenerate same-family. 'reuse-all': Reuse all\n                        referenced types via import. If not specified,\n                        defaults to regenerate-all behavior.\n  --locked              Require an existing remote lock and validate each\n                        fetched resource against it (experimental).\n  --lockfile LOCKFILE   Select the remote reference integrity lock file\n                        (experimental). An existing selected lock is verified\n                        automatically; a missing selected lock is ignored\n                        unless --locked is used. The default is datamodel-\n                        codegen.lock beside the discovered pyproject.toml, or\n                        in the invocation working directory when no project is\n                        found. Explicit relative paths resolve from the\n                        invocation working directory.\n  --no-formatters       Select no formatter, not even the default or a\n                        preset's formatters; --custom-formatters still run.\n  --output OUTPUT       Output file (default: stdout)\n  --output-model-type {pydantic_v2.BaseModel,pydantic_v2.dataclass,dataclasses.dataclass,typing.TypedDict,msgspec.Struct}\n                        Output model type (default: pydantic_v2.BaseModel)\n  --preset {standard-py310-20260619,standard-py311-20260619,standard-py312-20260619,standard-py313-20260619,standard-py314-20260619,practical-py310-20260619,practical-py311-20260619,practical-py312-20260619,practical-py313-20260619,practical-py314-20260619,standard-py310-20260826,standard-py311-20260826,standard-py312-20260826,standard-py313-20260826,standard-py314-20260826,practical-py310-20260826,practical-py311-20260826,practical-py312-20260826,practical-py313-20260826,practical-py314-20260826,standard-py310-20260909,standard-py311-20260909,standard-py312-20260909,standard-py313-20260909,standard-py314-20260909,practical-py310-20260909,practical-py311-20260909,practical-py312-20260909,practical-py313-20260909,practical-py314-20260909,standard-py310-20261015,standard-py311-20261015,standard-py312-20261015,standard-py313-20261015,standard-py314-20261015,standard-py315-20261015,practical-py310-20261015,practical-py311-20261015,practical-py312-20261015,practical-py313-20261015,practical-py314-20261015,practical-py315-20261015,standard-py310-20261017,standard-py311-20261017,standard-py312-20261017,standard-py313-20261017,standard-py314-20261017,standard-py315-20261017,practical-py310-20261017,practical-py311-20261017,practical-py312-20261017,practical-py313-20261017,practical-py314-20261017,practical-py315-20261017,standard-py310-20261027,standard-py311-20261027,standard-py312-20261027,standard-py313-20261027,standard-py314-20261027,standard-py315-20261027,practical-py310-20261027,practical-py311-20261027,practical-py312-20261027,practical-py313-20261027,practical-py314-20261027,practical-py315-20261027,standard-py310-20261104,standard-py311-20261104,standard-py312-20261104,standard-py313-20261104,standard-py314-20261104,standard-py315-20261104,practical-py310-20261104,practical-py311-20261104,practical-py312-20261104,practical-py313-20261104,practical-py314-20261104,practical-py315-20261104}\n                        Apply an immutable built-in option preset. Preset\n                        names include the target Python version so generated\n                        syntax is pinned.\n  --read-dynamic-anchors-in-document-order, --no-read-dynamic-anchors-in-document-order\n                        Resolve a plain-name $dynamicRef that its dynamic\n                        scope does not bind from the $dynamicAnchors its\n                        document declares, the first in document order when\n                        several declare the name, and a $ref or $dynamicRef to\n                        a plain name several schemas of a document declare to\n                        the first of them; without it the $dynamicRef takes\n                        the first anchor the parse has met, so the answer\n                        depends on the order of the schemas, and the $ref the\n                        last declaration, as in 0.89.0.\n  --read-escaped-ref-pointers, --no-read-escaped-ref-pointers\n                        Read the ~0 and ~1 escapes and the percent-encoded\n                        octets of a $ref JSON pointer as the characters they\n                        encode, as JSON Pointer and URI fragments do, so\n                        #/$defs/a~1b, and #/$defs/Foo Bar written with its\n                        space percent-encoded, name the models of the\n                        definitions a/b and Foo Bar; without it such a\n                        reference gets a copy of its target named after the\n                        escaped text (A1b, Foo20Bar), as in 0.89.0.\n  --read-input-model-dataclass-fields-by-alias, --no-read-input-model-dataclass-fields-by-alias\n                        With --input-model, read the fields of a Pydantic\n                        dataclass by their aliases, as those of a model, so a\n                        field with an alias keeps its Python type (deque[int],\n                        frozenset[str], ...) like one without; without it an\n                        aliased field of a Pydantic dataclass takes the type\n                        its JSON Schema spells (list[int]), as in 0.89.0\n  --read-schema-version-per-document, --no-read-schema-version-per-document\n                        Read each document by the schema version it declares\n                        ($schema, or the openapi or asyncapi field); a\n                        referenced document that declares none takes the\n                        version of the document whose reference loads it. The\n                        keywords beside a $ref and the features of the version\n                        (const, prefixItems, $id, $defs) then apply as each\n                        document's version says: a 2020-12 file of a directory\n                        read after a draft-07 one keeps the maximum beside an\n                        allOf $ref, an OpenAPI 3.1 document reads $ref\n                        siblings as JSON Schema 2020-12 does, and a draft-07\n                        document sets no property-count rule for a\n                        minProperties beside an allOf $ref. Without it the\n                        version of the document parsed first applies to every\n                        document, as in 0.88.0. An explicit --schema-version\n                        gives every document its version; the schema\n                        validators then read an OpenAPI or AsyncAPI document\n                        by it only with the option, else as draft 7.\n  --schema-version SCHEMA_VERSION\n                        Schema version. Valid values depend on input type:\n                        JsonSchema: auto, draft-04, draft-06, draft-07,\n                        2019-09, 2020-12. OpenAPI: auto, 3.0, 3.1, 3.2.\n                        AsyncAPI: auto, 2.0, 3.0. XMLSchema: auto, 1.0, 1.1.\n                        Protobuf: auto, proto2, proto3, 2023. (default: auto -\n                        detected from $schema, openapi/asyncapi field, XML\n                        Schema versioning attributes, or Protobuf\n                        syntax/edition)\n  --schema-version-mode {lenient,strict}\n                        Schema version validation mode. 'lenient': accept all\n                        features regardless of version (default). 'strict':\n                        warn on features outside declared/detected version.\n  --strict-refs         Treat unresolved local $ref JSON pointers as errors\n                        instead of generating fallback Any models.\n  --update-lock         Create or atomically update the selected remote lock\n                        after generation (experimental).\n  --url URL             Input file URL. `--input` is ignored when `--url` is\n                        used. For HTTP(S), datamodel-code-generator[http]\n                        remains the stable HTTPX backend and is not\n                        deprecated, while datamodel-code-generator[httpx2] is\n                        experimental. The default --http-backend auto policy\n                        selects stable HTTPX when its client module is\n                        installed and selects HTTPX2 only when that module is\n                        absent. Select --http-backend httpx2 to require the\n                        experimental backend. Explicit selections and paired\n                        dependency errors do not fall back.\n\nTyping customization:\n  --allof-class-hierarchy {if-no-conflict,always}\n                        How to map allOf references to class hierarchies. 'if-\n                        no-conflict': only create subclasses when parent class\n                        has no conflicting property definition. 'always':\n                        always create subclasses.\n  --allof-merge-mode {constraints,all,none}\n                        Mode for field merging in allOf schemas.\n                        'constraints': merge only constraints (minItems,\n                        maxItems, pattern, etc.) from parent (default). 'all':\n                        merge constraints plus annotations (default, examples)\n                        from parent. 'none': do not merge any fields from\n                        parent properties.\n  --base-class BASE_CLASS\n                        Base Class (default: pydantic.BaseModel)\n  --base-class-map BASE_CLASS_MAP\n                        Model-specific base class mapping (JSON or JSON file\n                        path). Example: '{\"MyModel\": \"custom.BaseA\",\n                        \"OtherModel\": \"custom.BaseB\"}'. Priority: base-class-\n                        map > customBasePath (in schema) > base-class.\n  --disable-future-imports\n                        Disable __future__ imports\n  --distribute-allof-over-unions, --no-distribute-allof-over-unions\n                        Read an `allOf` with the `anyOf` and `oneOf` it holds\n                        or sits beside as JSON Schema validates them: an\n                        `allOf` of several is one union variant per\n                        combination of one branch of each, also through a\n                        `$ref` member that names an `allOf` over a union, a\n                        `$ref` branch takes the `allOf` members beside its\n                        `anyOf` or `oneOf`, which an inline branch already\n                        takes, and the value keywords beside it where it names\n                        no object, and an OpenAPI request or response body\n                        with an `allOf` beside an `anyOf` or `oneOf` is that\n                        union as a schema of the components is; the value\n                        branches of those unions are read at a field and\n                        beside object branches too. Without it the branches of\n                        every `anyOf` and `oneOf` of an `allOf` join one union\n                        (the inline branches of a second replacing those of\n                        the first), a `$ref` member naming an `allOf` over a\n                        union is dropped, a `$ref` branch takes only the\n                        `properties` and `required` beside it, a body drops\n                        the union, and value branches are read only where the\n                        `allOf` would be a model without fields, as in 0.89.0\n  --enum-field-as-literal {all,one,none}\n                        Parse enum field as literal. all: all enum field type\n                        are Literal. one: field type is Literal when an enum\n                        has only one possible value. none: always use Enum\n                        class (never convert to Literal)\n  --enum-field-as-literal-map ENUM_FIELD_AS_LITERAL_MAP\n                        Per-field override for enum/literal generation (JSON\n                        or JSON file path). Format: JSON object mapping field\n                        names to 'literal' or 'enum'. Example: '{\"status\":\n                        \"literal\", \"priority\": \"enum\"}'. Overrides --enum-\n                        field-as-literal for matched fields.\n  --field-constraints   Use field constraints and not con* annotations\n  --filter-literal-values, --no-filter-literal-values\n                        Keep only the values of a `const` or an `enum` that\n                        meet the `minLength`, `maxLength`, `pattern`, bound\n                        and `multipleOf` constraints beside them in its\n                        `Literal` or Enum, as JSON Schema validates them; a\n                        schema none of whose values meets them stays as\n                        written with a warning\n  --ignore-enum-constraints\n                        Ignore enum constraints and use the base type (e.g.,\n                        str, int) instead of generating Enum classes\n  --import-overrides IMPORT_OVERRIDES\n                        Override modules for generated imports by symbol name.\n                        Format: JSON object mapping symbols to module paths.\n                        Example: '{\"TypedDict\": \"my_project.typing_compat\",\n                        \"NotRequired\": \"my_project.typing_compat\"}'.\n  --intersect-allof-keywords, --no-intersect-allof-keywords\n                        Combine the keywords of every part of an `allOf`, of a\n                        `$ref` with sibling keywords and of an inherited\n                        property override, as JSON Schema validates them: the\n                        tightest bounds, the `enum` values every part admits,\n                        the `type` every part admits, the conjunction of the\n                        `pattern`s, no null beside a `type` that excludes it,\n                        and the constraints of the root, item and map value\n                        positions of an `allOf`. Without it, the keyword of\n                        the last part wins where the parts disagree\n  --intersect-combined-schema-keywords, --no-intersect-combined-schema-keywords\n                        Combine the keywords of every part of a combined\n                        schema as JSON Schema validates them, as --intersect-\n                        allof-keywords does (this option turns it on), and\n                        also: the keywords beside an `anyOf` or `oneOf` in\n                        each branch, the `properties` an inherited property\n                        override merges name by name, an override that narrows\n                        the inherited `type` (such as to `null`), the length\n                        of an inherited closed tuple under --allof-merge-mode\n                        none, the `$ref` siblings of an `allOf` member where\n                        the dialect reads them, an `allOf` member that names a\n                        `$ref` alias, the null branch of an `allOf` member's\n                        `anyOf` or `oneOf`, and no `enum` value that the\n                        merged `type` rejects. Without it these keep the\n                        output of 0.88.0\n  --keep-enum-member-values, --no-keep-enum-member-values\n                        Write an enum as a plain Enum where the value base of\n                        --use-specialized-enum or --use-subclass-enum would\n                        change a member value, such as 2.5 in an IntEnum;\n                        without it the base follows the schema type, as in\n                        0.86.0\n  --merge-shared-variant-tags, --no-merge-shared-variant-tags\n                        Give a variant that several discriminated unions tag\n                        differently (for example one by a mapping key, one by\n                        the schema name) every tag they give it, so each union\n                        decodes the documents its discriminator selects; such\n                        a union also accepts the tags the other unions give\n                        the variant. A variant keeps the tag of the first\n                        union, as without the option (as in 0.88.0), where a\n                        union listing it would then give two of its variants\n                        one tag, and msgspec Structs, which take one tag, keep\n                        it too.\n  --omit-redundant-constraints, --no-omit-redundant-constraints\n                        Do not write a constraint again beside a type that\n                        already enforces it: the bound of a zero-bound class\n                        such as NonNegativeInt, and the length and number\n                        constraints a const or enum Literal meets by its\n                        values\n  --read-const-beside-enum, --no-read-const-beside-enum\n                        Read a `const` beside an `enum` as JSON Schema does: a\n                        value whose schema names the enum is typed by the\n                        const that narrows it (`Literal[Enum.member]`, a\n                        Literal or None) instead of the enum class that lists\n                        the values the const excludes, and under --use-single-\n                        value-enum-as-const an `enum` that admits its `const`\n                        is read as that `const` instead of an Enum, except one\n                        with `nullable: true` and a value other than null\n  --read-length-keywords-by-type, --no-read-length-keywords-by-type\n                        Read minLength, maxLength and pattern for strings only\n                        and minItems, maxItems and uniqueItems for arrays\n                        only, as JSON Schema does, so a maxLength beside an\n                        array leaves the list unbounded and a maxItems beside\n                        a string leaves the string unbounded; without it a\n                        declared array writes minLength/maxLength and a\n                        declared string minItems/maxItems as their length\n                        bounds, as in 0.88.0\n  --read-msgspec-union-bounds-exactly, --no-read-msgspec-union-bounds-exactly\n                        msgspec.Struct output only: decide whether the int\n                        member of a union with a number member drops its Meta\n                        bounds on the bounds the schema writes, exactly;\n                        without it a number member's bound past 2**53 is read\n                        as the float it is written as, so the int member can\n                        keep a bound that rejects an integer the number member\n                        accepts, as in 0.88.0\n  --read-unevaluated-properties, --no-read-unevaluated-properties\n                        Read a schema-valued unevaluatedProperties as\n                        additionalProperties where no applicator evaluates the\n                        object in place, so it types the extra keys of a model\n                        and makes an object without properties a map\n  --set-default-enum-member\n                        Deprecated: --set-default-enum-member is deprecated.\n                        Use --deserialize-default-values enum instead.\n  --strict-types {str,bytes,int,float,bool} [{str,bytes,int,float,bool} ...]\n                        Use strict types\n  --type-mappings TYPE_MAPPINGS [TYPE_MAPPINGS ...]\n                        Override default type mappings. Format:\n                        \"type+format=target\" (e.g., \"string+binary=string\" to\n                        map binary format to string type) or \"format=target\"\n                        (e.g., \"binary=string\"). Can be specified multiple\n                        times.\n  --type-overrides TYPE_OVERRIDES\n                        Replace schema model types with custom Python types.\n                        Format: JSON object mapping model names to Python\n                        import paths. Model-level: '{\"CustomType\":\n                        \"my_app.types.MyType\"}' replaces all references.\n                        Scoped: '{\"User.field\": \"my_app.Type\"}' replaces\n                        specific field only.\n  --type-overrides-replace-whole-type, --no-type-overrides-replace-whole-type\n                        Make every --type-overrides value of a field replace\n                        the field's whole type: a class path replaces an\n                        object map itself, as an annotation already does (dict\n                        for builtins.dict, not dict[str, dict]), and the item\n                        counts of an array and the property counts of a map it\n                        replaces stay only where the new type counts the same\n                        (a sequence its items, a mapping class its keys), with\n                        a warning otherwise; without it a class path keeps the\n                        dict of a map around the class and every override\n                        keeps those counts whatever its type, as in 0.89.0\n  --use-annotated, --no-use-annotated\n                        Use typing.Annotated for Field(). Also, `--field-\n                        constraints` option will be enabled. Will become\n                        default for Pydantic v2 in a future version.\n  --use-closed-typed-dict, --no-use-closed-typed-dict\n                        Generate TypedDict with PEP 728\n                        closed=True/extra_items for additionalProperties\n                        constraints. Use --no-use-closed-typed-dict for type\n                        checkers that don't yet support PEP 728 (e.g., mypy).\n  --use-decimal-for-multiple-of\n                        Use condecimal instead of confloat for float/number\n                        fields with multipleOf constraint (Pydantic only).\n                        Avoids floating-point precision issues in validation.\n  --use-decimal-in-field-forms, --no-use-decimal-in-field-forms\n                        Under --use-decimal-for-multiple-of, also write\n                        Decimal for a number with multipleOf in the field\n                        forms (--field-constraints, --use-annotated), with the\n                        constraints in Field(), and make the Decimal strict\n                        under --strict-types float (Pydantic only)\n  --use-encoded-str-for-constrained-base64, --no-use-encoded-str-for-constrained-base64\n                        Write a format: byte string with pattern, minLength or\n                        maxLength in the field forms (--field-constraints,\n                        --use-annotated) as Annotated[str, Field(...),\n                        EncodedStr(encoder=Base64Encoder)], so Pydantic 2.10\n                        or later checks the constraints on the base64 text, as\n                        the schema does; without it Annotated[Base64Str,\n                        Field(...)] and an optional Base64Str with Field(...)\n                        check them on the decoded text, as in 0.88.0 (Pydantic\n                        v2 only)\n  --use-enum-values-in-discriminator\n                        Use enum member literals in discriminator fields\n                        instead of string literals\n  --use-generic-container-types\n                        Use generic container types for type hinting\n                        (typing.Sequence, typing.Mapping). If `--use-standard-\n                        collections` option is set, then import from\n                        collections.abc instead of typing\n  --use-non-positive-negative-number-constrained-types\n                        Use the Non{Positive,Negative}{FloatInt} types instead\n                        of the corresponding con* constrained types.\n  --use-object-type, --no-use-object-type\n                        Use object instead of Any for unspecified JSON Schema\n                        object and array values\n  --use-one-literal-as-default\n                        Use one literal as default value for one literal field\n  --use-one-model-per-ref-site, --no-use-one-model-per-ref-site\n                        Give an object $ref with sibling keywords one model\n                        per place it is written, which every unchanged copy of\n                        that place shares, and parse such chains without\n                        nesting; without it each path that reaches the place\n                        gets a model of its own (N(N-1)/2 site models for a\n                        chain of N definitions), as in 0.89.0.\n  --use-plain-alias-for-recursive-models, --no-use-plain-alias-for-recursive-models\n                        Pydantic output only: write a type alias whose whole\n                        value is a model that names itself as `Alias:\n                        TypeAlias = Node`, which Pydantic builds for every\n                        model that uses it; without it the alias is\n                        `TypeAliasType(\"Alias\", Node)` (or `type Alias =\n                        Node`) as in 0.89.0, which Pydantic 2 refuses once two\n                        models use it. The alias then has no entry of its own\n                        in `model_json_schema()` `$defs`\n  --use-root-model-type-alias\n                        Use type alias format for RootModel (e.g., Foo =\n                        RootModel[Bar]) instead of class inheritance (Pydantic\n                        v2 only)\n  --use-serialize-as-any\n                        Use pydantic.SerializeAsAny for fields with types that\n                        have subtypes (Pydantic v2 only)\n  --use-serialize-as-any-for-every-subclass, --no-use-serialize-as-any-for-every-subclass\n                        Under --use-serialize-as-any, wrap a field in\n                        SerializeAsAny when any subclass of its model in the\n                        generated output adds fields: at any depth, after\n                        --reuse-model or --collapse-reuse-models merges the\n                        model, and where the field names the model through its\n                        module; without it only a field whose model has a\n                        direct subclass is wrapped, as in 0.88.0 (Pydantic v2\n                        only)\n  --use-single-dict-for-object-maps, --no-use-single-dict-for-object-maps\n                        Type an object map, an object without properties whose\n                        keys patternProperties or propertyNames constrain, as\n                        one dict whose keys are those of every key class and\n                        whose value is the union of their values, beside the\n                        null and the other types of its type array\n  --use-single-value-enum-as-const, --no-use-single-value-enum-as-const\n                        Treat `enum` with a single value as `const` with that\n                        value, which JSON Schema defines as equal: oneOf/anyOf\n                        branches such as {\"type\": \"string\", \"enum\": [\"low\"]}\n                        merge into one Enum when there are two or more and all\n                        hold values of one JSON type, otherwise each branch is\n                        typed as written, and a schema with one enum value is\n                        typed Literal[...] instead of a one-member Enum,\n                        except one with `nullable: true` and a value other\n                        than null, which is read as written\n  --use-site-models-for-constrained-refs, --no-use-site-models-for-constrained-refs\n                        Give an allOf of $ref members whose other parts add\n                        constraints, an enum or a type its own model of the\n                        values all parts admit, instead of the referenced\n                        type, which leaves the added assertions out\n  --use-specialized-enum, --no-use-specialized-enum\n                        Use specialized Enum class (StrEnum, IntEnum).\n                        Requires --target-python-version 3.11+\n  --use-standard-collections, --no-use-standard-collections\n                        Use standard collections for type hinting (list,\n                        dict). Default: enabled\n  --use-subclass-enum, --no-use-subclass-enum\n                        Define generic Enum class as subclass with field type\n                        when enum has type (int, float, bytes, str)\n  --use-total-false-for-typed-dict\n                        Generate TypedDict with total=False and mark required\n                        fields with Required\n  --use-tuple-for-closed-arrays, --no-use-tuple-for-closed-arrays\n                        Generate tuple types for positional arrays that no\n                        other item can follow: a closed prefixItems tail\n                        (items, unevaluatedItems or additionalItems false)\n                        whose length the length keywords fix, so that each\n                        position keeps its own type\n  --use-tuple-for-fixed-items, --no-use-tuple-for-fixed-items\n                        Generate tuple types for arrays with items array\n                        syntax when minItems equals maxItems equals items\n                        length\n  --use-tuple-for-fixed-length-arrays\n                        Generate tuple types for fixed-length arrays with a\n                        single items schema\n  --use-type-alias      Use TypeAlias instead of root models (experimental)\n  --use-type-alias-type\n                        Use TypeAliasType for type aliases on Python 3.10 and\n                        3.11 (implies --use-type-alias; experimental)\n  --use-typed-map-values-beside-other-types, --no-use-typed-map-values-beside-other-types\n                        With --use-typed-nullable-map-values, also type the\n                        map values of type arrays that list object beside\n                        other types, such as [object, string], as dict[str,\n                        int] | str instead of dict[str, Any] | str\n  --use-typed-nullable-map-values\n                        Type the values of nullable maps, schemas whose type\n                        array lists object alone or with null, such as\n                        [object, null] or [object], with additionalProperties,\n                        as their schema says, with a model for object values.\n                        Without it the 0.83.0 form is kept, dict[str, Any] |\n                        None, or dict[str, Any] without null.\n  --use-union-operator, --no-use-union-operator\n                        Use | operator for Union type (PEP 604). Default:\n                        enabled\n  --use-unique-items-as-set, --no-use-unique-items-as-set\n                        define field type as `set` when the field attribute\n                        has `uniqueItems`\n  --use-unique-items-as-set-by-value, --no-use-unique-items-as-set-by-value\n                        Under --use-unique-items-as-set, decide each set once\n                        the item types are final (after --collapse-root-\n                        models, --type-overrides and every module) and write a\n                        set only where every value of its items hashes by\n                        value (scalars, enums, tuples and frozen sets of them,\n                        frozen models); an array of models that hash only by\n                        identity, of Any or of containers stays a list.\n                        Deduplication and --reuse-model also keep apart models\n                        whose arrays differ in uniqueItems; without it the\n                        sets are decided before root models collapse, set item\n                        models hash by identity and such models merge, as in\n                        0.89.0\n\nField customization:\n  --capitalise-enum-members, --capitalize-enum-members\n                        Capitalize field names on enum\n  --capitalise-numbered-enum-members, --no-capitalise-numbered-enum-members, --capitalize-numbered-enum-members, --no-capitalize-numbered-enum-members\n                        Under --capitalise-enum-members, capitalize also the\n                        number a member takes when its capitalized name is\n                        taken (A_1 instead of a_1 for the members 'a' and\n                        'A'); without it the numbered name stays as written,\n                        as in 0.88.0\n  --empty-enum-field-name EMPTY_ENUM_FIELD_NAME\n                        Set field name when enum value is empty (default: `_`)\n  --field-extra-keys FIELD_EXTRA_KEYS [FIELD_EXTRA_KEYS ...]\n                        Add extra keys to field parameters\n  --field-extra-keys-without-x-prefix FIELD_EXTRA_KEYS_WITHOUT_X_PREFIX [FIELD_EXTRA_KEYS_WITHOUT_X_PREFIX ...]\n                        Add extra keys with `x-` prefix to field parameters.\n                        The extra keys are stripped of the `x-` prefix.\n  --field-include-all-keys\n                        Add all keys to field parameters\n  --field-type-collision-strategy {rename-field,rename-type}\n                        Strategy for handling field name and type name\n                        collisions (Pydantic v2 only). 'rename-field': rename\n                        field with suffix and add alias (default). 'rename-\n                        type': rename type class with suffix to preserve field\n                        name.\n  --force-optional      Force optional for required fields\n  --keep-field-defaults-off-branch-roots, --no-keep-field-defaults-off-branch-roots\n                        Leave the default of a property off the root models\n                        extracted from the branches of its `anyOf` or `oneOf`,\n                        which then require their value; without it each such\n                        root takes the property's default\n  --keep-reference-null-on-merged-models, --no-keep-reference-null-on-merged-models\n                        Keep the null that the schema of a field, item or\n                        member admits where the model it references is merged\n                        into an equal model that rejects null (deduplication\n                        of equal models, --reuse-model, --collapse-reuse-\n                        models, --reuse-scope tree), so a `type: [object,\n                        null]` property keeps `| None`; without it the\n                        reference takes the null of the model it names after\n                        the merge, as in 0.88.0\n  --model-extra-keys MODEL_EXTRA_KEYS [MODEL_EXTRA_KEYS ...]\n                        Add extra keys from schema extensions (x-* fields) to\n                        model_config json_schema_extra\n  --model-extra-keys-without-x-prefix MODEL_EXTRA_KEYS_WITHOUT_X_PREFIX [MODEL_EXTRA_KEYS_WITHOUT_X_PREFIX ...]\n                        Add extra keys with `x-` prefix to model_config\n                        json_schema_extra. The extra keys are stripped of the\n                        `x-` prefix.\n  --no-alias            Do not add a field alias. E.g., if --snake-case-field\n                        is used along with a base class, which has an\n                        alias_generator\n  --omit-redundant-reference-null, --no-omit-redundant-reference-null\n                        Do not write None again where a field, item or member\n                        references a model that holds null itself (a root\n                        model or type alias whose type admits None, or an enum\n                        with a None member), so that a null parses to that\n                        model\n  --original-field-name-delimiter ORIGINAL_FIELD_NAME_DELIMITER\n                        Set delimiter to convert to snake case. This option\n                        only can be used with --snake-case-field (default: `_`\n                        )\n  --read-nullable-beside-type-list, --no-read-nullable-beside-type-list\n                        Write the null that `nullable: true` declares beside a\n                        `type` list with an object into the root model of that\n                        schema under --strict-nullable or --use-missing-\n                        sentinel, as a declared field does; without it only a\n                        `type` list holding null makes that root admit None\n  --remove-special-field-name-prefix\n                        Remove field name prefix if it has a special meaning\n                        e.g. underscores\n  --serialization-aliases SERIALIZATION_ALIASES\n                        Serialization alias mapping as inline JSON or a JSON\n                        file path for Pydantic v2. Format: {'<schema_field>':\n                        '<serialization_alias>'}. Supports hierarchical\n                        formats: Flat: {'name': 'fullName'} applies to all\n                        occurrences. Scoped: {'User.name': 'fullName'} applies\n                        to specific class.\n  --snake-case-field, --no-snake-case-field\n                        Change camel-case field name to snake-case\n  --special-field-name-prefix SPECIAL_FIELD_NAME_PREFIX\n                        Set field name prefix when first character can't be\n                        used as Python field name (default: `field`)\n  --strict-nullable, --no-strict-nullable\n                        Treat default field as a non-nullable field\n  --strip-default-none  Strip default None on fields (no effect on\n                        msgspec.Struct: it defaults an omitted field to UNSET,\n                        and to None only when the type admits None)\n  --union-mode {smart,left_to_right}\n                        Union mode for only pydantic v2 field\n  --use-attribute-docstrings\n                        Set use_attribute_docstrings=True in Pydantic v2\n                        ConfigDict\n  --use-default         Use default value even if a field is required\n  --use-default-factory-for-optional-nested-models\n                        Use default_factory for optional nested model fields\n                        instead of None default. E.g., `field: Model | None =\n                        Field(default_factory=Model)` instead of `field: Model\n                        | None = None`\n  --use-default-kwarg, --no-use-default-kwarg\n                        Use `default=` instead of a positional argument for\n                        Fields that have default values.\n  --use-field-description, --no-use-field-description\n                        Use schema description to populate field docstring\n  --use-field-description-example, --no-use-field-description-example\n                        Use schema example to populate field docstring\n  --use-frozen-field, --no-use-frozen-field\n                        Use Field(frozen=True) for readOnly fields (Pydantic\n                        v2).\n  --use-inline-field-description\n                        Use schema description to populate field docstring as\n                        inline docstring\n  --use-missing-sentinel\n                        Use pydantic.experimental.missing_sentinel.MISSING for\n                        optional fields without defaults (Pydantic v2.12+), or\n                        pydantic.MISSING with --target-pydantic-version 2.14\n                        or later, which --generate-server and --generate-\n                        client require with this option. Supports\n                        pydantic_v2.BaseModel and pydantic_v2.dataclass, whose\n                        server and client generation requires it.\n  --use-serialization-alias\n                        Use serialization_alias instead of alias for field\n                        aliasing (Pydantic v2 only). This allows setting\n                        values using the Pythonic field name while serializing\n                        to the original name.\n  --use-single-line-docstring, --no-use-single-line-docstring\n                        Use single-line docstrings when the content fits on\n                        one line\n\nModel customization:\n  --alias-generator {to_camel,to_pascal,to_snake}\n                        Pydantic v2 BaseModel alias generator to use in\n                        ConfigDict. Matching generated aliases are omitted\n                        from individual Field() calls, except with --target-\n                        pydantic-version 2, which writes every alias.\n  --all-exports-collision-strategy {error,minimal-prefix,full-prefix}\n                        Strategy for name collisions when using --all-exports-\n                        scope=recursive. 'error': raise an error (default).\n                        'minimal-prefix': add module prefix only to colliding\n                        names. 'full-prefix': add full module path prefix to\n                        colliding names.\n  --all-exports-scope {children,recursive}\n                        Generate __all__ in __init__.py with re-exports.\n                        'children': export from direct child modules only.\n                        'recursive': export from all descendant modules.\n  --allow-extra-fields  Deprecated: --allow-extra-fields is deprecated. Use\n                        --extra-fields=allow instead.\n  --allow-leading-underscore-class-name\n                        Allow an explicitly specified root class name to start\n                        with an underscore\n  --allow-population-by-field-name, --no-allow-population-by-field-name\n                        Allow population by field name\n  --class-name CLASS_NAME\n                        Set class name of root model\n  --class-name-affix-scope {all,models,enums}\n                        Scope for applying --class-name-prefix/--class-name-\n                        suffix. 'all': Apply to all classes including enums\n                        (default). 'models': Apply only to model classes.\n                        'enums': Apply only to enum classes.\n  --class-name-prefix CLASS_NAME_PREFIX\n                        Prefix to add to generated class names (e.g., 'Api'\n                        produces 'ApiUser'). Does not apply to root model when\n                        --class-name is specified.\n  --class-name-suffix CLASS_NAME_SUFFIX\n                        Suffix to add to generated class names (e.g., 'Schema'\n                        produces 'UserSchema'). Does not apply to root model\n                        when --class-name is specified.\n  --collapse-reuse-models, --no-collapse-reuse-models\n                        When used with --reuse-model, collapse duplicate\n                        models by replacing references instead of creating\n                        empty inheritance subclasses. This eliminates 'class\n                        Foo(Bar): pass' patterns\n  --collapse-root-models, --no-collapse-root-models\n                        Models generated with a root-type field will be merged\n                        into the models using that root-type model\n  --collapse-root-models-name-strategy {child,parent}\n                        Strategy for naming when collapsing root models that\n                        reference other models. 'child': Keep inner model's\n                        name (default). 'parent': Use wrapper's name for inner\n                        model. Requires --collapse-root-models to be set.\n  --collapse-shared-parent-wrappers, --no-collapse-shared-parent-wrappers\n                        Under --collapse-root-models-name-strategy parent,\n                        make every model that references a wrapper reference\n                        the inner model that takes its name, as its first\n                        model does; without it, where --field-type-collision-\n                        strategy rename-type can rename the wrapper apart from\n                        the inner model in their module, the later models keep\n                        the wrapper\n  --dataclass-arguments DATACLASS_ARGUMENTS\n                        Custom dataclass arguments as a JSON dictionary, e.g.\n                        '{\"frozen\": true, \"kw_only\": true}'. Overrides\n                        --frozen-dataclasses and similar flags.\n  --disable-appending-item-suffix\n                        Disable appending `Item` suffix to model name in an\n                        array\n  --disable-timestamp, --no-disable-timestamp\n                        Disable timestamp on file headers\n  --duplicate-name-suffix DUPLICATE_NAME_SUFFIX\n                        JSON mapping of type to suffix for resolving duplicate\n                        name conflicts. Example: '{\"model\": \"Schema\"}' changes\n                        Address1 to AddressSchema. Keys: 'model' (for\n                        classes), 'enum' (for enums), 'default' (fallback).\n                        When not specified, uses numeric suffix (Address1,\n                        Address2).\n  --enable-command-header\n                        Enable command-line options on file headers for\n                        reproducibility\n  --enable-faux-immutability\n                        Enable faux immutability\n  --enable-generated-header-marker\n                        Enable @generated marker on file headers\n  --enable-version-header\n                        Enable package version on file headers\n  --extra-fields {allow,ignore,forbid}\n                        Set the generated models to allow, forbid, or ignore\n                        extra fields.\n  --frozen-dataclasses  Generate frozen dataclasses (dataclass(frozen=True)).\n                        Only applies to dataclass output.\n  --infer-union-variant-names\n                        Name inline oneOf/anyOf branch models after the value\n                        of their tag field (Pet + type: \"cat\" -> PetCat)\n                        instead of Pet1, Pet2\n  --keep-constrained-root-models-in-every-container, --no-keep-constrained-root-models-in-every-container\n                        Under --collapse-root-models with --field-constraints,\n                        keep a root model whose root field has constraints\n                        named inside any container of its holder, a set,\n                        frozen set, Sequence or Mapping as well as a list,\n                        dict or union, as `Field()` could not carry them\n                        there; without it such a root model is inlined into\n                        those containers and its constraints are lost, as in\n                        0.89.0\n  --keep-enum-literal-aliases, --no-keep-enum-literal-aliases\n                        Under --collapse-root-models, keep a named enum that\n                        the output writes as a `Literal` type alias named at\n                        its uses (`Status = Literal['open', 'resolved']`, `a:\n                        Status`); without it every use repeats the `Literal`,\n                        as in 0.89.0\n  --keep-model-order    Keep generated models' order\n  --keyword-only        Defined models as keyword only (for example\n                        dataclass(kw_only=True)).\n  --model-name-map MODEL_NAME_MAP\n                        Rename generated model classes by schema ref or\n                        current generated class name using a JSON object or\n                        JSON file.\n  --module-split-mode {single}\n                        Split generated models into separate files. 'single':\n                        generate one file per model class.\n  --name-allof-union-members-after-branches, --no-name-allof-union-members-after-branches\n                        Name the classes an allOf gives the branches of a\n                        oneOf or anyOf it holds after the branch: the holder\n                        and the branch's tag (with --infer-union-variant-names\n                        or --use-tag-as-union-variant-name), its $ref class or\n                        its position (EventCreated, or Event1), the branch-\n                        only base after the class (EventCreatedBase) and the\n                        shared part after the holder (EventBase); without it\n                        every class is numbered after the holder (Event1 to\n                        Event5), as in 0.89.0\n  --name-converted-payloads-by-message, --no-name-converted-payloads-by-message\n                        AsyncAPI only: name a payload that an Avro or XML\n                        Schema converter gives no name of its own, such as an\n                        Avro string or array, after its message, as a JSON\n                        Schema payload is, and drop the placeholder title\n                        Model the converter gives it (Field(...,\n                        title='Model'), and the class Model under --use-title-\n                        as-name); without it the placeholder stays, as in\n                        0.88.0\n  --naming-strategy {numbered,parent-prefixed,full-path,primary-first,definitions-first,enclosing-model}\n                        Strategy for naming models and telling duplicate model\n                        names apart. 'numbered' (default): Append numeric\n                        suffix (Address, Address1, Address2). Simple but names\n                        don't indicate context. 'parent-prefixed': Prefix\n                        every nested model with the name of the model that\n                        holds it, joined in CamelCase, nested parents included\n                        (CompanyAddress, CompanyEmployeeHomeAddress), also\n                        where the name is unique; the model names are the same\n                        as with 'full-path'. 'full-path': Prefix every nested\n                        model with the names of the models that hold it,\n                        joined in CamelCase (CompanyAddress,\n                        CompanyEmployeeHomeAddress). 'primary-first': Keep\n                        clean names for primary definitions (in /definitions/\n                        or /components/schemas/), only add suffix to\n                        inline/nested duplicates. 'definitions-first': Give\n                        every definition (in /definitions/, /$defs/ or\n                        /components/schemas/ of any document) its own name\n                        before an inline model, a variant or another\n                        definition that asked for it first, which takes the\n                        name the definition would have taken (Package1);\n                        unlike 'primary-first', which renames only models of\n                        other files, as in 0.89.0. 'enclosing-model': Prefix\n                        every nested model with the final name of the model it\n                        is built for, once (IssueClosedIssue for the allOf\n                        property issue of IssueClosed, StreamEvent1 for the\n                        first unnamed branch of the union StreamEvent, PetCat\n                        for its branch tagged cat); a definition keeps its own\n                        name (Customer, not ModelCustomer); unlike 'full-\n                        path', which prefixes with the closest model\n                        registered above, as in 0.89.0.\n  --order-constructor-fields-by {final-names,written-defaults} [{final-names,written-defaults} ...]\n                        Decide the order of constructor fields by each given\n                        value. final-names: order the constructor fields of\n                        dataclass and msgspec.Struct models after every field\n                        has its final name, so a field that overrides an\n                        inherited field renamed in another module is matched\n                        to it and keeps its place; without it the override\n                        reads as a new field after the inherited default and\n                        is written keyword-only (kw_only=True). written-\n                        defaults: order the fields of msgspec.Struct and\n                        Pydantic dataclass models by the defaults they write,\n                        so under --strip-default-none an optional field whose\n                        None default is stripped but still written (UNSET, or\n                        None for a type that admits None) goes after the\n                        required fields of a Struct with the other optional\n                        fields and stays positional after an inherited\n                        default, and a required pydantic.dataclass field\n                        redeclaring it is written Field(...) (a msgspec.Struct\n                        writes a bare annotation); without it the field keeps\n                        its place among the fields without a default, as\n                        before: it is keyword-only after an inherited default,\n                        a redeclaring field inherits its None default, and the\n                        fields are reordered only where a required field would\n                        then follow a default.\n  --output-date-class {date,PastDate,FutureDate}\n                        Choose Date class between PastDate, FutureDate or\n                        date. (Pydantic v2 only) Each output model has its\n                        default mapping.\n  --output-datetime-class {datetime,AwareDatetime,NaiveDatetime,PastDatetime,FutureDatetime}\n                        Choose Datetime class between AwareDatetime,\n                        NaiveDatetime, PastDatetime, FutureDatetime or\n                        datetime. Each output model has its default mapping\n                        (for example pydantic: datetime, dataclass: str, ...)\n  --parent-scoped-naming\n                        Deprecated: --parent-scoped-naming is deprecated. Use\n                        --naming-strategy parent-prefixed instead.\n  --pin-aliases-with-alias-generator, --no-pin-aliases-with-alias-generator\n                        pydantic_v2.BaseModel and pydantic_v2.dataclass\n                        output: decide a field's alias by the alias generator\n                        its model applies, the one in its config or in the\n                        config it inherits. For a dataclass and a --target-\n                        pydantic-version older than 2.8, whose alias\n                        generators can differ from the generated aliases,\n                        write the generated alias on every field of a\n                        dataclass whose config names an alias generator.\n                        Without it a field keeps the alias it has without the\n                        generator, which the config then replaces.\n  --rename-submodules-hidden-by-classes, --no-rename-submodules-hidden-by-classes\n                        Rename a submodule named like a class of its package,\n                        such as pkg/Warn.py beside the class Warn of\n                        pkg/__init__.py, to the first free name with trailing\n                        underscores (pkg/Warn_.py), with the modules below it;\n                        the class keeps its name. Without it importing the\n                        submodule replaces the class in its package, so the\n                        models that use either fail to decode\n  --reuse-model, --no-reuse-model\n                        Reuse models on the field when a module has the model\n                        with the same content\n  --reuse-scope {module,tree}\n                        Scope for model reuse deduplication: module (per-file,\n                        default) or tree (cross-file with shared module). Only\n                        effective when --reuse-model is set.\n  --shared-module-name SHARED_MODULE_NAME\n                        Name of the shared module for --reuse-scope=tree\n                        (default: \"shared\"). Use this option if your schema\n                        has a file named \"shared\".\n  --singularize-last-word-of-item-names, --no-singularize-last-word-of-item-names\n                        Name the item model of an array by singularizing only\n                        the last word of its name (actions_caches gives\n                        ActionsCache, payment_status gives PaymentStatusItem);\n                        without it the whole name is singularized as one word\n                        (ActionsCach, PaymentStatu), as in 0.88.0\n  --skip-root-model     Skip generating the model for the root schema element\n  --strict-dotted-module-names, --no-strict-dotted-module-names\n                        Only infer dotted schema names as module paths when\n                        every segment is a canonical Python identifier. This\n                        applies only to automatic inference and does not\n                        override --treat-dot-as-module or --no-treat-dot-as-\n                        module.\n  --tag-msgspec-by-payload-name, --no-tag-msgspec-by-payload-name\n                        msgspec.Struct output only: tag the structs of a\n                        discriminated union with the property name the\n                        document carries (for example 'pet-kind') instead of\n                        the Python name that property resolves to (pet_kind),\n                        which msgspec looks for in the payload. --use-msgspec-\n                        tagged-unions already tags by the document's property\n                        name. Without either option the Python name is kept.\n  --target-pydantic-version {2,2.11,2.12,2.14}\n                        Oldest Pydantic version the generated code must\n                        support. Unset: the newest supported feature forms,\n                        with populate_by_name config like '2' and the\n                        experimental MISSING import like '2.12'. '2': Pydantic\n                        2.0.3+ compatible (uses populate_by_name; patterns\n                        that need Python's regex engine need 2.5+). '2.11':\n                        Pydantic 2.11+ (uses validate_by_name). '2.12':\n                        Pydantic 2.12+ (supports MISSING sentinel). '2.14':\n                        Pydantic 2.14+ (imports MISSING from pydantic; bytes\n                        patterns can select Python's regex engine;\n                        pydantic_v2.dataclass writes required Field(...)\n                        fields before the fields with defaults of the same\n                        class; a number schema keeps multipleOf on a\n                        timedelta). Constructs without an older form are\n                        written for every target, with a warning naming the\n                        Pydantic they need.\n  --target-python-version {3.10,3.11,3.12,3.13,3.14,3.15}\n                        target python version\n  --treat-dot-as-module, --no-treat-dot-as-module\n                        Treat dotted schema names as module paths, creating\n                        nested directory structures (e.g., 'foo.bar.Model'\n                        becomes 'foo/bar.py'). Use --no-treat-dot-as-module to\n                        keep dots in names as underscores for single-file\n                        output.\n  --use-duplicate-name-suffix-for-every-collision, --no-use-duplicate-name-suffix-for-every-collision\n                        Give the --duplicate-name-suffix suffix also to a\n                        model renamed because its name is taken in its module,\n                        by another model or by a name the module imports (an\n                        inline Item beside a definition Item, a definition\n                        AnyUrl beside a uri field); without it such a model\n                        takes the suffix Model, as in 0.88.0\n  --use-exact-imports   import exact types instead of modules, for example:\n                        \"from .foo import Bar\" instead of \"from . import foo\"\n                        with \"foo.Bar\"\n  --use-generic-base-class\n                        Generate a shared base class with model configuration\n                        (e.g., extra='forbid') instead of repeating the\n                        configuration in each model. Keeps code DRY.\n  --use-msgspec-meta-for-map-keys, --no-use-msgspec-meta-for-map-keys\n                        msgspec.Struct output only: write the keys of a map\n                        whose keys propertyNames or patternProperties\n                        constrain by pattern, minLength or maxLength as\n                        Annotated[str, Meta(...)], so msgspec checks them as\n                        Pydantic output does; without it the keys are str and\n                        every key is accepted, as in 0.88.0\n  --use-msgspec-nullable-enum-alias\n                        msgspec.Struct output only: write an enum that lists\n                        null as an Enum without the None member plus an Enum |\n                        None type alias, so that msgspec can decode it.\n                        Without it a plain Enum keeps the 0.83.0 None member,\n                        which msgspec cannot decode; an IntEnum or --use-\n                        subclass-enum enum, which cannot hold it, is written\n                        without it and, as its one type rejects null, without\n                        the alias.\n  --use-msgspec-tagged-unions\n                        msgspec.Struct output only: write a discriminated\n                        union as msgspec tagged structs as a whole. Every\n                        variant is tagged with the document's property name\n                        and its value, or none is and a warning says why.\n                        Without it the 0.83.0 form is kept, which tags only a\n                        variant whose discriminator is a single literal and\n                        keeps the other discriminators as Literal fields.\n  --use-pendulum        use pendulum instead of datetime\n  --use-root-model-sequence-interface\n                        Make non-null sequence-like Pydantic v2 RootModel\n                        classes implement collections.abc.Sequence by adding\n                        Sequence[T] inheritance and root-delegating __iter__,\n                        __getitem__, and __len__ methods\n  --use-schema-description, --no-use-schema-description\n                        Use schema description to populate class docstring\n  --use-standard-primitive-types, --no-use-standard-primitive-types\n                        Use Python standard library types for string formats\n                        (UUID, IPv4Address, etc.) instead of str. Affects\n                        dataclass, msgspec, TypedDict output. Pydantic already\n                        uses these types by default.\n  --use-tag-as-union-variant-name\n                        Name inline oneOf/anyOf branch models after their tag:\n                        what --infer-union-variant-names does, skipping tags\n                        whose class names collide, plus single-branch unions\n                        (type: \"exec\" -> LocalShellActionExec) and single-key\n                        branches ({\"granular\": ...} -> AskForApprovalGranular)\n  --use-title-as-name, --no-use-title-as-name\n                        use titles as class names of models\n\nTemplate customization:\n  --aliases ALIASES     Alias mapping as inline JSON or a JSON file path for\n                        renaming fields. Format: {'<schema_field>':\n                        '<python_name>'} - the schema field name becomes the\n                        Pydantic alias. Supports hierarchical formats: Flat:\n                        {'id': 'id_'} applies to all occurrences. Scoped:\n                        {'User.name': 'user_name'} applies to specific class.\n                        Priority: scoped > flat. Multiple aliases (Pydantic v2\n                        only): {'field': ['alt1', 'alt2']} uses AliasChoices\n                        for validation. Example: {'User.name': 'user_name',\n                        'id': 'id_'} generates `id_: ... = Field(alias='id')`.\n  --check-pattern-maps-strictly, --no-check-pattern-maps-strictly\n                        Under --generate-schema-validators, count every key\n                        that a pattern of patternProperties admits, check\n                        declared keys against the patterns that match them,\n                        and keep the propertyNames keys and the other types of\n                        a type array of an object without properties\n  --custom-file-header CUSTOM_FILE_HEADER\n                        Custom file header\n  --custom-file-header-mode {replace,prepend}\n                        How to combine a custom file header with the generated\n                        header (default: replace)\n  --custom-file-header-path CUSTOM_FILE_HEADER_PATH\n                        Custom file header file path\n  --custom-formatters-kwargs CUSTOM_FORMATTERS_KWARGS\n                        Custom formatter kwargs as inline JSON or a JSON file\n                        path.\n  --custom-template-dir CUSTOM_TEMPLATE_DIR\n                        Custom template directory\n  --default-values DEFAULT_VALUES\n                        Default value overrides as inline JSON or a JSON file\n                        path. Supports hierarchical formats: Flat: {'field':\n                        value} applies to all occurrences. Scoped:\n                        {'ClassName.field': value} applies to specific class.\n                        Priority: scoped > flat. Note: Scoped keys use the\n                        generated class name for JSON Schema/OpenAPI. Required\n                        fields remain required unless --use-default is also\n                        specified. Example: {'User.status': 'active', 'page':\n                        1, 'limit': 10}\n  --deserialize-default-values {decimal,enum} [{decimal,enum} ...]\n                        Deserialize serialized schema defaults for selected\n                        generated types. Supported values: decimal, enum.\n  --encoding ENCODING   The encoding of input and output (default: utf-8)\n  --extra-template-data EXTRA_TEMPLATE_DATA\n                        Extra template data for output models as inline JSON\n                        or a JSON file path. For OpenAPI and Jsonschema the\n                        keys are the spec path of the object, or the name of\n                        the object if you want to apply the template data to\n                        multiple objects with the same name. If you are using\n                        another input file type (e.g. GraphQL), the key is the\n                        name of the object. The value is a dictionary of the\n                        template data to add.\n  --generate-schema-validators\n                        Generate Pydantic v2 model validators for JSON Schema\n                        rules that cannot be represented as type hints\n                        (experimental).\n  --no-deserialize-default-values\n                        Disable schema default value deserialization.\n  --schema-validator-base-class-name SCHEMA_VALIDATOR_BASE_CLASS_NAME\n                        Set the generated shared Pydantic v2 schema runtime\n                        validator base class name.\n  --schema-validator-type {pydantic-v2}\n                        Select the schema-derived runtime validator backend.\n                        'pydantic-v2' generates Pydantic v2 model validators\n                        (experimental).\n  --use-double-quotes   Model generated with double quotes. Single quotes or\n                        your black config skip_string_normalization value will\n                        be used without this option.\n  --use-type-checking-imports, --no-use-type-checking-imports\n                        Allow Ruff to move typing-only imports into\n                        TYPE_CHECKING blocks. By default this stays enabled,\n                        except for multi-module Ruff formatting of modular\n                        Pydantic output where referenced models stay imported\n                        at runtime. Use --no-use-type-checking-imports to\n                        force runtime imports.\n  --validators VALIDATORS\n                        Validators configuration as inline JSON or a JSON file\n                        path. Defines field validators for Pydantic v2 models.\n                        Keys are model names, values contain validator\n                        definitions with field, function, and mode.\n  --wrap-string-literal\n                        Wrap string literal by using black `experimental-\n                        string-processing` option (require black 20.8b0 or\n                        later)\n\nOpenAPI-only options:\n  --dedupe-request-response-variants, --no-dedupe-request-response-variants\n                        Decide Request/Response variants from the schema graph\n                        and build each inline model once, without the\n                        unreferenced duplicate classes and shifted class\n                        numbers of 0.86.0\n  --include-path-parameters\n                        Include path parameters in generated parameter models\n                        in addition to query parameters (Only OpenAPI)\n  --keep-first-character-of-path-keys, --no-keep-first-character-of-path-keys\n                        Strip only a leading slash from a paths key when\n                        naming its operation models, as webhook names are, so\n                        the key pets gives PetsGetResponse; without it the\n                        first character is dropped whatever it is\n                        (EtsGetResponse), as in 0.88.0\n  --openapi-as-definitions {paths-bodies,ref-components} [{paths-bodies,ref-components} ...]\n                        Give each given kind of OpenAPI schema the model a\n                        definitions entry of the same schema gets. paths-\n                        bodies: the request and response bodies of the paths\n                        and webhooks scopes, so an object body with a type\n                        array such as [object, null], or with map keywords and\n                        no type, becomes a model instead of an inline type,\n                        and an object body with patternProperties or\n                        propertyNames becomes the root model of a map. ref-\n                        components: a component written as a $ref to a\n                        recursive schema with sibling keywords, which gets the\n                        root model; without it such a component gets no model,\n                        and a reference to it is typed by the schema its $ref\n                        names\n  --openapi-include-info-version\n                        Emit OpenAPI info.version as OPENAPI_INFO_VERSION in\n                        generated models\n  --openapi-include-paths PATTERN [PATTERN ...]\n                        Include only OpenAPI paths matching fnmatch patterns.\n                        Use wildcards: '*' matches any chars, '?' matches\n                        single char. Example: '/users/*' '/products'. Requires\n                        '--openapi-scopes' to include 'paths'.\n  --openapi-scopes {schemas,paths,tags,parameters,webhooks,requestbodies,api} [{schemas,paths,tags,parameters,webhooks,requestbodies,api} ...]\n                        Scopes of OpenAPI model generation (default: schemas)\n  --read-only-write-only-model-type {request-response,all}\n                        Model generation for readOnly/writeOnly fields:\n                        'request-response' = Request/Response models only (no\n                        base model), 'all' = Base + Request + Response models.\n  --use-operation-id-as-name\n                        use operation id of OpenAPI as class names of models\n  --use-status-code-in-response-name\n                        Include HTTP status code in response model names\n                        (e.g., ResourceGetResponse200,\n                        ResourceGetResponseDefault)\n  --validation          Deprecated: The `--validation` option is deprecated\n                        and will be removed in a future release. Use --field-\n                        constraints instead.\n\nGraphQL-only options:\n  --graphql-no-typename\n                        Exclude __typename field from generated GraphQL\n                        models. Useful when using generated models for GraphQL\n                        mutations.\n\nGeneral options:\n  --all-jobs            Run every named job from pyproject.toml in declaration\n                        order (experimental).\n  --check               Verify generated files are up-to-date without\n                        modifying them. Exits with code 1 if differences\n                        found, 0 if up-to-date. Useful for CI to ensure\n                        generated code is committed.\n  --debug               show debug message (require \"debug\". `pip install\n                        'datamodel-code-generator[debug]'`)\n  --diff-against BASELINE_INPUT\n                        Generate BASELINE_INPUT and the current --input into\n                        temporary outputs, then show the generated-code diff\n                        from baseline to current. Requires --input and\n                        --output; --output is a virtual output path that\n                        selects file or directory layout and is never\n                        modified. Exits with code 1 when generated outputs\n                        differ.\n  --disable-warnings    disable warnings\n  --fail-on-multi-module-stdout\n                        Return an error instead of concatenating multiple\n                        generated modules in text stdout. This does not affect\n                        single-module, JSON, or file output.\n  --generate-cli-command\n                        Generate CLI command from pyproject.toml configuration\n                        and exit\n  --generate-prompt [QUESTION]\n                        Generate a prompt for consulting LLMs about CLI\n                        options. Optionally provide your question as an\n                        argument. Pipe to CLI tools (e.g., `| claude -p`, `|\n                        codex exec`) or copy to clipboard (e.g., `| pbcopy`,\n                        `| xclip`) for web LLM chats.\n  --generate-pyproject-config\n                        Generate pyproject.toml configuration from the\n                        provided CLI arguments and exit\n  --ignore-pyproject    Ignore pyproject.toml configuration\n  --install-skill {codex,claude-code}\n                        Install the bundled datamodel-code-generator Agent\n                        Skill and exit (experimental). Use --skill-scope to\n                        select a project or personal installation.\n  --job NAME            Run a named job from pyproject.toml [tool.datamodel-\n                        codegen.jobs.<name>] (experimental). Can be repeated.\n  --list-deprecations [{table,json,markdown}]\n                        List registered deprecations and scheduled breaking\n                        changes, then exit.\n  --list-experimental [{table,json,markdown}]\n                        List registered experimental features and their\n                        compatibility notes, then exit.\n  --no-color            disable colorized output\n  --output-format {text,json}\n                        Format for command output (default: text). Use json\n                        for structured output when supported.\n  --output-format-json-schema {config,generate-prompt,generation,model-metadata,recommend-options,structured-output}\n                        Output JSON Schema for the selected JSON output or\n                        JSON configuration format and exit.\n  --overwrite-skill     Replace an existing regular skill directory when used\n                        with --install-skill.\n  --profile PROFILE     Use a named profile from pyproject.toml\n                        [tool.datamodel-codegen.profiles.<name>]\n  --recommend-options   Analyse the input schema and print the options to add\n                        on top of the latest dated preset, with the reasons,\n                        as a command and a pyproject.toml block, then exit\n                        (experimental). Schemas of up to 3000 estimated models\n                        are also compared by generating the candidate\n                        configurations in memory. With --generate-prompt, the\n                        prompt includes the recommendation instead.\n  --skill-scope {project,user}\n                        Installation scope for --install-skill (default:\n                        project). Project installs use .agents/skills or\n                        .claude/skills; user installs use the matching home\n                        directory.\n  --version             show version\n  --watch               Watch input file(s) for changes and regenerate output\n                        automatically\n  --watch-delay WATCH_DELAY\n                        Debounce delay in seconds for watch mode (default:\n                        0.5)\n  -h, --help            show this help message and exit\n\nTarget generation options (experimental):\n  --client-body-arguments {body,both}\n                        Take request bodies as one body argument (default) or\n                        also as field arguments (experimental).\n  --client-default-base-url CLIENT_DEFAULT_BASE_URL\n                        Server URL of the operations that declare no servers\n                        (experimental).\n  --client-model-package CLIENT_MODEL_PACKAGE\n                        Import path of the models that --output generates\n                        (experimental).\n  --client-operations CLIENT_OPERATIONS\n                        Settings per operation reference, such as\n                        /paths/~1pets/get, as inline JSON or a JSON file path;\n                        their body_arguments overrides --client-body-arguments\n                        (experimental).\n  --client-output CLIENT_OUTPUT\n                        Directory of the generated client package\n                        (experimental).\n  --client-package CLIENT_PACKAGE\n                        Import path of the generated client package\n                        (experimental).\n  --client-protocols CLIENT_PROTOCOLS\n                        Pagination, polling, stream, WebSocket, cache, upload,\n                        and webhook helpers by name, as inline JSON or a JSON\n                        file path (experimental).\n  --client-resource-names CLIENT_RESOURCE_NAMES\n                        Resource namespaces keyed by tag, such as {\"pets\":\n                        \"store.pets\"}, as inline JSON or a JSON file path\n                        (experimental).\n  --client-server-base-url CLIENT_SERVER_BASE_URL\n                        Base URL that relative server URLs of the document\n                        resolve against (experimental).\n  --client-signature-style {explicit,unpack}\n                        Declare operation arguments as keywords (default) or\n                        as one Unpack[TypedDict] (experimental).\n  --generate-client {httpx2}\n                        Generate an HTTPX2 client package for the models; the\n                        --client-* options configure it (experimental).\n  --generate-server {fastapi}\n                        Generate a FastAPI server package for the models; the\n                        --server-* options configure it (experimental).\n  --server-body-mode {typed,request}\n                        Pass request bodies as validated models (default) or\n                        as the raw Request (experimental).\n  --server-body-modes SERVER_BODY_MODES\n                        Per-operation body modes as inline JSON or a JSON file\n                        path, keyed by operation reference; overrides\n                        --server-body-mode for matched operations\n                        (experimental).\n  --server-handler-mode {sync,async}\n                        Make service methods plain functions (default) or\n                        coroutine functions (experimental).\n  --server-handler-modes SERVER_HANDLER_MODES\n                        Per-operation handler modes as inline JSON or a JSON\n                        file path, keyed by operation reference such as\n                        /paths/~1pets/get; overrides --server-handler-mode for\n                        matched operations (experimental).\n  --server-include-request, --no-server-include-request\n                        Pass the Starlette Request to every service method\n                        (experimental).\n  --server-layout {routers,single}\n                        Write one router module per tag (default) or a single\n                        routes module (experimental).\n  --server-model-package SERVER_MODEL_PACKAGE\n                        Import path of the models that --output generates\n                        (experimental).\n  --server-operation-names SERVER_OPERATION_NAMES\n                        Service method names per operation reference as inline\n                        JSON or a JSON file path (experimental).\n  --server-output SERVER_OUTPUT\n                        Directory of the generated server package\n                        (experimental).\n  --server-package SERVER_PACKAGE\n                        Import path of the generated server package\n                        (experimental).\n  --server-parameter-names SERVER_PARAMETER_NAMES\n                        Argument names per operation reference, each keyed by\n                        location and name such as query:limit, as inline JSON\n                        or a JSON file path (experimental).\n  --server-primary-responses SERVER_PRIMARY_RESPONSES\n                        The declared response a bare return value takes, per\n                        operation, as inline JSON or a JSON file path: an\n                        object with \"status_code\" and an optional \"media_type\"\n                        for each operation reference (experimental).\n  --server-router-names SERVER_ROUTER_NAMES\n                        Router group names keyed by group key, such as\n                        tag:pets, as inline JSON or a JSON file path\n                        (experimental).\n\nDocumentation: https://datamodel-code-generator.koxudaxi.dev\nAgent skill: https://datamodel-code-generator.koxudaxi.dev/coding-agent-skill/\nOption recommendations: datamodel-codegen --input SCHEMA --recommend-options (experimental)\nGitHub: https://github.com/datamodel-code-generator/datamodel-code-generator\n",
  "kind": "prompt",
  "options": [
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Write a separate JSON map from generated models and fields to the JSON Pointer locations of their source schemas; module and class name identify a model.",
      "dest": "emit_model_metadata",
      "flags": [
        "--emit-model-metadata"
      ],
      "metavar": null,
      "name": "--emit-model-metadata",
      "nargs": null,
      "required": false,
      "type": "Path"
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "The encoding of input and output (default: utf-8)",
      "dest": "encoding",
      "flags": [
        "--encoding"
      ],
      "metavar": null,
      "name": "--encoding",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Map external $ref file paths to Python import packages instead of generating duplicate classes. Accepts one or more mappings after a single flag. Format: \"path/to/schema.yaml=mypackage.models\". When a $ref points to a mapped file, an import statement is generated instead of a class definition.",
      "dest": "external_ref_mapping",
      "flags": [
        "--external-ref-mapping"
      ],
      "metavar": "FILE_PATH=PYTHON_PACKAGE",
      "name": "--external-ref-mapping",
      "nargs": "+",
      "required": false,
      "type": "_external_ref_mapping"
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": [
        "auto",
        "httpx",
        "httpx2"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Select the HTTP client backend. 'auto' (default) selects stable HTTPX when its client module is installed and only selects experimental HTTPX2 when that module is absent. 'httpx' and 'httpx2' require that exact backend. Explicit selections and paired dependency errors do not fall back.",
      "dest": "http_backend",
      "flags": [
        "--http-backend"
      ],
      "metavar": null,
      "name": "--http-backend",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), as those versions specify: a $ref with a sibling format: binary takes the referenced type instead of bytes, a sibling uniqueItems makes no set, and a sibling description or default is left out too. Versions that apply the keywords beside a $ref (2019-09 and later, OpenAPI 3.1 and later, AsyncAPI 3) read them as before. Without it the keywords beside such a $ref overlay its target, as in 0.88.0. The version is the one --read-schema-version-per-document reads, else that of the document parsed.",
      "dest": "ignore_ref_siblings_by_schema_version",
      "flags": [
        "--ignore-ref-siblings-by-schema-version",
        "--no-ignore-ref-siblings-by-schema-version"
      ],
      "metavar": null,
      "name": "--ignore-ref-siblings-by-schema-version",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Input file/directory (default: stdin)",
      "dest": "input",
      "flags": [
        "--input"
      ],
      "metavar": null,
      "name": "--input",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": [
        "auto",
        "openapi",
        "asyncapi",
        "jsonschema",
        "mcp-tools",
        "xmlschema",
        "protobuf",
        "avro",
        "json",
        "yaml",
        "dict",
        "csv",
        "graphql"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Input file type (default: auto). Use 'jsonschema', 'openapi', 'asyncapi', 'graphql', 'mcp-tools', 'xmlschema', 'protobuf', or 'avro' for schema definitions. Use 'json', 'yaml', or 'csv' for raw sample data to infer a schema automatically.",
      "dest": "input_file_type",
      "flags": [
        "--input-file-type"
      ],
      "metavar": null,
      "name": "--input-file-type",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "AppendAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Python import path or file path to a Pydantic v2 model or schema dict (e.g., 'mypackage.module:ClassName', './models.py:ClassName', or 'mypackage.schemas:SCHEMA_DICT'). Can be specified multiple times for related models with inheritance. For dict input, --input-file-type is required. Cannot be used with --input or --url.",
      "dest": "input_model",
      "flags": [
        "--input-model"
      ],
      "metavar": "MODULE_OR_PATH:NAME",
      "name": "--input-model",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": [
        "regenerate-all",
        "reuse-foreign",
        "reuse-all"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for referenced types in --input-model. 'regenerate-all': Regenerate all types. 'reuse-foreign': Reuse types from different families (Enum, etc.), regenerate same-family. 'reuse-all': Reuse all referenced types via import. If not specified, defaults to regenerate-all behavior.",
      "dest": "input_model_ref_strategy",
      "flags": [
        "--input-model-ref-strategy"
      ],
      "metavar": null,
      "name": "--input-model-ref-strategy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Output file (default: stdout)",
      "dest": "output",
      "flags": [
        "--output"
      ],
      "metavar": null,
      "name": "--output",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": [
        "standard-py310-20260619",
        "standard-py311-20260619",
        "standard-py312-20260619",
        "standard-py313-20260619",
        "standard-py314-20260619",
        "practical-py310-20260619",
        "practical-py311-20260619",
        "practical-py312-20260619",
        "practical-py313-20260619",
        "practical-py314-20260619",
        "standard-py310-20260826",
        "standard-py311-20260826",
        "standard-py312-20260826",
        "standard-py313-20260826",
        "standard-py314-20260826",
        "practical-py310-20260826",
        "practical-py311-20260826",
        "practical-py312-20260826",
        "practical-py313-20260826",
        "practical-py314-20260826",
        "standard-py310-20260909",
        "standard-py311-20260909",
        "standard-py312-20260909",
        "standard-py313-20260909",
        "standard-py314-20260909",
        "practical-py310-20260909",
        "practical-py311-20260909",
        "practical-py312-20260909",
        "practical-py313-20260909",
        "practical-py314-20260909",
        "standard-py310-20261015",
        "standard-py311-20261015",
        "standard-py312-20261015",
        "standard-py313-20261015",
        "standard-py314-20261015",
        "standard-py315-20261015",
        "practical-py310-20261015",
        "practical-py311-20261015",
        "practical-py312-20261015",
        "practical-py313-20261015",
        "practical-py314-20261015",
        "practical-py315-20261015",
        "standard-py310-20261017",
        "standard-py311-20261017",
        "standard-py312-20261017",
        "standard-py313-20261017",
        "standard-py314-20261017",
        "standard-py315-20261017",
        "practical-py310-20261017",
        "practical-py311-20261017",
        "practical-py312-20261017",
        "practical-py313-20261017",
        "practical-py314-20261017",
        "practical-py315-20261017",
        "standard-py310-20261027",
        "standard-py311-20261027",
        "standard-py312-20261027",
        "standard-py313-20261027",
        "standard-py314-20261027",
        "standard-py315-20261027",
        "practical-py310-20261027",
        "practical-py311-20261027",
        "practical-py312-20261027",
        "practical-py313-20261027",
        "practical-py314-20261027",
        "practical-py315-20261027",
        "standard-py310-20261104",
        "standard-py311-20261104",
        "standard-py312-20261104",
        "standard-py313-20261104",
        "standard-py314-20261104",
        "standard-py315-20261104",
        "practical-py310-20261104",
        "practical-py311-20261104",
        "practical-py312-20261104",
        "practical-py313-20261104",
        "practical-py314-20261104",
        "practical-py315-20261104"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Apply an immutable built-in option preset. Preset names include the target Python version so generated syntax is pinned.",
      "dest": "preset",
      "flags": [
        "--preset"
      ],
      "metavar": null,
      "name": "--preset",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind from the $dynamicAnchors its document declares, the first in document order when several declare the name, and a $ref or $dynamicRef to a plain name several schemas of a document declare to the first of them; without it the $dynamicRef takes the first anchor the parse has met, so the answer depends on the order of the schemas, and the $ref the last declaration, as in 0.89.0.",
      "dest": "read_dynamic_anchors_in_document_order",
      "flags": [
        "--read-dynamic-anchors-in-document-order",
        "--no-read-dynamic-anchors-in-document-order"
      ],
      "metavar": null,
      "name": "--read-dynamic-anchors-in-document-order",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, as JSON Pointer and URI fragments do, so #/$defs/a~1b, and #/$defs/Foo Bar written with its space percent-encoded, name the models of the definitions a/b and Foo Bar; without it such a reference gets a copy of its target named after the escaped text (A1b, Foo20Bar), as in 0.89.0.",
      "dest": "read_escaped_ref_pointers",
      "flags": [
        "--read-escaped-ref-pointers",
        "--no-read-escaped-ref-pointers"
      ],
      "metavar": null,
      "name": "--read-escaped-ref-pointers",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type (deque[int], frozenset[str], ...) like one without; without it an aliased field of a Pydantic dataclass takes the type its JSON Schema spells (list[int]), as in 0.89.0",
      "dest": "read_input_model_dataclass_fields_by_alias",
      "flags": [
        "--read-input-model-dataclass-fields-by-alias",
        "--no-read-input-model-dataclass-fields-by-alias"
      ],
      "metavar": null,
      "name": "--read-input-model-dataclass-fields-by-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read each document by the schema version it declares ($schema, or the openapi or asyncapi field); a referenced document that declares none takes the version of the document whose reference loads it. The keywords beside a $ref and the features of the version (const, prefixItems, $id, $defs) then apply as each document's version says: a 2020-12 file of a directory read after a draft-07 one keeps the maximum beside an allOf $ref, an OpenAPI 3.1 document reads $ref siblings as JSON Schema 2020-12 does, and a draft-07 document sets no property-count rule for a minProperties beside an allOf $ref. Without it the version of the document parsed first applies to every document, as in 0.88.0. An explicit --schema-version gives every document its version; the schema validators then read an OpenAPI or AsyncAPI document by it only with the option, else as draft 7.",
      "dest": "read_schema_version_per_document",
      "flags": [
        "--read-schema-version-per-document",
        "--no-read-schema-version-per-document"
      ],
      "metavar": null,
      "name": "--read-schema-version-per-document",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Schema version. Valid values depend on input type: JsonSchema: auto, draft-04, draft-06, draft-07, 2019-09, 2020-12. OpenAPI: auto, 3.0, 3.1, 3.2. AsyncAPI: auto, 2.0, 3.0. XMLSchema: auto, 1.0, 1.1. Protobuf: auto, proto2, proto3, 2023. (default: auto - detected from $schema, openapi/asyncapi field, XML Schema versioning attributes, or Protobuf syntax/edition)",
      "dest": "schema_version",
      "flags": [
        "--schema-version"
      ],
      "metavar": null,
      "name": "--schema-version",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": [
        "lenient",
        "strict"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Schema version validation mode. 'lenient': accept all features regardless of version (default). 'strict': warn on features outside declared/detected version.",
      "dest": "schema_version_mode",
      "flags": [
        "--schema-version-mode"
      ],
      "metavar": null,
      "name": "--schema-version-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Base Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Input file URL. `--input` is ignored when `--url` is used. For HTTP(S), datamodel-code-generator[http] remains the stable HTTPX backend and is not deprecated, while datamodel-code-generator[httpx2] is experimental. The default --http-backend auto policy selects stable HTTPX when its client module is installed and selects HTTPX2 only when that module is absent. Select --http-backend httpx2 to require the experimental backend. Explicit selections and paired dependency errors do not fall back.",
      "dest": "url",
      "flags": [
        "--url"
      ],
      "metavar": null,
      "name": "--url",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Alias mapping as inline JSON or a JSON file path for renaming fields. Format: {'<schema_field>': '<python_name>'} - the schema field name becomes the Pydantic alias. Supports hierarchical formats: Flat: {'id': 'id_'} applies to all occurrences. Scoped: {'User.name': 'user_name'} applies to specific class. Priority: scoped > flat. Multiple aliases (Pydantic v2 only): {'field': ['alt1', 'alt2']} uses AliasChoices for validation. Example: {'User.name': 'user_name', 'id': 'id_'} generates `id_: ... = Field(alias='id')`.",
      "dest": "aliases",
      "flags": [
        "--aliases"
      ],
      "metavar": null,
      "name": "--aliases",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Capitalize field names on enum",
      "dest": "capitalise_enum_members",
      "flags": [
        "--capitalise-enum-members",
        "--capitalize-enum-members"
      ],
      "metavar": null,
      "name": "--capitalize-enum-members",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --capitalise-enum-members, capitalize also the number a member takes when its capitalized name is taken (A_1 instead of a_1 for the members 'a' and 'A'); without it the numbered name stays as written, as in 0.88.0",
      "dest": "capitalise_numbered_enum_members",
      "flags": [
        "--capitalise-numbered-enum-members",
        "--no-capitalise-numbered-enum-members",
        "--capitalize-numbered-enum-members",
        "--no-capitalize-numbered-enum-members"
      ],
      "metavar": null,
      "name": "--capitalize-numbered-enum-members",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Default value overrides as inline JSON or a JSON file path. Supports hierarchical formats: Flat: {'field': value} applies to all occurrences. Scoped: {'ClassName.field': value} applies to specific class. Priority: scoped > flat. Note: Scoped keys use the generated class name for JSON Schema/OpenAPI. Required fields remain required unless --use-default is also specified. Example: {'User.status': 'active', 'page': 1, 'limit': 10}",
      "dest": "default_values",
      "flags": [
        "--default-values"
      ],
      "metavar": null,
      "name": "--default-values",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": [
        "decimal",
        "enum"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Deserialize serialized schema defaults for selected generated types. Supported values: decimal, enum.",
      "dest": "deserialize_default_values",
      "flags": [
        "--deserialize-default-values"
      ],
      "metavar": null,
      "name": "--deserialize-default-values",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set field name when enum value is empty (default:  `_`)",
      "dest": "empty_enum_field_name",
      "flags": [
        "--empty-enum-field-name"
      ],
      "metavar": null,
      "name": "--empty-enum-field-name",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": [
        "allow",
        "ignore",
        "forbid"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set the generated models to allow, forbid, or ignore extra fields.",
      "dest": "extra_fields",
      "flags": [
        "--extra-fields"
      ],
      "metavar": null,
      "name": "--extra-fields",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use field constraints and not con* annotations",
      "dest": "field_constraints",
      "flags": [
        "--field-constraints"
      ],
      "metavar": null,
      "name": "--field-constraints",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Add extra keys to field parameters",
      "dest": "field_extra_keys",
      "flags": [
        "--field-extra-keys"
      ],
      "metavar": null,
      "name": "--field-extra-keys",
      "nargs": "+",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Add extra keys with `x-` prefix to field parameters. The extra keys are stripped of the `x-` prefix.",
      "dest": "field_extra_keys_without_x_prefix",
      "flags": [
        "--field-extra-keys-without-x-prefix"
      ],
      "metavar": null,
      "name": "--field-extra-keys-without-x-prefix",
      "nargs": "+",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Add all keys to field parameters",
      "dest": "field_include_all_keys",
      "flags": [
        "--field-include-all-keys"
      ],
      "metavar": null,
      "name": "--field-include-all-keys",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": [
        "rename-field",
        "rename-type"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for handling field name and type name collisions (Pydantic v2 only). 'rename-field': rename field with suffix and add alias (default). 'rename-type': rename type class with suffix to preserve field name.",
      "dest": "field_type_collision_strategy",
      "flags": [
        "--field-type-collision-strategy"
      ],
      "metavar": null,
      "name": "--field-type-collision-strategy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Name inline oneOf/anyOf branch models after the value of their tag field (Pet + type: \"cat\" -> PetCat) instead of Pet1, Pet2",
      "dest": "infer_union_variant_names",
      "flags": [
        "--infer-union-variant-names"
      ],
      "metavar": null,
      "name": "--infer-union-variant-names",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Give a variant that several discriminated unions tag differently (for example one by a mapping key, one by the schema name) every tag they give it, so each union decodes the documents its discriminator selects; such a union also accepts the tags the other unions give the variant. A variant keeps the tag of the first union, as without the option (as in 0.88.0), where a union listing it would then give two of its variants one tag, and msgspec Structs, which take one tag, keep it too.",
      "dest": "merge_shared_variant_tags",
      "flags": [
        "--merge-shared-variant-tags",
        "--no-merge-shared-variant-tags"
      ],
      "metavar": null,
      "name": "--merge-shared-variant-tags",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Name the classes an allOf gives the branches of a oneOf or anyOf it holds after the branch: the holder and the branch's tag (with --infer-union-variant-names or --use-tag-as-union-variant-name), its $ref class or its position (EventCreated, or Event1), the branch-only base after the class (EventCreatedBase) and the shared part after the holder (EventBase); without it every class is numbered after the holder (Event1 to Event5), as in 0.89.0",
      "dest": "name_allof_union_members_after_branches",
      "flags": [
        "--name-allof-union-members-after-branches",
        "--no-name-allof-union-members-after-branches"
      ],
      "metavar": null,
      "name": "--name-allof-union-members-after-branches",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Do not add a field alias. E.g., if --snake-case-field is used along with a base class, which has an\n            alias_generator",
      "dest": "no_alias",
      "flags": [
        "--no-alias"
      ],
      "metavar": null,
      "name": "--no-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreConstAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable schema default value deserialization.",
      "dest": "deserialize_default_values",
      "flags": [
        "--no-deserialize-default-values"
      ],
      "metavar": null,
      "name": "--no-deserialize-default-values",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values",
      "dest": "omit_redundant_constraints",
      "flags": [
        "--omit-redundant-constraints",
        "--no-omit-redundant-constraints"
      ],
      "metavar": null,
      "name": "--omit-redundant-constraints",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set delimiter to convert to snake case. This option only can be used with --snake-case-field (default: `_` )",
      "dest": "original_field_name_delimiter",
      "flags": [
        "--original-field-name-delimiter"
      ],
      "metavar": null,
      "name": "--original-field-name-delimiter",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, as JSON Schema does, so a maxLength beside an array leaves the list unbounded and a maxItems beside a string leaves the string unbounded; without it a declared array writes minLength/maxLength and a declared string minItems/maxItems as their length bounds, as in 0.88.0",
      "dest": "read_length_keywords_by_type",
      "flags": [
        "--read-length-keywords-by-type",
        "--no-read-length-keywords-by-type"
      ],
      "metavar": null,
      "name": "--read-length-keywords-by-type",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "msgspec.Struct output only: decide whether the int member of a union with a number member drops its Meta bounds on the bounds the schema writes, exactly; without it a number member's bound past 2**53 is read as the float it is written as, so the int member can keep a bound that rejects an integer the number member accepts, as in 0.88.0",
      "dest": "read_msgspec_union_bounds_exactly",
      "flags": [
        "--read-msgspec-union-bounds-exactly",
        "--no-read-msgspec-union-bounds-exactly"
      ],
      "metavar": null,
      "name": "--read-msgspec-union-bounds-exactly",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Remove field name prefix if it has a special meaning e.g. underscores",
      "dest": "remove_special_field_name_prefix",
      "flags": [
        "--remove-special-field-name-prefix"
      ],
      "metavar": null,
      "name": "--remove-special-field-name-prefix",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Serialization alias mapping as inline JSON or a JSON file path for Pydantic v2. Format: {'<schema_field>': '<serialization_alias>'}. Supports hierarchical formats: Flat: {'name': 'fullName'} applies to all occurrences. Scoped: {'User.name': 'fullName'} applies to specific class.",
      "dest": "serialization_aliases",
      "flags": [
        "--serialization-aliases"
      ],
      "metavar": null,
      "name": "--serialization-aliases",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": true,
      "deprecated_message": "--set-default-enum-member is deprecated. Use --deserialize-default-values enum instead.",
      "description": "Deprecated: --set-default-enum-member is deprecated. Use --deserialize-default-values enum instead.",
      "dest": "set_default_enum_member",
      "flags": [
        "--set-default-enum-member"
      ],
      "metavar": null,
      "name": "--set-default-enum-member",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Change camel-case field name to snake-case",
      "dest": "snake_case_field",
      "flags": [
        "--snake-case-field",
        "--no-snake-case-field"
      ],
      "metavar": null,
      "name": "--snake-case-field",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set field name prefix when first character can't be used as Python field name (default:  `field`)",
      "dest": "special_field_name_prefix",
      "flags": [
        "--special-field-name-prefix"
      ],
      "metavar": null,
      "name": "--special-field-name-prefix",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set use_attribute_docstrings=True in Pydantic v2 ConfigDict",
      "dest": "use_attribute_docstrings",
      "flags": [
        "--use-attribute-docstrings"
      ],
      "metavar": null,
      "name": "--use-attribute-docstrings",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use enum member literals in discriminator fields instead of string literals",
      "dest": "use_enum_values_in_discriminator",
      "flags": [
        "--use-enum-values-in-discriminator"
      ],
      "metavar": null,
      "name": "--use-enum-values-in-discriminator",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use schema description to populate field docstring",
      "dest": "use_field_description",
      "flags": [
        "--use-field-description",
        "--no-use-field-description"
      ],
      "metavar": null,
      "name": "--use-field-description",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use schema example to populate field docstring",
      "dest": "use_field_description_example",
      "flags": [
        "--use-field-description-example",
        "--no-use-field-description-example"
      ],
      "metavar": null,
      "name": "--use-field-description-example",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use schema description to populate field docstring as inline docstring",
      "dest": "use_inline_field_description",
      "flags": [
        "--use-inline-field-description"
      ],
      "metavar": null,
      "name": "--use-inline-field-description",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, and parse such chains without nesting; without it each path that reaches the place gets a model of its own (N(N-1)/2 site models for a chain of N definitions), as in 0.89.0.",
      "dest": "use_one_model_per_ref_site",
      "flags": [
        "--use-one-model-per-ref-site",
        "--no-use-one-model-per-ref-site"
      ],
      "metavar": null,
      "name": "--use-one-model-per-ref-site",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use schema description to populate class docstring",
      "dest": "use_schema_description",
      "flags": [
        "--use-schema-description",
        "--no-use-schema-description"
      ],
      "metavar": null,
      "name": "--use-schema-description",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use serialization_alias instead of alias for field aliasing (Pydantic v2 only). This allows setting values using the Pythonic field name while serializing to the original name.",
      "dest": "use_serialization_alias",
      "flags": [
        "--use-serialization-alias"
      ],
      "metavar": null,
      "name": "--use-serialization-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use single-line docstrings when the content fits on one line",
      "dest": "use_single_line_docstring",
      "flags": [
        "--use-single-line-docstring",
        "--no-use-single-line-docstring"
      ],
      "metavar": null,
      "name": "--use-single-line-docstring",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out",
      "dest": "use_site_models_for_constrained_refs",
      "flags": [
        "--use-site-models-for-constrained-refs",
        "--no-use-site-models-for-constrained-refs"
      ],
      "metavar": null,
      "name": "--use-site-models-for-constrained-refs",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Name inline oneOf/anyOf branch models after their tag: what --infer-union-variant-names does, skipping tags whose class names collide, plus single-branch unions (type: \"exec\" -> LocalShellActionExec) and single-key branches ({\"granular\": ...} -> AskForApprovalGranular)",
      "dest": "use_tag_as_union_variant_name",
      "flags": [
        "--use-tag-as-union-variant-name"
      ],
      "metavar": null,
      "name": "--use-tag-as-union-variant-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "use titles as class names of models",
      "dest": "use_title_as_name",
      "flags": [
        "--use-title-as-name",
        "--no-use-title-as-name"
      ],
      "metavar": null,
      "name": "--use-title-as-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "error",
        "minimal-prefix",
        "full-prefix"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for name collisions when using --all-exports-scope=recursive. 'error': raise an error (default). 'minimal-prefix': add module prefix only to colliding names. 'full-prefix': add full module path prefix to colliding names.",
      "dest": "all_exports_collision_strategy",
      "flags": [
        "--all-exports-collision-strategy"
      ],
      "metavar": null,
      "name": "--all-exports-collision-strategy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "children",
        "recursive"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate __all__ in __init__.py with re-exports. 'children': export from direct child modules only. 'recursive': export from all descendant modules.",
      "dest": "all_exports_scope",
      "flags": [
        "--all-exports-scope"
      ],
      "metavar": null,
      "name": "--all-exports-scope",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Run every named job from pyproject.toml in declaration order (experimental).",
      "dest": "all_jobs",
      "flags": [
        "--all-jobs"
      ],
      "metavar": null,
      "name": "--all-jobs",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Allow HTTP(S) schema requests to private, loopback, link-local, or otherwise non-public network hosts. By default these targets are blocked to reduce server-side request forgery (SSRF) risk. If a trusted internal schema endpoint is blocked, verify the URL and pass this option; otherwise use a local schema file or public endpoint. Pass --no-allow-private-network to override a configuration file that enables it.",
      "dest": "allow_private_network",
      "flags": [
        "--allow-private-network",
        "--no-allow-private-network"
      ],
      "metavar": null,
      "name": "--allow-private-network",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Allow fetching remote $ref references over HTTP/HTTPS. Currently remote fetching is allowed by default but emits a deprecation warning. Pass --allow-remote-refs to opt in without warning, or --no-allow-remote-refs to block remote fetching. In a future version, remote fetching will be disabled by default.",
      "dest": "allow_remote_refs",
      "flags": [
        "--allow-remote-refs",
        "--no-allow-remote-refs"
      ],
      "metavar": null,
      "name": "--allow-remote-refs",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Verify generated files are up-to-date without modifying them. Exits with code 1 if differences found, 0 if up-to-date. Useful for CI to ensure generated code is committed.",
      "dest": "check",
      "flags": [
        "--check"
      ],
      "metavar": null,
      "name": "--check",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "show debug message (require \"debug\". `pip install 'datamodel-code-generator[debug]'`)",
      "dest": "debug",
      "flags": [
        "--debug"
      ],
      "metavar": null,
      "name": "--debug",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate BASELINE_INPUT and the current --input into temporary outputs, then show the generated-code diff from baseline to current. Requires --input and --output; --output is a virtual output path that selects file or directory layout and is never modified. Exits with code 1 when generated outputs differ.",
      "dest": "diff_against",
      "flags": [
        "--diff-against"
      ],
      "metavar": "BASELINE_INPUT",
      "name": "--diff-against",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "disable warnings",
      "dest": "disable_warnings",
      "flags": [
        "--disable-warnings"
      ],
      "metavar": null,
      "name": "--disable-warnings",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Return an error instead of concatenating multiple generated modules in text stdout. This does not affect single-module, JSON, or file output.",
      "dest": "fail_on_multi_module_stdout",
      "flags": [
        "--fail-on-multi-module-stdout"
      ],
      "metavar": null,
      "name": "--fail-on-multi-module-stdout",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate CLI command from pyproject.toml configuration and exit",
      "dest": "generate_cli_command",
      "flags": [
        "--generate-cli-command"
      ],
      "metavar": null,
      "name": "--generate-cli-command",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate a prompt for consulting LLMs about CLI options. Optionally provide your question as an argument. Pipe to CLI tools (e.g., `| claude -p`, `| codex exec`) or copy to clipboard (e.g., `| pbcopy`, `| xclip`) for web LLM chats.",
      "dest": "generate_prompt",
      "flags": [
        "--generate-prompt"
      ],
      "metavar": "QUESTION",
      "name": "--generate-prompt",
      "nargs": "?",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate pyproject.toml configuration from the provided CLI arguments and exit",
      "dest": "generate_pyproject_config",
      "flags": [
        "--generate-pyproject-config"
      ],
      "metavar": null,
      "name": "--generate-pyproject-config",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "HelpAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "show this help message and exit",
      "dest": "help",
      "flags": [
        "-h",
        "--help"
      ],
      "metavar": null,
      "name": "--help",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set headers in HTTP requests to the remote host. (example: \"Authorization: Basic dXNlcjpwYXNz\")",
      "dest": "http_headers",
      "flags": [
        "--http-headers"
      ],
      "metavar": "HTTP_HEADER",
      "name": "--http-headers",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable verification of the remote host's TLS certificate",
      "dest": "http_ignore_tls",
      "flags": [
        "--http-ignore-tls"
      ],
      "metavar": null,
      "name": "--http-ignore-tls",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Resolve HTTP(S) JSON Schema $ref URLs from a local directory instead of fetching them. URLs are mapped under the directory by host and path; extensionless refs also try '.json'.",
      "dest": "http_local_ref_path",
      "flags": [
        "--http-local-ref-path"
      ],
      "metavar": null,
      "name": "--http-local-ref-path",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set query parameters in HTTP requests to the remote host. (example: \"ref=branch\")",
      "dest": "http_query_parameters",
      "flags": [
        "--http-query-parameters"
      ],
      "metavar": "HTTP_QUERY_PARAMETERS",
      "name": "--http-query-parameters",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Timeout in seconds for HTTP requests to remote hosts (default: 30)",
      "dest": "http_timeout",
      "flags": [
        "--http-timeout"
      ],
      "metavar": null,
      "name": "--http-timeout",
      "nargs": null,
      "required": false,
      "type": "float"
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": false,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Ignore pyproject.toml configuration",
      "dest": "ignore_pyproject",
      "flags": [
        "--ignore-pyproject"
      ],
      "metavar": null,
      "name": "--ignore-pyproject",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "codex",
        "claude-code"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Install the bundled datamodel-code-generator Agent Skill and exit (experimental). Use --skill-scope to select a project or personal installation.",
      "dest": "install_skill",
      "flags": [
        "--install-skill"
      ],
      "metavar": "{codex,claude-code}",
      "name": "--install-skill",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "AppendAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Run a named job from pyproject.toml [tool.datamodel-codegen.jobs.<name>] (experimental). Can be repeated.",
      "dest": "job",
      "flags": [
        "--job"
      ],
      "metavar": "NAME",
      "name": "--job",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "table",
        "json",
        "markdown"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "List registered deprecations and scheduled breaking changes, then exit.",
      "dest": "list_deprecations",
      "flags": [
        "--list-deprecations"
      ],
      "metavar": "{table,json,markdown}",
      "name": "--list-deprecations",
      "nargs": "?",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "table",
        "json",
        "markdown"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "List registered experimental features and their compatibility notes, then exit.",
      "dest": "list_experimental",
      "flags": [
        "--list-experimental"
      ],
      "metavar": "{table,json,markdown}",
      "name": "--list-experimental",
      "nargs": "?",
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Require an existing remote lock and validate each fetched resource against it (experimental).",
      "dest": "locked",
      "flags": [
        "--locked"
      ],
      "metavar": null,
      "name": "--locked",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Select the remote reference integrity lock file (experimental). An existing selected lock is verified automatically; a missing selected lock is ignored unless --locked is used. The default is datamodel-codegen.lock beside the discovered pyproject.toml, or in the invocation working directory when no project is found. Explicit relative paths resolve from the invocation working directory.",
      "dest": "lockfile",
      "flags": [
        "--lockfile"
      ],
      "metavar": null,
      "name": "--lockfile",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "single"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Split generated models into separate files. 'single': generate one file per model class.",
      "dest": "module_split_mode",
      "flags": [
        "--module-split-mode"
      ],
      "metavar": null,
      "name": "--module-split-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": false,
      "deprecated": false,
      "deprecated_message": null,
      "description": "disable colorized output",
      "dest": "no_color",
      "flags": [
        "--no-color"
      ],
      "metavar": null,
      "name": "--no-color",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "text",
        "json"
      ],
      "default": "text",
      "deprecated": false,
      "deprecated_message": null,
      "description": "Format for command output (default: text). Use json for structured output when supported.",
      "dest": "output_format",
      "flags": [
        "--output-format"
      ],
      "metavar": null,
      "name": "--output-format",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "config",
        "generate-prompt",
        "generation",
        "model-metadata",
        "recommend-options",
        "structured-output"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Output JSON Schema for the selected JSON output or JSON configuration format and exit.",
      "dest": "output_format_json_schema",
      "flags": [
        "--output-format-json-schema"
      ],
      "metavar": "{config,generate-prompt,generation,model-metadata,recommend-options,structured-output}",
      "name": "--output-format-json-schema",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": false,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Replace an existing regular skill directory when used with --install-skill.",
      "dest": "overwrite_skill",
      "flags": [
        "--overwrite-skill"
      ],
      "metavar": null,
      "name": "--overwrite-skill",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use a named profile from pyproject.toml [tool.datamodel-codegen.profiles.<name>]",
      "dest": "profile",
      "flags": [
        "--profile"
      ],
      "metavar": null,
      "name": "--profile",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Analyse the input schema and print the options to add on top of the latest dated preset, with the reasons, as a command and a pyproject.toml block, then exit (experimental). Schemas of up to 3000 estimated models are also compared by generating the candidate configurations in memory. With --generate-prompt, the prompt includes the recommendation instead.",
      "dest": "recommend_options",
      "flags": [
        "--recommend-options"
      ],
      "metavar": "",
      "name": "--recommend-options",
      "nargs": "?",
      "required": false,
      "type": "_recommend_mode"
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Name of the shared module for --reuse-scope=tree (default: \"shared\"). Use this option if your schema has a file named \"shared\".",
      "dest": "shared_module_name",
      "flags": [
        "--shared-module-name"
      ],
      "metavar": null,
      "name": "--shared-module-name",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": [
        "project",
        "user"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Installation scope for --install-skill (default: project). Project installs use .agents/skills or .claude/skills; user installs use the matching home directory.",
      "dest": "skill_scope",
      "flags": [
        "--skill-scope"
      ],
      "metavar": "{project,user}",
      "name": "--skill-scope",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Treat unresolved local $ref JSON pointers as errors instead of generating fallback Any models.",
      "dest": "strict_refs",
      "flags": [
        "--strict-refs"
      ],
      "metavar": null,
      "name": "--strict-refs",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Create or atomically update the selected remote lock after generation (experimental).",
      "dest": "update_lock",
      "flags": [
        "--update-lock"
      ],
      "metavar": null,
      "name": "--update-lock",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": false,
      "deprecated": false,
      "deprecated_message": null,
      "description": "show version",
      "dest": "version",
      "flags": [
        "--version"
      ],
      "metavar": null,
      "name": "--version",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Watch input file(s) for changes and regenerate output automatically",
      "dest": "watch",
      "flags": [
        "--watch"
      ],
      "metavar": null,
      "name": "--watch",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "General Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Debounce delay in seconds for watch mode (default: 0.5)",
      "dest": "watch_delay",
      "flags": [
        "--watch-delay"
      ],
      "metavar": null,
      "name": "--watch-delay",
      "nargs": null,
      "required": false,
      "type": "float"
    },
    {
      "action": "StoreTrueAction",
      "category": "GraphQL-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Exclude __typename field from generated GraphQL models. Useful when using generated models for GraphQL mutations.",
      "dest": "graphql_no_typename",
      "flags": [
        "--graphql-no-typename"
      ],
      "metavar": null,
      "name": "--graphql-no-typename",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "to_camel",
        "to_pascal",
        "to_snake"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Pydantic v2 BaseModel alias generator to use in ConfigDict. Matching generated aliases are omitted from individual Field() calls, except with --target-pydantic-version 2, which writes every alias.",
      "dest": "alias_generator",
      "flags": [
        "--alias-generator"
      ],
      "metavar": null,
      "name": "--alias-generator",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": true,
      "deprecated_message": "--allow-extra-fields is deprecated. Use --extra-fields=allow instead.",
      "description": "Deprecated: --allow-extra-fields is deprecated. Use --extra-fields=allow instead.",
      "dest": "allow_extra_fields",
      "flags": [
        "--allow-extra-fields"
      ],
      "metavar": null,
      "name": "--allow-extra-fields",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Allow an explicitly specified root class name to start with an underscore",
      "dest": "allow_leading_underscore_class_name",
      "flags": [
        "--allow-leading-underscore-class-name"
      ],
      "metavar": null,
      "name": "--allow-leading-underscore-class-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Allow population by field name",
      "dest": "allow_population_by_field_name",
      "flags": [
        "--allow-population-by-field-name",
        "--no-allow-population-by-field-name"
      ],
      "metavar": null,
      "name": "--allow-population-by-field-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Base Class (default: pydantic.BaseModel)",
      "dest": "base_class",
      "flags": [
        "--base-class"
      ],
      "metavar": null,
      "name": "--base-class",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Model-specific base class mapping (JSON or JSON file path). Example: '{\"MyModel\": \"custom.BaseA\", \"OtherModel\": \"custom.BaseB\"}'. Priority: base-class-map > customBasePath (in schema) > base-class.",
      "dest": "base_class_map",
      "flags": [
        "--base-class-map"
      ],
      "metavar": null,
      "name": "--base-class-map",
      "nargs": null,
      "required": false,
      "type": "_json_value_or_file"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set class name of root model",
      "dest": "class_name",
      "flags": [
        "--class-name"
      ],
      "metavar": null,
      "name": "--class-name",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "all",
        "models",
        "enums"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Scope for applying --class-name-prefix/--class-name-suffix. 'all': Apply to all classes including enums (default). 'models': Apply only to model classes. 'enums': Apply only to enum classes.",
      "dest": "class_name_affix_scope",
      "flags": [
        "--class-name-affix-scope"
      ],
      "metavar": null,
      "name": "--class-name-affix-scope",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Prefix to add to generated class names (e.g., 'Api' produces 'ApiUser'). Does not apply to root model when --class-name is specified.",
      "dest": "class_name_prefix",
      "flags": [
        "--class-name-prefix"
      ],
      "metavar": null,
      "name": "--class-name-prefix",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Suffix to add to generated class names (e.g., 'Schema' produces 'UserSchema'). Does not apply to root model when --class-name is specified.",
      "dest": "class_name_suffix",
      "flags": [
        "--class-name-suffix"
      ],
      "metavar": null,
      "name": "--class-name-suffix",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "When used with --reuse-model, collapse duplicate models by replacing references instead of creating empty inheritance subclasses. This eliminates 'class Foo(Bar): pass' patterns",
      "dest": "collapse_reuse_models",
      "flags": [
        "--collapse-reuse-models",
        "--no-collapse-reuse-models"
      ],
      "metavar": null,
      "name": "--collapse-reuse-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Models generated with a root-type field will be merged into the models using that root-type model",
      "dest": "collapse_root_models",
      "flags": [
        "--collapse-root-models",
        "--no-collapse-root-models"
      ],
      "metavar": null,
      "name": "--collapse-root-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "child",
        "parent"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for naming when collapsing root models that reference other models. 'child': Keep inner model's name (default). 'parent': Use wrapper's name for inner model. Requires --collapse-root-models to be set.",
      "dest": "collapse_root_models_name_strategy",
      "flags": [
        "--collapse-root-models-name-strategy"
      ],
      "metavar": null,
      "name": "--collapse-root-models-name-strategy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --collapse-root-models-name-strategy parent, make every model that references a wrapper reference the inner model that takes its name, as its first model does; without it, where --field-type-collision-strategy rename-type can rename the wrapper apart from the inner model in their module, the later models keep the wrapper",
      "dest": "collapse_shared_parent_wrappers",
      "flags": [
        "--collapse-shared-parent-wrappers",
        "--no-collapse-shared-parent-wrappers"
      ],
      "metavar": null,
      "name": "--collapse-shared-parent-wrappers",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom dataclass arguments as a JSON dictionary, e.g. '{\"frozen\": true, \"kw_only\": true}'. Overrides --frozen-dataclasses and similar flags.",
      "dest": "dataclass_arguments",
      "flags": [
        "--dataclass-arguments"
      ],
      "metavar": null,
      "name": "--dataclass-arguments",
      "nargs": null,
      "required": false,
      "type": "_dataclass_arguments"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "JSON mapping of type to suffix for resolving duplicate name conflicts. Example: '{\"model\": \"Schema\"}' changes Address1 to AddressSchema. Keys: 'model' (for classes), 'enum' (for enums), 'default' (fallback). When not specified, uses numeric suffix (Address1, Address2).",
      "dest": "duplicate_name_suffix",
      "flags": [
        "--duplicate-name-suffix"
      ],
      "metavar": null,
      "name": "--duplicate-name-suffix",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Enable faux immutability",
      "dest": "enable_faux_immutability",
      "flags": [
        "--enable-faux-immutability"
      ],
      "metavar": null,
      "name": "--enable-faux-immutability",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Force optional for required fields",
      "dest": "force_optional",
      "flags": [
        "--force-optional"
      ],
      "metavar": null,
      "name": "--force-optional",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate frozen dataclasses (dataclass(frozen=True)). Only applies to dataclass output.",
      "dest": "frozen_dataclasses",
      "flags": [
        "--frozen-dataclasses"
      ],
      "metavar": null,
      "name": "--frozen-dataclasses",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --collapse-root-models with --field-constraints, keep a root model whose root field has constraints named inside any container of its holder, a set, frozen set, Sequence or Mapping as well as a list, dict or union, as `Field()` could not carry them there; without it such a root model is inlined into those containers and its constraints are lost, as in 0.89.0",
      "dest": "keep_constrained_root_models_in_every_container",
      "flags": [
        "--keep-constrained-root-models-in-every-container",
        "--no-keep-constrained-root-models-in-every-container"
      ],
      "metavar": null,
      "name": "--keep-constrained-root-models-in-every-container",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --collapse-root-models, keep a named enum that the output writes as a `Literal` type alias named at its uses (`Status = Literal['open', 'resolved']`, `a: Status`); without it every use repeats the `Literal`, as in 0.89.0",
      "dest": "keep_enum_literal_aliases",
      "flags": [
        "--keep-enum-literal-aliases",
        "--no-keep-enum-literal-aliases"
      ],
      "metavar": null,
      "name": "--keep-enum-literal-aliases",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Leave the default of a property off the root models extracted from the branches of its `anyOf` or `oneOf`, which then require their value; without it each such root takes the property's default",
      "dest": "keep_field_defaults_off_branch_roots",
      "flags": [
        "--keep-field-defaults-off-branch-roots",
        "--no-keep-field-defaults-off-branch-roots"
      ],
      "metavar": null,
      "name": "--keep-field-defaults-off-branch-roots",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Keep generated models' order",
      "dest": "keep_model_order",
      "flags": [
        "--keep-model-order"
      ],
      "metavar": null,
      "name": "--keep-model-order",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Keep the null that the schema of a field, item or member admits where the model it references is merged into an equal model that rejects null (deduplication of equal models, --reuse-model, --collapse-reuse-models, --reuse-scope tree), so a `type: [object, null]` property keeps `| None`; without it the reference takes the null of the model it names after the merge, as in 0.88.0",
      "dest": "keep_reference_null_on_merged_models",
      "flags": [
        "--keep-reference-null-on-merged-models",
        "--no-keep-reference-null-on-merged-models"
      ],
      "metavar": null,
      "name": "--keep-reference-null-on-merged-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Defined models as keyword only (for example dataclass(kw_only=True)).",
      "dest": "keyword_only",
      "flags": [
        "--keyword-only"
      ],
      "metavar": null,
      "name": "--keyword-only",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Add extra keys from schema extensions (x-* fields) to model_config json_schema_extra",
      "dest": "model_extra_keys",
      "flags": [
        "--model-extra-keys"
      ],
      "metavar": null,
      "name": "--model-extra-keys",
      "nargs": "+",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Add extra keys with `x-` prefix to model_config json_schema_extra. The extra keys are stripped of the `x-` prefix.",
      "dest": "model_extra_keys_without_x_prefix",
      "flags": [
        "--model-extra-keys-without-x-prefix"
      ],
      "metavar": null,
      "name": "--model-extra-keys-without-x-prefix",
      "nargs": "+",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Rename generated model classes by schema ref or current generated class name using a JSON object or JSON file.",
      "dest": "model_name_map",
      "flags": [
        "--model-name-map"
      ],
      "metavar": null,
      "name": "--model-name-map",
      "nargs": null,
      "required": false,
      "type": "_json_value_or_file"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "AsyncAPI only: name a payload that an Avro or XML Schema converter gives no name of its own, such as an Avro string or array, after its message, as a JSON Schema payload is, and drop the placeholder title Model the converter gives it (Field(..., title='Model'), and the class Model under --use-title-as-name); without it the placeholder stays, as in 0.88.0",
      "dest": "name_converted_payloads_by_message",
      "flags": [
        "--name-converted-payloads-by-message",
        "--no-name-converted-payloads-by-message"
      ],
      "metavar": null,
      "name": "--name-converted-payloads-by-message",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "numbered",
        "parent-prefixed",
        "full-path",
        "primary-first",
        "definitions-first",
        "enclosing-model"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for naming models and telling duplicate model names apart. 'numbered' (default): Append numeric suffix (Address, Address1, Address2). Simple but names don't indicate context. 'parent-prefixed': Prefix every nested model with the name of the model that holds it, joined in CamelCase, nested parents included (CompanyAddress, CompanyEmployeeHomeAddress), also where the name is unique; the model names are the same as with 'full-path'. 'full-path': Prefix every nested model with the names of the models that hold it, joined in CamelCase (CompanyAddress, CompanyEmployeeHomeAddress). 'primary-first': Keep clean names for primary definitions (in /definitions/ or /components/schemas/), only add suffix to inline/nested duplicates. 'definitions-first': Give every definition (in /definitions/, /$defs/ or /components/schemas/ of any document) its own name before an inline model, a variant or another definition that asked for it first, which takes the name the definition would have taken (Package1); unlike 'primary-first', which renames only models of other files, as in 0.89.0. 'enclosing-model': Prefix every nested model with the final name of the model it is built for, once (IssueClosedIssue for the allOf property issue of IssueClosed, StreamEvent1 for the first unnamed branch of the union StreamEvent, PetCat for its branch tagged cat); a definition keeps its own name (Customer, not ModelCustomer); unlike 'full-path', which prefixes with the closest model registered above, as in 0.89.0.",
      "dest": "naming_strategy",
      "flags": [
        "--naming-strategy"
      ],
      "metavar": null,
      "name": "--naming-strategy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Do not write None again where a field, item or member references a model that holds null itself (a root model or type alias whose type admits None, or an enum with a None member), so that a null parses to that model",
      "dest": "omit_redundant_reference_null",
      "flags": [
        "--omit-redundant-reference-null",
        "--no-omit-redundant-reference-null"
      ],
      "metavar": null,
      "name": "--omit-redundant-reference-null",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "final-names",
        "written-defaults"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Decide the order of constructor fields by each given value. final-names: order the constructor fields of dataclass and msgspec.Struct models after every field has its final name, so a field that overrides an inherited field renamed in another module is matched to it and keeps its place; without it the override reads as a new field after the inherited default and is written keyword-only (kw_only=True). written-defaults: order the fields of msgspec.Struct and Pydantic dataclass models by the defaults they write, so under --strip-default-none an optional field whose None default is stripped but still written (UNSET, or None for a type that admits None) goes after the required fields of a Struct with the other optional fields and stays positional after an inherited default, and a required pydantic.dataclass field redeclaring it is written Field(...) (a msgspec.Struct writes a bare annotation); without it the field keeps its place among the fields without a default, as before: it is keyword-only after an inherited default, a redeclaring field inherits its None default, and the fields are reordered only where a required field would then follow a default.",
      "dest": "order_constructor_fields_by",
      "flags": [
        "--order-constructor-fields-by"
      ],
      "metavar": null,
      "name": "--order-constructor-fields-by",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "pydantic_v2.BaseModel",
        "pydantic_v2.dataclass",
        "dataclasses.dataclass",
        "typing.TypedDict",
        "msgspec.Struct"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Output model type (default: pydantic_v2.BaseModel)",
      "dest": "output_model_type",
      "flags": [
        "--output-model-type"
      ],
      "metavar": null,
      "name": "--output-model-type",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": true,
      "deprecated_message": "--parent-scoped-naming is deprecated. Use --naming-strategy parent-prefixed instead.",
      "description": "Deprecated: --parent-scoped-naming is deprecated. Use --naming-strategy parent-prefixed instead.",
      "dest": "parent_scoped_naming",
      "flags": [
        "--parent-scoped-naming"
      ],
      "metavar": null,
      "name": "--parent-scoped-naming",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "pydantic_v2.BaseModel and pydantic_v2.dataclass output: decide a field's alias by the alias generator its model applies, the one in its config or in the config it inherits. For a dataclass and a --target-pydantic-version older than 2.8, whose alias generators can differ from the generated aliases, write the generated alias on every field of a dataclass whose config names an alias generator. Without it a field keeps the alias it has without the generator, which the config then replaces.",
      "dest": "pin_aliases_with_alias_generator",
      "flags": [
        "--pin-aliases-with-alias-generator",
        "--no-pin-aliases-with-alias-generator"
      ],
      "metavar": null,
      "name": "--pin-aliases-with-alias-generator",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Write the null that `nullable: true` declares beside a `type` list with an object into the root model of that schema under --strict-nullable or --use-missing-sentinel, as a declared field does; without it only a `type` list holding null makes that root admit None",
      "dest": "read_nullable_beside_type_list",
      "flags": [
        "--read-nullable-beside-type-list",
        "--no-read-nullable-beside-type-list"
      ],
      "metavar": null,
      "name": "--read-nullable-beside-type-list",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Reuse models on the field when a module has the model with the same content",
      "dest": "reuse_model",
      "flags": [
        "--reuse-model",
        "--no-reuse-model"
      ],
      "metavar": null,
      "name": "--reuse-model",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "module",
        "tree"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Scope for model reuse deduplication: module (per-file, default) or tree (cross-file with shared module). Only effective when --reuse-model is set.",
      "dest": "reuse_scope",
      "flags": [
        "--reuse-scope"
      ],
      "metavar": null,
      "name": "--reuse-scope",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Name the item model of an array by singularizing only the last word of its name (actions_caches gives ActionsCache, payment_status gives PaymentStatusItem); without it the whole name is singularized as one word (ActionsCach, PaymentStatu), as in 0.88.0",
      "dest": "singularize_last_word_of_item_names",
      "flags": [
        "--singularize-last-word-of-item-names",
        "--no-singularize-last-word-of-item-names"
      ],
      "metavar": null,
      "name": "--singularize-last-word-of-item-names",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Skip generating the model for the root schema element",
      "dest": "skip_root_model",
      "flags": [
        "--skip-root-model"
      ],
      "metavar": null,
      "name": "--skip-root-model",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Treat default field as a non-nullable field",
      "dest": "strict_nullable",
      "flags": [
        "--strict-nullable",
        "--no-strict-nullable"
      ],
      "metavar": null,
      "name": "--strict-nullable",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strip default None on fields (no effect on msgspec.Struct: it defaults an omitted field to UNSET, and to None only when the type admits None)",
      "dest": "strip_default_none",
      "flags": [
        "--strip-default-none"
      ],
      "metavar": null,
      "name": "--strip-default-none",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "msgspec.Struct output only: tag the structs of a discriminated union with the property name the document carries (for example 'pet-kind') instead of the Python name that property resolves to (pet_kind), which msgspec looks for in the payload. --use-msgspec-tagged-unions already tags by the document's property name. Without either option the Python name is kept.",
      "dest": "tag_msgspec_by_payload_name",
      "flags": [
        "--tag-msgspec-by-payload-name",
        "--no-tag-msgspec-by-payload-name"
      ],
      "metavar": null,
      "name": "--tag-msgspec-by-payload-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "2",
        "2.11",
        "2.12",
        "2.14"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Oldest Pydantic version the generated code must support. Unset: the newest supported feature forms, with populate_by_name config like '2' and the experimental MISSING import like '2.12'. '2': Pydantic 2.0.3+ compatible (uses populate_by_name; patterns that need Python's regex engine need 2.5+). '2.11': Pydantic 2.11+ (uses validate_by_name). '2.12': Pydantic 2.12+ (supports MISSING sentinel). '2.14': Pydantic 2.14+ (imports MISSING from pydantic; bytes patterns can select Python's regex engine; pydantic_v2.dataclass writes required Field(...) fields before the fields with defaults of the same class; a number schema keeps multipleOf on a timedelta). Constructs without an older form are written for every target, with a warning naming the Pydantic they need.",
      "dest": "target_pydantic_version",
      "flags": [
        "--target-pydantic-version"
      ],
      "metavar": null,
      "name": "--target-pydantic-version",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "3.10",
        "3.11",
        "3.12",
        "3.13",
        "3.14",
        "3.15"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "target python version",
      "dest": "target_python_version",
      "flags": [
        "--target-python-version"
      ],
      "metavar": null,
      "name": "--target-python-version",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "smart",
        "left_to_right"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Union mode for only pydantic v2 field",
      "dest": "union_mode",
      "flags": [
        "--union-mode"
      ],
      "metavar": null,
      "name": "--union-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use default value even if a field is required",
      "dest": "use_default",
      "flags": [
        "--use-default"
      ],
      "metavar": null,
      "name": "--use-default",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use default_factory for optional nested model fields instead of None default. E.g., `field: Model | None = Field(default_factory=Model)` instead of `field: Model | None = None`",
      "dest": "use_default_factory_for_optional_nested_models",
      "flags": [
        "--use-default-factory-for-optional-nested-models"
      ],
      "metavar": null,
      "name": "--use-default-factory-for-optional-nested-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use `default=` instead of a positional argument for Fields that have default values.",
      "dest": "use_default_kwarg",
      "flags": [
        "--use-default-kwarg",
        "--no-use-default-kwarg"
      ],
      "metavar": null,
      "name": "--use-default-kwarg",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Give the --duplicate-name-suffix suffix also to a model renamed because its name is taken in its module, by another model or by a name the module imports (an inline Item beside a definition Item, a definition AnyUrl beside a uri field); without it such a model takes the suffix Model, as in 0.88.0",
      "dest": "use_duplicate_name_suffix_for_every_collision",
      "flags": [
        "--use-duplicate-name-suffix-for-every-collision",
        "--no-use-duplicate-name-suffix-for-every-collision"
      ],
      "metavar": null,
      "name": "--use-duplicate-name-suffix-for-every-collision",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use Field(frozen=True) for readOnly fields (Pydantic v2).",
      "dest": "use_frozen_field",
      "flags": [
        "--use-frozen-field",
        "--no-use-frozen-field"
      ],
      "metavar": null,
      "name": "--use-frozen-field",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate a shared base class with model configuration (e.g., extra='forbid') instead of repeating the configuration in each model. Keeps code DRY.",
      "dest": "use_generic_base_class",
      "flags": [
        "--use-generic-base-class"
      ],
      "metavar": null,
      "name": "--use-generic-base-class",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use pydantic.experimental.missing_sentinel.MISSING for optional fields without defaults (Pydantic v2.12+), or pydantic.MISSING with --target-pydantic-version 2.14 or later, which --generate-server and --generate-client require with this option. Supports pydantic_v2.BaseModel and pydantic_v2.dataclass, whose server and client generation requires it.",
      "dest": "use_missing_sentinel",
      "flags": [
        "--use-missing-sentinel"
      ],
      "metavar": null,
      "name": "--use-missing-sentinel",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "msgspec.Struct output only: write the keys of a map whose keys propertyNames or patternProperties constrain by pattern, minLength or maxLength as Annotated[str, Meta(...)], so msgspec checks them as Pydantic output does; without it the keys are str and every key is accepted, as in 0.88.0",
      "dest": "use_msgspec_meta_for_map_keys",
      "flags": [
        "--use-msgspec-meta-for-map-keys",
        "--no-use-msgspec-meta-for-map-keys"
      ],
      "metavar": null,
      "name": "--use-msgspec-meta-for-map-keys",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "msgspec.Struct output only: write an enum that lists null as an Enum without the None member plus an Enum | None type alias, so that msgspec can decode it. Without it a plain Enum keeps the 0.83.0 None member, which msgspec cannot decode; an IntEnum or --use-subclass-enum enum, which cannot hold it, is written without it and, as its one type rejects null, without the alias.",
      "dest": "use_msgspec_nullable_enum_alias",
      "flags": [
        "--use-msgspec-nullable-enum-alias"
      ],
      "metavar": null,
      "name": "--use-msgspec-nullable-enum-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "msgspec.Struct output only: write a discriminated union as msgspec tagged structs as a whole. Every variant is tagged with the document's property name and its value, or none is and a warning says why. Without it the 0.83.0 form is kept, which tags only a variant whose discriminator is a single literal and keeps the other discriminators as Literal fields.",
      "dest": "use_msgspec_tagged_unions",
      "flags": [
        "--use-msgspec-tagged-unions"
      ],
      "metavar": null,
      "name": "--use-msgspec-tagged-unions",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use one literal as default value for one literal field",
      "dest": "use_one_literal_as_default",
      "flags": [
        "--use-one-literal-as-default"
      ],
      "metavar": null,
      "name": "--use-one-literal-as-default",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Make non-null sequence-like Pydantic v2 RootModel classes implement collections.abc.Sequence by adding Sequence[T] inheritance and root-delegating __iter__, __getitem__, and __len__ methods",
      "dest": "use_root_model_sequence_interface",
      "flags": [
        "--use-root-model-sequence-interface"
      ],
      "metavar": null,
      "name": "--use-root-model-sequence-interface",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use pydantic.SerializeAsAny for fields with types that have subtypes (Pydantic v2 only)",
      "dest": "use_serialize_as_any",
      "flags": [
        "--use-serialize-as-any"
      ],
      "metavar": null,
      "name": "--use-serialize-as-any",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the generated output adds fields: at any depth, after --reuse-model or --collapse-reuse-models merges the model, and where the field names the model through its module; without it only a field whose model has a direct subclass is wrapped, as in 0.88.0 (Pydantic v2 only)",
      "dest": "use_serialize_as_any_for_every_subclass",
      "flags": [
        "--use-serialize-as-any-for-every-subclass",
        "--no-use-serialize-as-any-for-every-subclass"
      ],
      "metavar": null,
      "name": "--use-serialize-as-any-for-every-subclass",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Model Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Define generic Enum class as subclass with field type when enum has type (int, float, bytes, str)",
      "dest": "use_subclass_enum",
      "flags": [
        "--use-subclass-enum",
        "--no-use-subclass-enum"
      ],
      "metavar": null,
      "name": "--use-subclass-enum",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Decide Request/Response variants from the schema graph and build each inline model once, without the unreferenced duplicate classes and shifted class numbers of 0.86.0",
      "dest": "dedupe_request_response_variants",
      "flags": [
        "--dedupe-request-response-variants",
        "--no-dedupe-request-response-variants"
      ],
      "metavar": null,
      "name": "--dedupe-request-response-variants",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Include path parameters in generated parameter models in addition to query parameters (Only OpenAPI)",
      "dest": "include_path_parameters",
      "flags": [
        "--include-path-parameters"
      ],
      "metavar": null,
      "name": "--include-path-parameters",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strip only a leading slash from a paths key when naming its operation models, as webhook names are, so the key pets gives PetsGetResponse; without it the first character is dropped whatever it is (EtsGetResponse), as in 0.88.0",
      "dest": "keep_first_character_of_path_keys",
      "flags": [
        "--keep-first-character-of-path-keys",
        "--no-keep-first-character-of-path-keys"
      ],
      "metavar": null,
      "name": "--keep-first-character-of-path-keys",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "OpenAPI-only Options",
      "choices": [
        "paths-bodies",
        "ref-components"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Give each given kind of OpenAPI schema the model a definitions entry of the same schema gets. paths-bodies: the request and response bodies of the paths and webhooks scopes, so an object body with a type array such as [object, null], or with map keywords and no type, becomes a model instead of an inline type, and an object body with patternProperties or propertyNames becomes the root model of a map. ref-components: a component written as a $ref to a recursive schema with sibling keywords, which gets the root model; without it such a component gets no model, and a reference to it is typed by the schema its $ref names",
      "dest": "openapi_as_definitions",
      "flags": [
        "--openapi-as-definitions"
      ],
      "metavar": null,
      "name": "--openapi-as-definitions",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Emit OpenAPI info.version as OPENAPI_INFO_VERSION in generated models",
      "dest": "openapi_include_info_version",
      "flags": [
        "--openapi-include-info-version"
      ],
      "metavar": null,
      "name": "--openapi-include-info-version",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Include only OpenAPI paths matching fnmatch patterns. Use wildcards: '*' matches any chars, '?' matches single char. Example: '/users/*' '/products'. Requires '--openapi-scopes' to include 'paths'.",
      "dest": "openapi_include_paths",
      "flags": [
        "--openapi-include-paths"
      ],
      "metavar": "PATTERN",
      "name": "--openapi-include-paths",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "OpenAPI-only Options",
      "choices": [
        "schemas",
        "paths",
        "tags",
        "parameters",
        "webhooks",
        "requestbodies",
        "api"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Scopes of OpenAPI model generation (default: schemas)",
      "dest": "openapi_scopes",
      "flags": [
        "--openapi-scopes"
      ],
      "metavar": null,
      "name": "--openapi-scopes",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "OpenAPI-only Options",
      "choices": [
        "request-response",
        "all"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Model generation for readOnly/writeOnly fields: 'request-response' = Request/Response models only (no base model), 'all' = Base + Request + Response models.",
      "dest": "read_only_write_only_model_type",
      "flags": [
        "--read-only-write-only-model-type"
      ],
      "metavar": null,
      "name": "--read-only-write-only-model-type",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "use operation id of OpenAPI as class names of models",
      "dest": "use_operation_id_as_name",
      "flags": [
        "--use-operation-id-as-name"
      ],
      "metavar": null,
      "name": "--use-operation-id-as-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Include HTTP status code in response model names (e.g., ResourceGetResponse200, ResourceGetResponseDefault)",
      "dest": "use_status_code_in_response_name",
      "flags": [
        "--use-status-code-in-response-name"
      ],
      "metavar": null,
      "name": "--use-status-code-in-response-name",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "OpenAPI-only Options",
      "choices": null,
      "default": null,
      "deprecated": true,
      "deprecated_message": "The `--validation` option is deprecated and will be removed in a future release. Use --field-constraints instead.",
      "description": "Deprecated: The `--validation` option is deprecated and will be removed in a future release. Use --field-constraints instead.",
      "dest": "validation",
      "flags": [
        "--validation"
      ],
      "metavar": null,
      "name": "--validation",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "body",
        "both"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Take request bodies as one body argument (default) or also as field arguments (experimental).",
      "dest": "client_body_arguments",
      "flags": [
        "--client-body-arguments"
      ],
      "metavar": null,
      "name": "--client-body-arguments",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Server URL of the operations that declare no servers (experimental).",
      "dest": "client_default_base_url",
      "flags": [
        "--client-default-base-url"
      ],
      "metavar": null,
      "name": "--client-default-base-url",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Import path of the models that --output generates (experimental).",
      "dest": "client_model_package",
      "flags": [
        "--client-model-package"
      ],
      "metavar": null,
      "name": "--client-model-package",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Settings per operation reference, such as /paths/~1pets/get, as inline JSON or a JSON file path; their body_arguments overrides --client-body-arguments (experimental).",
      "dest": "client_operations",
      "flags": [
        "--client-operations"
      ],
      "metavar": null,
      "name": "--client-operations",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Directory of the generated client package (experimental).",
      "dest": "client_output",
      "flags": [
        "--client-output"
      ],
      "metavar": null,
      "name": "--client-output",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Import path of the generated client package (experimental).",
      "dest": "client_package",
      "flags": [
        "--client-package"
      ],
      "metavar": null,
      "name": "--client-package",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Pagination, polling, stream, WebSocket, cache, upload, and webhook helpers by name, as inline JSON or a JSON file path (experimental).",
      "dest": "client_protocols",
      "flags": [
        "--client-protocols"
      ],
      "metavar": null,
      "name": "--client-protocols",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Resource namespaces keyed by tag, such as {\"pets\": \"store.pets\"}, as inline JSON or a JSON file path (experimental).",
      "dest": "client_resource_names",
      "flags": [
        "--client-resource-names"
      ],
      "metavar": null,
      "name": "--client-resource-names",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Base URL that relative server URLs of the document resolve against (experimental).",
      "dest": "client_server_base_url",
      "flags": [
        "--client-server-base-url"
      ],
      "metavar": null,
      "name": "--client-server-base-url",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "explicit",
        "unpack"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Declare operation arguments as keywords (default) or as one Unpack[TypedDict] (experimental).",
      "dest": "client_signature_style",
      "flags": [
        "--client-signature-style"
      ],
      "metavar": null,
      "name": "--client-signature-style",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "httpx2"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate an HTTPX2 client package for the models; the --client-* options configure it (experimental).",
      "dest": "generate_client",
      "flags": [
        "--generate-client"
      ],
      "metavar": null,
      "name": "--generate-client",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "fastapi"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate a FastAPI server package for the models; the --server-* options configure it (experimental).",
      "dest": "generate_server",
      "flags": [
        "--generate-server"
      ],
      "metavar": null,
      "name": "--generate-server",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "typed",
        "request"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Pass request bodies as validated models (default) or as the raw Request (experimental).",
      "dest": "server_body_mode",
      "flags": [
        "--server-body-mode"
      ],
      "metavar": null,
      "name": "--server-body-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Per-operation body modes as inline JSON or a JSON file path, keyed by operation reference; overrides --server-body-mode for matched operations (experimental).",
      "dest": "server_body_modes",
      "flags": [
        "--server-body-modes"
      ],
      "metavar": null,
      "name": "--server-body-modes",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "sync",
        "async"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Make service methods plain functions (default) or coroutine functions (experimental).",
      "dest": "server_handler_mode",
      "flags": [
        "--server-handler-mode"
      ],
      "metavar": null,
      "name": "--server-handler-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Per-operation handler modes as inline JSON or a JSON file path, keyed by operation reference such as /paths/~1pets/get; overrides --server-handler-mode for matched operations (experimental).",
      "dest": "server_handler_modes",
      "flags": [
        "--server-handler-modes"
      ],
      "metavar": null,
      "name": "--server-handler-modes",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Pass the Starlette Request to every service method (experimental).",
      "dest": "server_include_request",
      "flags": [
        "--server-include-request",
        "--no-server-include-request"
      ],
      "metavar": null,
      "name": "--server-include-request",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": [
        "routers",
        "single"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Write one router module per tag (default) or a single routes module (experimental).",
      "dest": "server_layout",
      "flags": [
        "--server-layout"
      ],
      "metavar": null,
      "name": "--server-layout",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Import path of the models that --output generates (experimental).",
      "dest": "server_model_package",
      "flags": [
        "--server-model-package"
      ],
      "metavar": null,
      "name": "--server-model-package",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Service method names per operation reference as inline JSON or a JSON file path (experimental).",
      "dest": "server_operation_names",
      "flags": [
        "--server-operation-names"
      ],
      "metavar": null,
      "name": "--server-operation-names",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Directory of the generated server package (experimental).",
      "dest": "server_output",
      "flags": [
        "--server-output"
      ],
      "metavar": null,
      "name": "--server-output",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Import path of the generated server package (experimental).",
      "dest": "server_package",
      "flags": [
        "--server-package"
      ],
      "metavar": null,
      "name": "--server-package",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Argument names per operation reference, each keyed by location and name such as query:limit, as inline JSON or a JSON file path (experimental).",
      "dest": "server_parameter_names",
      "flags": [
        "--server-parameter-names"
      ],
      "metavar": null,
      "name": "--server-parameter-names",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "The declared response a bare return value takes, per operation, as inline JSON or a JSON file path: an object with \"status_code\" and an optional \"media_type\" for each operation reference (experimental).",
      "dest": "server_primary_responses",
      "flags": [
        "--server-primary-responses"
      ],
      "metavar": null,
      "name": "--server-primary-responses",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Target Generation Options",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Router group names keyed by group key, such as tag:pets, as inline JSON or a JSON file path (experimental).",
      "dest": "server_router_names",
      "flags": [
        "--server-router-names"
      ],
      "metavar": null,
      "name": "--server-router-names",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom imports for output (delimited list input). For example \"datetime.date,datetime.datetime\"",
      "dest": "additional_imports",
      "flags": [
        "--additional-imports"
      ],
      "metavar": null,
      "name": "--additional-imports",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --generate-schema-validators, count every key that a pattern of patternProperties admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties",
      "dest": "check_pattern_maps_strictly",
      "flags": [
        "--check-pattern-maps-strictly",
        "--no-check-pattern-maps-strictly"
      ],
      "metavar": null,
      "name": "--check-pattern-maps-strictly",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom decorators for generated model classes (delimited list input). For example \"@dataclass_json(letter_case=LetterCase.CAMEL)\". The \"@\" prefix is optional and will be added automatically if missing.",
      "dest": "class_decorators",
      "flags": [
        "--class-decorators"
      ],
      "metavar": null,
      "name": "--class-decorators",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom file header",
      "dest": "custom_file_header",
      "flags": [
        "--custom-file-header"
      ],
      "metavar": null,
      "name": "--custom-file-header",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": [
        "replace",
        "prepend"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "How to combine a custom file header with the generated header (default: replace)",
      "dest": "custom_file_header_mode",
      "flags": [
        "--custom-file-header-mode"
      ],
      "metavar": null,
      "name": "--custom-file-header-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom file header file path",
      "dest": "custom_file_header_path",
      "flags": [
        "--custom-file-header-path"
      ],
      "metavar": null,
      "name": "--custom-file-header-path",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "List of modules with custom formatter (delimited list input).",
      "dest": "custom_formatters",
      "flags": [
        "--custom-formatters"
      ],
      "metavar": null,
      "name": "--custom-formatters",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom formatter kwargs as inline JSON or a JSON file path.",
      "dest": "custom_formatters_kwargs",
      "flags": [
        "--custom-formatters-kwargs"
      ],
      "metavar": null,
      "name": "--custom-formatters-kwargs",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Custom template directory",
      "dest": "custom_template_dir",
      "flags": [
        "--custom-template-dir"
      ],
      "metavar": null,
      "name": "--custom-template-dir",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable appending `Item` suffix to model name in an array",
      "dest": "disable_appending_item_suffix",
      "flags": [
        "--disable-appending-item-suffix"
      ],
      "metavar": null,
      "name": "--disable-appending-item-suffix",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable timestamp on file headers",
      "dest": "disable_timestamp",
      "flags": [
        "--disable-timestamp",
        "--no-disable-timestamp"
      ],
      "metavar": null,
      "name": "--disable-timestamp",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Enable command-line options on file headers for reproducibility",
      "dest": "enable_command_header",
      "flags": [
        "--enable-command-header"
      ],
      "metavar": null,
      "name": "--enable-command-header",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Enable @generated marker on file headers",
      "dest": "enable_generated_header_marker",
      "flags": [
        "--enable-generated-header-marker"
      ],
      "metavar": null,
      "name": "--enable-generated-header-marker",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Enable package version on file headers",
      "dest": "enable_version_header",
      "flags": [
        "--enable-version-header"
      ],
      "metavar": null,
      "name": "--enable-version-header",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Extra template data for output models as inline JSON or a JSON file path. For OpenAPI and Jsonschema the keys are the spec path of the object, or the name of the object if you want to apply the template data to multiple objects with the same name. If you are using another input file type (e.g. GraphQL), the key is the name of the object. The value is a dictionary of the template data to add.",
      "dest": "extra_template_data",
      "flags": [
        "--extra-template-data"
      ],
      "metavar": null,
      "name": "--extra-template-data",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": [
        "builtin",
        "black",
        "isort",
        "ruff-check",
        "ruff-format"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Formatters (current default: black, isort; future default: builtin). For Ruff projects, use --formatters ruff-check ruff-format (install with pip install 'datamodel-code-generator[ruff]'). Use --formatters builtin when no external formatter is used or generation speed takes priority. Keep --formatters black isort to preserve existing formatting. Presets dated 20260909 or later include builtin; explicit formatters override presets. The future builtin default reduces installation dependencies and version constraints. Black/isort remain required today; declare [black,isort] extras for their later optional installation. Review custom-template output with builtin. Details: https://datamodel-code-generator.koxudaxi.dev/formatter-behavior/",
      "dest": "formatters",
      "flags": [
        "--formatters"
      ],
      "metavar": null,
      "name": "--formatters",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate Pydantic v2 model validators for JSON Schema rules that cannot be represented as type hints (experimental).",
      "dest": "generate_schema_validators",
      "flags": [
        "--generate-schema-validators"
      ],
      "metavar": null,
      "name": "--generate-schema-validators",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreConstAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Select no formatter, not even the default or a preset's formatters; --custom-formatters still run.",
      "dest": "formatters",
      "flags": [
        "--no-formatters"
      ],
      "metavar": null,
      "name": "--no-formatters",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores (pkg/Warn_.py), with the modules below it; the class keeps its name. Without it importing the submodule replaces the class in its package, so the models that use either fail to decode",
      "dest": "rename_submodules_hidden_by_classes",
      "flags": [
        "--rename-submodules-hidden-by-classes",
        "--no-rename-submodules-hidden-by-classes"
      ],
      "metavar": null,
      "name": "--rename-submodules-hidden-by-classes",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set the generated shared Pydantic v2 schema runtime validator base class name.",
      "dest": "schema_validator_base_class_name",
      "flags": [
        "--schema-validator-base-class-name"
      ],
      "metavar": null,
      "name": "--schema-validator-base-class-name",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": [
        "pydantic-v2"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Select the schema-derived runtime validator backend. 'pydantic-v2' generates Pydantic v2 model validators (experimental).",
      "dest": "schema_validator_type",
      "flags": [
        "--schema-validator-type"
      ],
      "metavar": null,
      "name": "--schema-validator-type",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Only infer dotted schema names as module paths when every segment is a canonical Python identifier. This applies only to automatic inference and does not override --treat-dot-as-module or --no-treat-dot-as-module.",
      "dest": "strict_dotted_module_names",
      "flags": [
        "--strict-dotted-module-names",
        "--no-strict-dotted-module-names"
      ],
      "metavar": null,
      "name": "--strict-dotted-module-names",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Treat dotted schema names as module paths, creating nested directory structures (e.g., 'foo.bar.Model' becomes 'foo/bar.py'). Use --no-treat-dot-as-module to keep dots in names as underscores for single-file output.",
      "dest": "treat_dot_as_module",
      "flags": [
        "--treat-dot-as-module",
        "--no-treat-dot-as-module"
      ],
      "metavar": null,
      "name": "--treat-dot-as-module",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Model generated with double quotes. Single quotes or your black config skip_string_normalization value will be used without this option.",
      "dest": "use_double_quotes",
      "flags": [
        "--use-double-quotes"
      ],
      "metavar": null,
      "name": "--use-double-quotes",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "import exact types instead of modules, for example: \"from .foo import Bar\" instead of \"from . import foo\" with \"foo.Bar\"",
      "dest": "use_exact_imports",
      "flags": [
        "--use-exact-imports"
      ],
      "metavar": null,
      "name": "--use-exact-imports",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Allow Ruff to move typing-only imports into TYPE_CHECKING blocks. By default this stays enabled, except for multi-module Ruff formatting of modular Pydantic output where referenced models stay imported at runtime. Use --no-use-type-checking-imports to force runtime imports.",
      "dest": "use_type_checking_imports",
      "flags": [
        "--use-type-checking-imports",
        "--no-use-type-checking-imports"
      ],
      "metavar": null,
      "name": "--use-type-checking-imports",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Validators configuration as inline JSON or a JSON file path. Defines field validators for Pydantic v2 models. Keys are model names, values contain validator definitions with field, function, and mode.",
      "dest": "validators",
      "flags": [
        "--validators"
      ],
      "metavar": null,
      "name": "--validators",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Wrap string literal by using black `experimental-string-processing` option (require black 20.8b0 or later)",
      "dest": "wrap_string_literal",
      "flags": [
        "--wrap-string-literal"
      ],
      "metavar": null,
      "name": "--wrap-string-literal",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "if-no-conflict",
        "always"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "How to map allOf references to class hierarchies. 'if-no-conflict': only create subclasses when parent class has no conflicting property definition. 'always': always create subclasses. ",
      "dest": "allof_class_hierarchy",
      "flags": [
        "--allof-class-hierarchy"
      ],
      "metavar": null,
      "name": "--allof-class-hierarchy",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "constraints",
        "all",
        "none"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Mode for field merging in allOf schemas. 'constraints': merge only constraints (minItems, maxItems, pattern, etc.) from parent (default). 'all': merge constraints plus annotations (default, examples) from parent. 'none': do not merge any fields from parent properties.",
      "dest": "allof_merge_mode",
      "flags": [
        "--allof-merge-mode"
      ],
      "metavar": null,
      "name": "--allof-merge-mode",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable __future__ imports",
      "dest": "disable_future_imports",
      "flags": [
        "--disable-future-imports"
      ],
      "metavar": null,
      "name": "--disable-future-imports",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read an `allOf` with the `anyOf` and `oneOf` it holds or sits beside as JSON Schema validates them: an `allOf` of several is one union variant per combination of one branch of each, also through a `$ref` member that names an `allOf` over a union, a `$ref` branch takes the `allOf` members beside its `anyOf` or `oneOf`, which an inline branch already takes, and the value keywords beside it where it names no object, and an OpenAPI request or response body with an `allOf` beside an `anyOf` or `oneOf` is that union as a schema of the components is; the value branches of those unions are read at a field and beside object branches too. Without it the branches of every `anyOf` and `oneOf` of an `allOf` join one union (the inline branches of a second replacing those of the first), a `$ref` member naming an `allOf` over a union is dropped, a `$ref` branch takes only the `properties` and `required` beside it, a body drops the union, and value branches are read only where the `allOf` would be a model without fields, as in 0.89.0",
      "dest": "distribute_allof_over_unions",
      "flags": [
        "--distribute-allof-over-unions",
        "--no-distribute-allof-over-unions"
      ],
      "metavar": null,
      "name": "--distribute-allof-over-unions",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "all",
        "one",
        "none"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Parse enum field as literal. all: all enum field type are Literal. one: field type is Literal when an enum has only one possible value. none: always use Enum class (never convert to Literal)",
      "dest": "enum_field_as_literal",
      "flags": [
        "--enum-field-as-literal"
      ],
      "metavar": null,
      "name": "--enum-field-as-literal",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Per-field override for enum/literal generation (JSON or JSON file path). Format: JSON object mapping field names to 'literal' or 'enum'. Example: '{\"status\": \"literal\", \"priority\": \"enum\"}'. Overrides --enum-field-as-literal for matched fields.",
      "dest": "enum_field_as_literal_map",
      "flags": [
        "--enum-field-as-literal-map"
      ],
      "metavar": null,
      "name": "--enum-field-as-literal-map",
      "nargs": null,
      "required": false,
      "type": "_json_value_or_file"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Keep only the values of a `const` or an `enum` that meet the `minLength`, `maxLength`, `pattern`, bound and `multipleOf` constraints beside them in its `Literal` or Enum, as JSON Schema validates them; a schema none of whose values meets them stays as written with a warning",
      "dest": "filter_literal_values",
      "flags": [
        "--filter-literal-values",
        "--no-filter-literal-values"
      ],
      "metavar": null,
      "name": "--filter-literal-values",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Ignore enum constraints and use the base type (e.g., str, int) instead of generating Enum classes",
      "dest": "ignore_enum_constraints",
      "flags": [
        "--ignore-enum-constraints"
      ],
      "metavar": null,
      "name": "--ignore-enum-constraints",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Override modules for generated imports by symbol name. Format: JSON object mapping symbols to module paths. Example: '{\"TypedDict\": \"my_project.typing_compat\", \"NotRequired\": \"my_project.typing_compat\"}'.",
      "dest": "import_overrides",
      "flags": [
        "--import-overrides"
      ],
      "metavar": null,
      "name": "--import-overrides",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Combine the keywords of every part of an `allOf`, of a `$ref` with sibling keywords and of an inherited property override, as JSON Schema validates them: the tightest bounds, the `enum` values every part admits, the `type` every part admits, the conjunction of the `pattern`s, no null beside a `type` that excludes it, and the constraints of the root, item and map value positions of an `allOf`. Without it, the keyword of the last part wins where the parts disagree",
      "dest": "intersect_allof_keywords",
      "flags": [
        "--intersect-allof-keywords",
        "--no-intersect-allof-keywords"
      ],
      "metavar": null,
      "name": "--intersect-allof-keywords",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Combine the keywords of every part of a combined schema as JSON Schema validates them, as --intersect-allof-keywords does (this option turns it on), and also: the keywords beside an `anyOf` or `oneOf` in each branch, the `properties` an inherited property override merges name by name, an override that narrows the inherited `type` (such as to `null`), the length of an inherited closed tuple under --allof-merge-mode none, the `$ref` siblings of an `allOf` member where the dialect reads them, an `allOf` member that names a `$ref` alias, the null branch of an `allOf` member's `anyOf` or `oneOf`, and no `enum` value that the merged `type` rejects. Without it these keep the output of 0.88.0",
      "dest": "intersect_combined_schema_keywords",
      "flags": [
        "--intersect-combined-schema-keywords",
        "--no-intersect-combined-schema-keywords"
      ],
      "metavar": null,
      "name": "--intersect-combined-schema-keywords",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Write an enum as a plain Enum where the value base of --use-specialized-enum or --use-subclass-enum would change a member value, such as 2.5 in an IntEnum; without it the base follows the schema type, as in 0.86.0",
      "dest": "keep_enum_member_values",
      "flags": [
        "--keep-enum-member-values",
        "--no-keep-enum-member-values"
      ],
      "metavar": null,
      "name": "--keep-enum-member-values",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "date",
        "PastDate",
        "FutureDate"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Choose Date class between PastDate, FutureDate or date. (Pydantic v2 only) Each output model has its default mapping.",
      "dest": "output_date_class",
      "flags": [
        "--output-date-class"
      ],
      "metavar": null,
      "name": "--output-date-class",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "datetime",
        "AwareDatetime",
        "NaiveDatetime",
        "PastDatetime",
        "FutureDatetime"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Choose Datetime class between AwareDatetime, NaiveDatetime, PastDatetime, FutureDatetime or datetime. Each output model has its default mapping (for example pydantic: datetime, dataclass: str, ...)",
      "dest": "output_datetime_class",
      "flags": [
        "--output-datetime-class"
      ],
      "metavar": null,
      "name": "--output-datetime-class",
      "nargs": null,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read a `const` beside an `enum` as JSON Schema does: a value whose schema names the enum is typed by the const that narrows it (`Literal[Enum.member]`, a Literal or None) instead of the enum class that lists the values the const excludes, and under --use-single-value-enum-as-const an `enum` that admits its `const` is read as that `const` instead of an Enum, except one with `nullable: true` and a value other than null",
      "dest": "read_const_beside_enum",
      "flags": [
        "--read-const-beside-enum",
        "--no-read-const-beside-enum"
      ],
      "metavar": null,
      "name": "--read-const-beside-enum",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place, so it types the extra keys of a model and makes an object without properties a map",
      "dest": "read_unevaluated_properties",
      "flags": [
        "--read-unevaluated-properties",
        "--no-read-unevaluated-properties"
      ],
      "metavar": null,
      "name": "--read-unevaluated-properties",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": [
        "str",
        "bytes",
        "int",
        "float",
        "bool"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use strict types",
      "dest": "strict_types",
      "flags": [
        "--strict-types"
      ],
      "metavar": null,
      "name": "--strict-types",
      "nargs": "+",
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Override default type mappings. Format: \"type+format=target\" (e.g., \"string+binary=string\" to map binary format to string type) or \"format=target\" (e.g., \"binary=string\"). Can be specified multiple times.",
      "dest": "type_mappings",
      "flags": [
        "--type-mappings"
      ],
      "metavar": null,
      "name": "--type-mappings",
      "nargs": "+",
      "required": false,
      "type": "str"
    },
    {
      "action": "StoreAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Replace schema model types with custom Python types. Format: JSON object mapping model names to Python import paths. Model-level: '{\"CustomType\": \"my_app.types.MyType\"}' replaces all references. Scoped: '{\"User.field\": \"my_app.Type\"}' replaces specific field only.",
      "dest": "type_overrides",
      "flags": [
        "--type-overrides"
      ],
      "metavar": null,
      "name": "--type-overrides",
      "nargs": null,
      "required": false,
      "type": "str"
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Make every --type-overrides value of a field replace the field's whole type: a class path replaces an object map itself, as an annotation already does (dict for builtins.dict, not dict[str, dict]), and the item counts of an array and the property counts of a map it replaces stay only where the new type counts the same (a sequence its items, a mapping class its keys), with a warning otherwise; without it a class path keeps the dict of a map around the class and every override keeps those counts whatever its type, as in 0.89.0",
      "dest": "type_overrides_replace_whole_type",
      "flags": [
        "--type-overrides-replace-whole-type",
        "--no-type-overrides-replace-whole-type"
      ],
      "metavar": null,
      "name": "--type-overrides-replace-whole-type",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use typing.Annotated for Field(). Also, `--field-constraints` option will be enabled. Will become default for Pydantic v2 in a future version.",
      "dest": "use_annotated",
      "flags": [
        "--use-annotated",
        "--no-use-annotated"
      ],
      "metavar": null,
      "name": "--use-annotated",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate TypedDict with PEP 728 closed=True/extra_items for additionalProperties constraints. Use --no-use-closed-typed-dict for type checkers that don't yet support PEP 728 (e.g., mypy).",
      "dest": "use_closed_typed_dict",
      "flags": [
        "--use-closed-typed-dict",
        "--no-use-closed-typed-dict"
      ],
      "metavar": null,
      "name": "--use-closed-typed-dict",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use condecimal instead of confloat for float/number fields with multipleOf constraint (Pydantic only). Avoids floating-point precision issues in validation.",
      "dest": "use_decimal_for_multiple_of",
      "flags": [
        "--use-decimal-for-multiple-of"
      ],
      "metavar": null,
      "name": "--use-decimal-for-multiple-of",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --use-decimal-for-multiple-of, also write Decimal for a number with multipleOf in the field forms (--field-constraints, --use-annotated), with the constraints in Field(), and make the Decimal strict under --strict-types float (Pydantic only)",
      "dest": "use_decimal_in_field_forms",
      "flags": [
        "--use-decimal-in-field-forms",
        "--no-use-decimal-in-field-forms"
      ],
      "metavar": null,
      "name": "--use-decimal-in-field-forms",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Write a format: byte string with pattern, minLength or maxLength in the field forms (--field-constraints, --use-annotated) as Annotated[str, Field(...), EncodedStr(encoder=Base64Encoder)], so Pydantic 2.10 or later checks the constraints on the base64 text, as the schema does; without it Annotated[Base64Str, Field(...)] and an optional Base64Str with Field(...) check them on the decoded text, as in 0.88.0 (Pydantic v2 only)",
      "dest": "use_encoded_str_for_constrained_base64",
      "flags": [
        "--use-encoded-str-for-constrained-base64",
        "--no-use-encoded-str-for-constrained-base64"
      ],
      "metavar": null,
      "name": "--use-encoded-str-for-constrained-base64",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use generic container types for type hinting (typing.Sequence, typing.Mapping). If `--use-standard-collections` option is set, then import from collections.abc instead of typing",
      "dest": "use_generic_container_types",
      "flags": [
        "--use-generic-container-types"
      ],
      "metavar": null,
      "name": "--use-generic-container-types",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use the Non{Positive,Negative}{FloatInt} types instead of the corresponding con* constrained types.",
      "dest": "use_non_positive_negative_number_constrained_types",
      "flags": [
        "--use-non-positive-negative-number-constrained-types"
      ],
      "metavar": null,
      "name": "--use-non-positive-negative-number-constrained-types",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use object instead of Any for unspecified JSON Schema object and array values",
      "dest": "use_object_type",
      "flags": [
        "--use-object-type",
        "--no-use-object-type"
      ],
      "metavar": null,
      "name": "--use-object-type",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "use pendulum instead of datetime",
      "dest": "use_pendulum",
      "flags": [
        "--use-pendulum"
      ],
      "metavar": null,
      "name": "--use-pendulum",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Pydantic output only: write a type alias whose whole value is a model that names itself as `Alias: TypeAlias = Node`, which Pydantic builds for every model that uses it; without it the alias is `TypeAliasType(\"Alias\", Node)` (or `type Alias = Node`) as in 0.89.0, which Pydantic 2 refuses once two models use it. The alias then has no entry of its own in `model_json_schema()` `$defs`",
      "dest": "use_plain_alias_for_recursive_models",
      "flags": [
        "--use-plain-alias-for-recursive-models",
        "--no-use-plain-alias-for-recursive-models"
      ],
      "metavar": null,
      "name": "--use-plain-alias-for-recursive-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use type alias format for RootModel (e.g., Foo = RootModel[Bar]) instead of class inheritance (Pydantic v2 only)",
      "dest": "use_root_model_type_alias",
      "flags": [
        "--use-root-model-type-alias"
      ],
      "metavar": null,
      "name": "--use-root-model-type-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Type an object map, an object without properties whose keys patternProperties or propertyNames constrain, as one dict whose keys are those of every key class and whose value is the union of their values, beside the null and the other types of its type array",
      "dest": "use_single_dict_for_object_maps",
      "flags": [
        "--use-single-dict-for-object-maps",
        "--no-use-single-dict-for-object-maps"
      ],
      "metavar": null,
      "name": "--use-single-dict-for-object-maps",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Treat `enum` with a single value as `const` with that value, which JSON Schema defines as equal: oneOf/anyOf branches such as {\"type\": \"string\", \"enum\": [\"low\"]} merge into one Enum when there are two or more and all hold values of one JSON type, otherwise each branch is typed as written, and a schema with one enum value is typed Literal[...] instead of a one-member Enum, except one with `nullable: true` and a value other than null, which is read as written",
      "dest": "use_single_value_enum_as_const",
      "flags": [
        "--use-single-value-enum-as-const",
        "--no-use-single-value-enum-as-const"
      ],
      "metavar": null,
      "name": "--use-single-value-enum-as-const",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use specialized Enum class (StrEnum, IntEnum). Requires --target-python-version 3.11+",
      "dest": "use_specialized_enum",
      "flags": [
        "--use-specialized-enum",
        "--no-use-specialized-enum"
      ],
      "metavar": null,
      "name": "--use-specialized-enum",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use standard collections for type hinting (list, dict). Default: enabled",
      "dest": "use_standard_collections",
      "flags": [
        "--use-standard-collections",
        "--no-use-standard-collections"
      ],
      "metavar": null,
      "name": "--use-standard-collections",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use Python standard library types for string formats (UUID, IPv4Address, etc.) instead of str. Affects dataclass, msgspec, TypedDict output. Pydantic already uses these types by default.",
      "dest": "use_standard_primitive_types",
      "flags": [
        "--use-standard-primitive-types",
        "--no-use-standard-primitive-types"
      ],
      "metavar": null,
      "name": "--use-standard-primitive-types",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate TypedDict with total=False and mark required fields with Required",
      "dest": "use_total_false_for_typed_dict",
      "flags": [
        "--use-total-false-for-typed-dict"
      ],
      "metavar": null,
      "name": "--use-total-false-for-typed-dict",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate tuple types for positional arrays that no other item can follow: a closed prefixItems tail (items, unevaluatedItems or additionalItems false) whose length the length keywords fix, so that each position keeps its own type",
      "dest": "use_tuple_for_closed_arrays",
      "flags": [
        "--use-tuple-for-closed-arrays",
        "--no-use-tuple-for-closed-arrays"
      ],
      "metavar": null,
      "name": "--use-tuple-for-closed-arrays",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate tuple types for arrays with items array syntax when minItems equals maxItems equals items length",
      "dest": "use_tuple_for_fixed_items",
      "flags": [
        "--use-tuple-for-fixed-items",
        "--no-use-tuple-for-fixed-items"
      ],
      "metavar": null,
      "name": "--use-tuple-for-fixed-items",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Generate tuple types for fixed-length arrays with a single items schema",
      "dest": "use_tuple_for_fixed_length_arrays",
      "flags": [
        "--use-tuple-for-fixed-length-arrays"
      ],
      "metavar": null,
      "name": "--use-tuple-for-fixed-length-arrays",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use TypeAlias instead of root models (experimental)",
      "dest": "use_type_alias",
      "flags": [
        "--use-type-alias"
      ],
      "metavar": null,
      "name": "--use-type-alias",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use TypeAliasType for type aliases on Python 3.10 and 3.11 (implies --use-type-alias; experimental)",
      "dest": "use_type_alias_type",
      "flags": [
        "--use-type-alias-type"
      ],
      "metavar": null,
      "name": "--use-type-alias-type",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "With --use-typed-nullable-map-values, also type the map values of type arrays that list object beside other types, such as [object, string], as dict[str, int] | str instead of dict[str, Any] | str",
      "dest": "use_typed_map_values_beside_other_types",
      "flags": [
        "--use-typed-map-values-beside-other-types",
        "--no-use-typed-map-values-beside-other-types"
      ],
      "metavar": null,
      "name": "--use-typed-map-values-beside-other-types",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Type the values of nullable maps, schemas whose type array lists object alone or with null, such as [object, null] or [object], with additionalProperties, as their schema says, with a model for object values. Without it the 0.83.0 form is kept, dict[str, Any] | None, or dict[str, Any] without null.",
      "dest": "use_typed_nullable_map_values",
      "flags": [
        "--use-typed-nullable-map-values"
      ],
      "metavar": null,
      "name": "--use-typed-nullable-map-values",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Use | operator for Union type (PEP 604). Default: enabled",
      "dest": "use_union_operator",
      "flags": [
        "--use-union-operator",
        "--no-use-union-operator"
      ],
      "metavar": null,
      "name": "--use-union-operator",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "define field type as `set` when the field attribute has `uniqueItems`",
      "dest": "use_unique_items_as_set",
      "flags": [
        "--use-unique-items-as-set",
        "--no-use-unique-items-as-set"
      ],
      "metavar": null,
      "name": "--use-unique-items-as-set",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "BooleanOptionalAction",
      "category": "Typing Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Under --use-unique-items-as-set, decide each set once the item types are final (after --collapse-root-models, --type-overrides and every module) and write a set only where every value of its items hashes by value (scalars, enums, tuples and frozen sets of them, frozen models); an array of models that hash only by identity, of Any or of containers stays a list. Deduplication and --reuse-model also keep apart models whose arrays differ in uniqueItems; without it the sets are decided before root models collapse, set item models hash by identity and such models merge, as in 0.89.0",
      "dest": "use_unique_items_as_set_by_value",
      "flags": [
        "--use-unique-items-as-set-by-value",
        "--no-use-unique-items-as-set-by-value"
      ],
      "metavar": null,
      "name": "--use-unique-items-as-set-by-value",
      "nargs": 0,
      "required": false,
      "type": null
    }
  ],
  "options_by_category": {
    "Base Options": [
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Write a separate JSON map from generated models and fields to the JSON Pointer locations of their source schemas; module and class name identify a model.",
        "dest": "emit_model_metadata",
        "flags": [
          "--emit-model-metadata"
        ],
        "metavar": null,
        "name": "--emit-model-metadata",
        "nargs": null,
        "required": false,
        "type": "Path"
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "The encoding of input and output (default: utf-8)",
        "dest": "encoding",
        "flags": [
          "--encoding"
        ],
        "metavar": null,
        "name": "--encoding",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Map external $ref file paths to Python import packages instead of generating duplicate classes. Accepts one or more mappings after a single flag. Format: \"path/to/schema.yaml=mypackage.models\". When a $ref points to a mapped file, an import statement is generated instead of a class definition.",
        "dest": "external_ref_mapping",
        "flags": [
          "--external-ref-mapping"
        ],
        "metavar": "FILE_PATH=PYTHON_PACKAGE",
        "name": "--external-ref-mapping",
        "nargs": "+",
        "required": false,
        "type": "_external_ref_mapping"
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": [
          "auto",
          "httpx",
          "httpx2"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Select the HTTP client backend. 'auto' (default) selects stable HTTPX when its client module is installed and only selects experimental HTTPX2 when that module is absent. 'httpx' and 'httpx2' require that exact backend. Explicit selections and paired dependency errors do not fall back.",
        "dest": "http_backend",
        "flags": [
          "--http-backend"
        ],
        "metavar": null,
        "name": "--http-backend",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read a $ref as its target alone where the schema version ignores the keywords beside it (JSON Schema draft 4, 6 and 7, OpenAPI 3.0, AsyncAPI 2), as those versions specify: a $ref with a sibling format: binary takes the referenced type instead of bytes, a sibling uniqueItems makes no set, and a sibling description or default is left out too. Versions that apply the keywords beside a $ref (2019-09 and later, OpenAPI 3.1 and later, AsyncAPI 3) read them as before. Without it the keywords beside such a $ref overlay its target, as in 0.88.0. The version is the one --read-schema-version-per-document reads, else that of the document parsed.",
        "dest": "ignore_ref_siblings_by_schema_version",
        "flags": [
          "--ignore-ref-siblings-by-schema-version",
          "--no-ignore-ref-siblings-by-schema-version"
        ],
        "metavar": null,
        "name": "--ignore-ref-siblings-by-schema-version",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Input file/directory (default: stdin)",
        "dest": "input",
        "flags": [
          "--input"
        ],
        "metavar": null,
        "name": "--input",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": [
          "auto",
          "openapi",
          "asyncapi",
          "jsonschema",
          "mcp-tools",
          "xmlschema",
          "protobuf",
          "avro",
          "json",
          "yaml",
          "dict",
          "csv",
          "graphql"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Input file type (default: auto). Use 'jsonschema', 'openapi', 'asyncapi', 'graphql', 'mcp-tools', 'xmlschema', 'protobuf', or 'avro' for schema definitions. Use 'json', 'yaml', or 'csv' for raw sample data to infer a schema automatically.",
        "dest": "input_file_type",
        "flags": [
          "--input-file-type"
        ],
        "metavar": null,
        "name": "--input-file-type",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "AppendAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Python import path or file path to a Pydantic v2 model or schema dict (e.g., 'mypackage.module:ClassName', './models.py:ClassName', or 'mypackage.schemas:SCHEMA_DICT'). Can be specified multiple times for related models with inheritance. For dict input, --input-file-type is required. Cannot be used with --input or --url.",
        "dest": "input_model",
        "flags": [
          "--input-model"
        ],
        "metavar": "MODULE_OR_PATH:NAME",
        "name": "--input-model",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": [
          "regenerate-all",
          "reuse-foreign",
          "reuse-all"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for referenced types in --input-model. 'regenerate-all': Regenerate all types. 'reuse-foreign': Reuse types from different families (Enum, etc.), regenerate same-family. 'reuse-all': Reuse all referenced types via import. If not specified, defaults to regenerate-all behavior.",
        "dest": "input_model_ref_strategy",
        "flags": [
          "--input-model-ref-strategy"
        ],
        "metavar": null,
        "name": "--input-model-ref-strategy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Output file (default: stdout)",
        "dest": "output",
        "flags": [
          "--output"
        ],
        "metavar": null,
        "name": "--output",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": [
          "standard-py310-20260619",
          "standard-py311-20260619",
          "standard-py312-20260619",
          "standard-py313-20260619",
          "standard-py314-20260619",
          "practical-py310-20260619",
          "practical-py311-20260619",
          "practical-py312-20260619",
          "practical-py313-20260619",
          "practical-py314-20260619",
          "standard-py310-20260826",
          "standard-py311-20260826",
          "standard-py312-20260826",
          "standard-py313-20260826",
          "standard-py314-20260826",
          "practical-py310-20260826",
          "practical-py311-20260826",
          "practical-py312-20260826",
          "practical-py313-20260826",
          "practical-py314-20260826",
          "standard-py310-20260909",
          "standard-py311-20260909",
          "standard-py312-20260909",
          "standard-py313-20260909",
          "standard-py314-20260909",
          "practical-py310-20260909",
          "practical-py311-20260909",
          "practical-py312-20260909",
          "practical-py313-20260909",
          "practical-py314-20260909",
          "standard-py310-20261015",
          "standard-py311-20261015",
          "standard-py312-20261015",
          "standard-py313-20261015",
          "standard-py314-20261015",
          "standard-py315-20261015",
          "practical-py310-20261015",
          "practical-py311-20261015",
          "practical-py312-20261015",
          "practical-py313-20261015",
          "practical-py314-20261015",
          "practical-py315-20261015",
          "standard-py310-20261017",
          "standard-py311-20261017",
          "standard-py312-20261017",
          "standard-py313-20261017",
          "standard-py314-20261017",
          "standard-py315-20261017",
          "practical-py310-20261017",
          "practical-py311-20261017",
          "practical-py312-20261017",
          "practical-py313-20261017",
          "practical-py314-20261017",
          "practical-py315-20261017",
          "standard-py310-20261027",
          "standard-py311-20261027",
          "standard-py312-20261027",
          "standard-py313-20261027",
          "standard-py314-20261027",
          "standard-py315-20261027",
          "practical-py310-20261027",
          "practical-py311-20261027",
          "practical-py312-20261027",
          "practical-py313-20261027",
          "practical-py314-20261027",
          "practical-py315-20261027",
          "standard-py310-20261104",
          "standard-py311-20261104",
          "standard-py312-20261104",
          "standard-py313-20261104",
          "standard-py314-20261104",
          "standard-py315-20261104",
          "practical-py310-20261104",
          "practical-py311-20261104",
          "practical-py312-20261104",
          "practical-py313-20261104",
          "practical-py314-20261104",
          "practical-py315-20261104"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Apply an immutable built-in option preset. Preset names include the target Python version so generated syntax is pinned.",
        "dest": "preset",
        "flags": [
          "--preset"
        ],
        "metavar": null,
        "name": "--preset",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Resolve a plain-name $dynamicRef that its dynamic scope does not bind from the $dynamicAnchors its document declares, the first in document order when several declare the name, and a $ref or $dynamicRef to a plain name several schemas of a document declare to the first of them; without it the $dynamicRef takes the first anchor the parse has met, so the answer depends on the order of the schemas, and the $ref the last declaration, as in 0.89.0.",
        "dest": "read_dynamic_anchors_in_document_order",
        "flags": [
          "--read-dynamic-anchors-in-document-order",
          "--no-read-dynamic-anchors-in-document-order"
        ],
        "metavar": null,
        "name": "--read-dynamic-anchors-in-document-order",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read the ~0 and ~1 escapes and the percent-encoded octets of a $ref JSON pointer as the characters they encode, as JSON Pointer and URI fragments do, so #/$defs/a~1b, and #/$defs/Foo Bar written with its space percent-encoded, name the models of the definitions a/b and Foo Bar; without it such a reference gets a copy of its target named after the escaped text (A1b, Foo20Bar), as in 0.89.0.",
        "dest": "read_escaped_ref_pointers",
        "flags": [
          "--read-escaped-ref-pointers",
          "--no-read-escaped-ref-pointers"
        ],
        "metavar": null,
        "name": "--read-escaped-ref-pointers",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "With --input-model, read the fields of a Pydantic dataclass by their aliases, as those of a model, so a field with an alias keeps its Python type (deque[int], frozenset[str], ...) like one without; without it an aliased field of a Pydantic dataclass takes the type its JSON Schema spells (list[int]), as in 0.89.0",
        "dest": "read_input_model_dataclass_fields_by_alias",
        "flags": [
          "--read-input-model-dataclass-fields-by-alias",
          "--no-read-input-model-dataclass-fields-by-alias"
        ],
        "metavar": null,
        "name": "--read-input-model-dataclass-fields-by-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read each document by the schema version it declares ($schema, or the openapi or asyncapi field); a referenced document that declares none takes the version of the document whose reference loads it. The keywords beside a $ref and the features of the version (const, prefixItems, $id, $defs) then apply as each document's version says: a 2020-12 file of a directory read after a draft-07 one keeps the maximum beside an allOf $ref, an OpenAPI 3.1 document reads $ref siblings as JSON Schema 2020-12 does, and a draft-07 document sets no property-count rule for a minProperties beside an allOf $ref. Without it the version of the document parsed first applies to every document, as in 0.88.0. An explicit --schema-version gives every document its version; the schema validators then read an OpenAPI or AsyncAPI document by it only with the option, else as draft 7.",
        "dest": "read_schema_version_per_document",
        "flags": [
          "--read-schema-version-per-document",
          "--no-read-schema-version-per-document"
        ],
        "metavar": null,
        "name": "--read-schema-version-per-document",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Schema version. Valid values depend on input type: JsonSchema: auto, draft-04, draft-06, draft-07, 2019-09, 2020-12. OpenAPI: auto, 3.0, 3.1, 3.2. AsyncAPI: auto, 2.0, 3.0. XMLSchema: auto, 1.0, 1.1. Protobuf: auto, proto2, proto3, 2023. (default: auto - detected from $schema, openapi/asyncapi field, XML Schema versioning attributes, or Protobuf syntax/edition)",
        "dest": "schema_version",
        "flags": [
          "--schema-version"
        ],
        "metavar": null,
        "name": "--schema-version",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": [
          "lenient",
          "strict"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Schema version validation mode. 'lenient': accept all features regardless of version (default). 'strict': warn on features outside declared/detected version.",
        "dest": "schema_version_mode",
        "flags": [
          "--schema-version-mode"
        ],
        "metavar": null,
        "name": "--schema-version-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Base Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Input file URL. `--input` is ignored when `--url` is used. For HTTP(S), datamodel-code-generator[http] remains the stable HTTPX backend and is not deprecated, while datamodel-code-generator[httpx2] is experimental. The default --http-backend auto policy selects stable HTTPX when its client module is installed and selects HTTPX2 only when that module is absent. Select --http-backend httpx2 to require the experimental backend. Explicit selections and paired dependency errors do not fall back.",
        "dest": "url",
        "flags": [
          "--url"
        ],
        "metavar": null,
        "name": "--url",
        "nargs": null,
        "required": false,
        "type": null
      }
    ],
    "Field Customization": [
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Alias mapping as inline JSON or a JSON file path for renaming fields. Format: {'<schema_field>': '<python_name>'} - the schema field name becomes the Pydantic alias. Supports hierarchical formats: Flat: {'id': 'id_'} applies to all occurrences. Scoped: {'User.name': 'user_name'} applies to specific class. Priority: scoped > flat. Multiple aliases (Pydantic v2 only): {'field': ['alt1', 'alt2']} uses AliasChoices for validation. Example: {'User.name': 'user_name', 'id': 'id_'} generates `id_: ... = Field(alias='id')`.",
        "dest": "aliases",
        "flags": [
          "--aliases"
        ],
        "metavar": null,
        "name": "--aliases",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Capitalize field names on enum",
        "dest": "capitalise_enum_members",
        "flags": [
          "--capitalise-enum-members",
          "--capitalize-enum-members"
        ],
        "metavar": null,
        "name": "--capitalize-enum-members",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --capitalise-enum-members, capitalize also the number a member takes when its capitalized name is taken (A_1 instead of a_1 for the members 'a' and 'A'); without it the numbered name stays as written, as in 0.88.0",
        "dest": "capitalise_numbered_enum_members",
        "flags": [
          "--capitalise-numbered-enum-members",
          "--no-capitalise-numbered-enum-members",
          "--capitalize-numbered-enum-members",
          "--no-capitalize-numbered-enum-members"
        ],
        "metavar": null,
        "name": "--capitalize-numbered-enum-members",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Default value overrides as inline JSON or a JSON file path. Supports hierarchical formats: Flat: {'field': value} applies to all occurrences. Scoped: {'ClassName.field': value} applies to specific class. Priority: scoped > flat. Note: Scoped keys use the generated class name for JSON Schema/OpenAPI. Required fields remain required unless --use-default is also specified. Example: {'User.status': 'active', 'page': 1, 'limit': 10}",
        "dest": "default_values",
        "flags": [
          "--default-values"
        ],
        "metavar": null,
        "name": "--default-values",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": [
          "decimal",
          "enum"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Deserialize serialized schema defaults for selected generated types. Supported values: decimal, enum.",
        "dest": "deserialize_default_values",
        "flags": [
          "--deserialize-default-values"
        ],
        "metavar": null,
        "name": "--deserialize-default-values",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set field name when enum value is empty (default:  `_`)",
        "dest": "empty_enum_field_name",
        "flags": [
          "--empty-enum-field-name"
        ],
        "metavar": null,
        "name": "--empty-enum-field-name",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": [
          "allow",
          "ignore",
          "forbid"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set the generated models to allow, forbid, or ignore extra fields.",
        "dest": "extra_fields",
        "flags": [
          "--extra-fields"
        ],
        "metavar": null,
        "name": "--extra-fields",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use field constraints and not con* annotations",
        "dest": "field_constraints",
        "flags": [
          "--field-constraints"
        ],
        "metavar": null,
        "name": "--field-constraints",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Add extra keys to field parameters",
        "dest": "field_extra_keys",
        "flags": [
          "--field-extra-keys"
        ],
        "metavar": null,
        "name": "--field-extra-keys",
        "nargs": "+",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Add extra keys with `x-` prefix to field parameters. The extra keys are stripped of the `x-` prefix.",
        "dest": "field_extra_keys_without_x_prefix",
        "flags": [
          "--field-extra-keys-without-x-prefix"
        ],
        "metavar": null,
        "name": "--field-extra-keys-without-x-prefix",
        "nargs": "+",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Add all keys to field parameters",
        "dest": "field_include_all_keys",
        "flags": [
          "--field-include-all-keys"
        ],
        "metavar": null,
        "name": "--field-include-all-keys",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": [
          "rename-field",
          "rename-type"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for handling field name and type name collisions (Pydantic v2 only). 'rename-field': rename field with suffix and add alias (default). 'rename-type': rename type class with suffix to preserve field name.",
        "dest": "field_type_collision_strategy",
        "flags": [
          "--field-type-collision-strategy"
        ],
        "metavar": null,
        "name": "--field-type-collision-strategy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Name inline oneOf/anyOf branch models after the value of their tag field (Pet + type: \"cat\" -> PetCat) instead of Pet1, Pet2",
        "dest": "infer_union_variant_names",
        "flags": [
          "--infer-union-variant-names"
        ],
        "metavar": null,
        "name": "--infer-union-variant-names",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Give a variant that several discriminated unions tag differently (for example one by a mapping key, one by the schema name) every tag they give it, so each union decodes the documents its discriminator selects; such a union also accepts the tags the other unions give the variant. A variant keeps the tag of the first union, as without the option (as in 0.88.0), where a union listing it would then give two of its variants one tag, and msgspec Structs, which take one tag, keep it too.",
        "dest": "merge_shared_variant_tags",
        "flags": [
          "--merge-shared-variant-tags",
          "--no-merge-shared-variant-tags"
        ],
        "metavar": null,
        "name": "--merge-shared-variant-tags",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Name the classes an allOf gives the branches of a oneOf or anyOf it holds after the branch: the holder and the branch's tag (with --infer-union-variant-names or --use-tag-as-union-variant-name), its $ref class or its position (EventCreated, or Event1), the branch-only base after the class (EventCreatedBase) and the shared part after the holder (EventBase); without it every class is numbered after the holder (Event1 to Event5), as in 0.89.0",
        "dest": "name_allof_union_members_after_branches",
        "flags": [
          "--name-allof-union-members-after-branches",
          "--no-name-allof-union-members-after-branches"
        ],
        "metavar": null,
        "name": "--name-allof-union-members-after-branches",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Do not add a field alias. E.g., if --snake-case-field is used along with a base class, which has an\n            alias_generator",
        "dest": "no_alias",
        "flags": [
          "--no-alias"
        ],
        "metavar": null,
        "name": "--no-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreConstAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable schema default value deserialization.",
        "dest": "deserialize_default_values",
        "flags": [
          "--no-deserialize-default-values"
        ],
        "metavar": null,
        "name": "--no-deserialize-default-values",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Do not write a constraint again beside a type that already enforces it: the bound of a zero-bound class such as NonNegativeInt, and the length and number constraints a const or enum Literal meets by its values",
        "dest": "omit_redundant_constraints",
        "flags": [
          "--omit-redundant-constraints",
          "--no-omit-redundant-constraints"
        ],
        "metavar": null,
        "name": "--omit-redundant-constraints",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set delimiter to convert to snake case. This option only can be used with --snake-case-field (default: `_` )",
        "dest": "original_field_name_delimiter",
        "flags": [
          "--original-field-name-delimiter"
        ],
        "metavar": null,
        "name": "--original-field-name-delimiter",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read minLength, maxLength and pattern for strings only and minItems, maxItems and uniqueItems for arrays only, as JSON Schema does, so a maxLength beside an array leaves the list unbounded and a maxItems beside a string leaves the string unbounded; without it a declared array writes minLength/maxLength and a declared string minItems/maxItems as their length bounds, as in 0.88.0",
        "dest": "read_length_keywords_by_type",
        "flags": [
          "--read-length-keywords-by-type",
          "--no-read-length-keywords-by-type"
        ],
        "metavar": null,
        "name": "--read-length-keywords-by-type",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "msgspec.Struct output only: decide whether the int member of a union with a number member drops its Meta bounds on the bounds the schema writes, exactly; without it a number member's bound past 2**53 is read as the float it is written as, so the int member can keep a bound that rejects an integer the number member accepts, as in 0.88.0",
        "dest": "read_msgspec_union_bounds_exactly",
        "flags": [
          "--read-msgspec-union-bounds-exactly",
          "--no-read-msgspec-union-bounds-exactly"
        ],
        "metavar": null,
        "name": "--read-msgspec-union-bounds-exactly",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Remove field name prefix if it has a special meaning e.g. underscores",
        "dest": "remove_special_field_name_prefix",
        "flags": [
          "--remove-special-field-name-prefix"
        ],
        "metavar": null,
        "name": "--remove-special-field-name-prefix",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Serialization alias mapping as inline JSON or a JSON file path for Pydantic v2. Format: {'<schema_field>': '<serialization_alias>'}. Supports hierarchical formats: Flat: {'name': 'fullName'} applies to all occurrences. Scoped: {'User.name': 'fullName'} applies to specific class.",
        "dest": "serialization_aliases",
        "flags": [
          "--serialization-aliases"
        ],
        "metavar": null,
        "name": "--serialization-aliases",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": true,
        "deprecated_message": "--set-default-enum-member is deprecated. Use --deserialize-default-values enum instead.",
        "description": "Deprecated: --set-default-enum-member is deprecated. Use --deserialize-default-values enum instead.",
        "dest": "set_default_enum_member",
        "flags": [
          "--set-default-enum-member"
        ],
        "metavar": null,
        "name": "--set-default-enum-member",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Change camel-case field name to snake-case",
        "dest": "snake_case_field",
        "flags": [
          "--snake-case-field",
          "--no-snake-case-field"
        ],
        "metavar": null,
        "name": "--snake-case-field",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set field name prefix when first character can't be used as Python field name (default:  `field`)",
        "dest": "special_field_name_prefix",
        "flags": [
          "--special-field-name-prefix"
        ],
        "metavar": null,
        "name": "--special-field-name-prefix",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set use_attribute_docstrings=True in Pydantic v2 ConfigDict",
        "dest": "use_attribute_docstrings",
        "flags": [
          "--use-attribute-docstrings"
        ],
        "metavar": null,
        "name": "--use-attribute-docstrings",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use enum member literals in discriminator fields instead of string literals",
        "dest": "use_enum_values_in_discriminator",
        "flags": [
          "--use-enum-values-in-discriminator"
        ],
        "metavar": null,
        "name": "--use-enum-values-in-discriminator",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use schema description to populate field docstring",
        "dest": "use_field_description",
        "flags": [
          "--use-field-description",
          "--no-use-field-description"
        ],
        "metavar": null,
        "name": "--use-field-description",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use schema example to populate field docstring",
        "dest": "use_field_description_example",
        "flags": [
          "--use-field-description-example",
          "--no-use-field-description-example"
        ],
        "metavar": null,
        "name": "--use-field-description-example",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use schema description to populate field docstring as inline docstring",
        "dest": "use_inline_field_description",
        "flags": [
          "--use-inline-field-description"
        ],
        "metavar": null,
        "name": "--use-inline-field-description",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Give an object $ref with sibling keywords one model per place it is written, which every unchanged copy of that place shares, and parse such chains without nesting; without it each path that reaches the place gets a model of its own (N(N-1)/2 site models for a chain of N definitions), as in 0.89.0.",
        "dest": "use_one_model_per_ref_site",
        "flags": [
          "--use-one-model-per-ref-site",
          "--no-use-one-model-per-ref-site"
        ],
        "metavar": null,
        "name": "--use-one-model-per-ref-site",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use schema description to populate class docstring",
        "dest": "use_schema_description",
        "flags": [
          "--use-schema-description",
          "--no-use-schema-description"
        ],
        "metavar": null,
        "name": "--use-schema-description",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use serialization_alias instead of alias for field aliasing (Pydantic v2 only). This allows setting values using the Pythonic field name while serializing to the original name.",
        "dest": "use_serialization_alias",
        "flags": [
          "--use-serialization-alias"
        ],
        "metavar": null,
        "name": "--use-serialization-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use single-line docstrings when the content fits on one line",
        "dest": "use_single_line_docstring",
        "flags": [
          "--use-single-line-docstring",
          "--no-use-single-line-docstring"
        ],
        "metavar": null,
        "name": "--use-single-line-docstring",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Give an allOf of $ref members whose other parts add constraints, an enum or a type its own model of the values all parts admit, instead of the referenced type, which leaves the added assertions out",
        "dest": "use_site_models_for_constrained_refs",
        "flags": [
          "--use-site-models-for-constrained-refs",
          "--no-use-site-models-for-constrained-refs"
        ],
        "metavar": null,
        "name": "--use-site-models-for-constrained-refs",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Name inline oneOf/anyOf branch models after their tag: what --infer-union-variant-names does, skipping tags whose class names collide, plus single-branch unions (type: \"exec\" -> LocalShellActionExec) and single-key branches ({\"granular\": ...} -> AskForApprovalGranular)",
        "dest": "use_tag_as_union_variant_name",
        "flags": [
          "--use-tag-as-union-variant-name"
        ],
        "metavar": null,
        "name": "--use-tag-as-union-variant-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "use titles as class names of models",
        "dest": "use_title_as_name",
        "flags": [
          "--use-title-as-name",
          "--no-use-title-as-name"
        ],
        "metavar": null,
        "name": "--use-title-as-name",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "General Options": [
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "error",
          "minimal-prefix",
          "full-prefix"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for name collisions when using --all-exports-scope=recursive. 'error': raise an error (default). 'minimal-prefix': add module prefix only to colliding names. 'full-prefix': add full module path prefix to colliding names.",
        "dest": "all_exports_collision_strategy",
        "flags": [
          "--all-exports-collision-strategy"
        ],
        "metavar": null,
        "name": "--all-exports-collision-strategy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "children",
          "recursive"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate __all__ in __init__.py with re-exports. 'children': export from direct child modules only. 'recursive': export from all descendant modules.",
        "dest": "all_exports_scope",
        "flags": [
          "--all-exports-scope"
        ],
        "metavar": null,
        "name": "--all-exports-scope",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Run every named job from pyproject.toml in declaration order (experimental).",
        "dest": "all_jobs",
        "flags": [
          "--all-jobs"
        ],
        "metavar": null,
        "name": "--all-jobs",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Allow HTTP(S) schema requests to private, loopback, link-local, or otherwise non-public network hosts. By default these targets are blocked to reduce server-side request forgery (SSRF) risk. If a trusted internal schema endpoint is blocked, verify the URL and pass this option; otherwise use a local schema file or public endpoint. Pass --no-allow-private-network to override a configuration file that enables it.",
        "dest": "allow_private_network",
        "flags": [
          "--allow-private-network",
          "--no-allow-private-network"
        ],
        "metavar": null,
        "name": "--allow-private-network",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Allow fetching remote $ref references over HTTP/HTTPS. Currently remote fetching is allowed by default but emits a deprecation warning. Pass --allow-remote-refs to opt in without warning, or --no-allow-remote-refs to block remote fetching. In a future version, remote fetching will be disabled by default.",
        "dest": "allow_remote_refs",
        "flags": [
          "--allow-remote-refs",
          "--no-allow-remote-refs"
        ],
        "metavar": null,
        "name": "--allow-remote-refs",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Verify generated files are up-to-date without modifying them. Exits with code 1 if differences found, 0 if up-to-date. Useful for CI to ensure generated code is committed.",
        "dest": "check",
        "flags": [
          "--check"
        ],
        "metavar": null,
        "name": "--check",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "show debug message (require \"debug\". `pip install 'datamodel-code-generator[debug]'`)",
        "dest": "debug",
        "flags": [
          "--debug"
        ],
        "metavar": null,
        "name": "--debug",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate BASELINE_INPUT and the current --input into temporary outputs, then show the generated-code diff from baseline to current. Requires --input and --output; --output is a virtual output path that selects file or directory layout and is never modified. Exits with code 1 when generated outputs differ.",
        "dest": "diff_against",
        "flags": [
          "--diff-against"
        ],
        "metavar": "BASELINE_INPUT",
        "name": "--diff-against",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "disable warnings",
        "dest": "disable_warnings",
        "flags": [
          "--disable-warnings"
        ],
        "metavar": null,
        "name": "--disable-warnings",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Return an error instead of concatenating multiple generated modules in text stdout. This does not affect single-module, JSON, or file output.",
        "dest": "fail_on_multi_module_stdout",
        "flags": [
          "--fail-on-multi-module-stdout"
        ],
        "metavar": null,
        "name": "--fail-on-multi-module-stdout",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate CLI command from pyproject.toml configuration and exit",
        "dest": "generate_cli_command",
        "flags": [
          "--generate-cli-command"
        ],
        "metavar": null,
        "name": "--generate-cli-command",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate a prompt for consulting LLMs about CLI options. Optionally provide your question as an argument. Pipe to CLI tools (e.g., `| claude -p`, `| codex exec`) or copy to clipboard (e.g., `| pbcopy`, `| xclip`) for web LLM chats.",
        "dest": "generate_prompt",
        "flags": [
          "--generate-prompt"
        ],
        "metavar": "QUESTION",
        "name": "--generate-prompt",
        "nargs": "?",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate pyproject.toml configuration from the provided CLI arguments and exit",
        "dest": "generate_pyproject_config",
        "flags": [
          "--generate-pyproject-config"
        ],
        "metavar": null,
        "name": "--generate-pyproject-config",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "HelpAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "show this help message and exit",
        "dest": "help",
        "flags": [
          "-h",
          "--help"
        ],
        "metavar": null,
        "name": "--help",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set headers in HTTP requests to the remote host. (example: \"Authorization: Basic dXNlcjpwYXNz\")",
        "dest": "http_headers",
        "flags": [
          "--http-headers"
        ],
        "metavar": "HTTP_HEADER",
        "name": "--http-headers",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable verification of the remote host's TLS certificate",
        "dest": "http_ignore_tls",
        "flags": [
          "--http-ignore-tls"
        ],
        "metavar": null,
        "name": "--http-ignore-tls",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Resolve HTTP(S) JSON Schema $ref URLs from a local directory instead of fetching them. URLs are mapped under the directory by host and path; extensionless refs also try '.json'.",
        "dest": "http_local_ref_path",
        "flags": [
          "--http-local-ref-path"
        ],
        "metavar": null,
        "name": "--http-local-ref-path",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set query parameters in HTTP requests to the remote host. (example: \"ref=branch\")",
        "dest": "http_query_parameters",
        "flags": [
          "--http-query-parameters"
        ],
        "metavar": "HTTP_QUERY_PARAMETERS",
        "name": "--http-query-parameters",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Timeout in seconds for HTTP requests to remote hosts (default: 30)",
        "dest": "http_timeout",
        "flags": [
          "--http-timeout"
        ],
        "metavar": null,
        "name": "--http-timeout",
        "nargs": null,
        "required": false,
        "type": "float"
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": false,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Ignore pyproject.toml configuration",
        "dest": "ignore_pyproject",
        "flags": [
          "--ignore-pyproject"
        ],
        "metavar": null,
        "name": "--ignore-pyproject",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "codex",
          "claude-code"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Install the bundled datamodel-code-generator Agent Skill and exit (experimental). Use --skill-scope to select a project or personal installation.",
        "dest": "install_skill",
        "flags": [
          "--install-skill"
        ],
        "metavar": "{codex,claude-code}",
        "name": "--install-skill",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "AppendAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Run a named job from pyproject.toml [tool.datamodel-codegen.jobs.<name>] (experimental). Can be repeated.",
        "dest": "job",
        "flags": [
          "--job"
        ],
        "metavar": "NAME",
        "name": "--job",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "table",
          "json",
          "markdown"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "List registered deprecations and scheduled breaking changes, then exit.",
        "dest": "list_deprecations",
        "flags": [
          "--list-deprecations"
        ],
        "metavar": "{table,json,markdown}",
        "name": "--list-deprecations",
        "nargs": "?",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "table",
          "json",
          "markdown"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "List registered experimental features and their compatibility notes, then exit.",
        "dest": "list_experimental",
        "flags": [
          "--list-experimental"
        ],
        "metavar": "{table,json,markdown}",
        "name": "--list-experimental",
        "nargs": "?",
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Require an existing remote lock and validate each fetched resource against it (experimental).",
        "dest": "locked",
        "flags": [
          "--locked"
        ],
        "metavar": null,
        "name": "--locked",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Select the remote reference integrity lock file (experimental). An existing selected lock is verified automatically; a missing selected lock is ignored unless --locked is used. The default is datamodel-codegen.lock beside the discovered pyproject.toml, or in the invocation working directory when no project is found. Explicit relative paths resolve from the invocation working directory.",
        "dest": "lockfile",
        "flags": [
          "--lockfile"
        ],
        "metavar": null,
        "name": "--lockfile",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "single"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Split generated models into separate files. 'single': generate one file per model class.",
        "dest": "module_split_mode",
        "flags": [
          "--module-split-mode"
        ],
        "metavar": null,
        "name": "--module-split-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": false,
        "deprecated": false,
        "deprecated_message": null,
        "description": "disable colorized output",
        "dest": "no_color",
        "flags": [
          "--no-color"
        ],
        "metavar": null,
        "name": "--no-color",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "text",
          "json"
        ],
        "default": "text",
        "deprecated": false,
        "deprecated_message": null,
        "description": "Format for command output (default: text). Use json for structured output when supported.",
        "dest": "output_format",
        "flags": [
          "--output-format"
        ],
        "metavar": null,
        "name": "--output-format",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "config",
          "generate-prompt",
          "generation",
          "model-metadata",
          "recommend-options",
          "structured-output"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Output JSON Schema for the selected JSON output or JSON configuration format and exit.",
        "dest": "output_format_json_schema",
        "flags": [
          "--output-format-json-schema"
        ],
        "metavar": "{config,generate-prompt,generation,model-metadata,recommend-options,structured-output}",
        "name": "--output-format-json-schema",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": false,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Replace an existing regular skill directory when used with --install-skill.",
        "dest": "overwrite_skill",
        "flags": [
          "--overwrite-skill"
        ],
        "metavar": null,
        "name": "--overwrite-skill",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use a named profile from pyproject.toml [tool.datamodel-codegen.profiles.<name>]",
        "dest": "profile",
        "flags": [
          "--profile"
        ],
        "metavar": null,
        "name": "--profile",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Analyse the input schema and print the options to add on top of the latest dated preset, with the reasons, as a command and a pyproject.toml block, then exit (experimental). Schemas of up to 3000 estimated models are also compared by generating the candidate configurations in memory. With --generate-prompt, the prompt includes the recommendation instead.",
        "dest": "recommend_options",
        "flags": [
          "--recommend-options"
        ],
        "metavar": "",
        "name": "--recommend-options",
        "nargs": "?",
        "required": false,
        "type": "_recommend_mode"
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Name of the shared module for --reuse-scope=tree (default: \"shared\"). Use this option if your schema has a file named \"shared\".",
        "dest": "shared_module_name",
        "flags": [
          "--shared-module-name"
        ],
        "metavar": null,
        "name": "--shared-module-name",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": [
          "project",
          "user"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Installation scope for --install-skill (default: project). Project installs use .agents/skills or .claude/skills; user installs use the matching home directory.",
        "dest": "skill_scope",
        "flags": [
          "--skill-scope"
        ],
        "metavar": "{project,user}",
        "name": "--skill-scope",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Treat unresolved local $ref JSON pointers as errors instead of generating fallback Any models.",
        "dest": "strict_refs",
        "flags": [
          "--strict-refs"
        ],
        "metavar": null,
        "name": "--strict-refs",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Create or atomically update the selected remote lock after generation (experimental).",
        "dest": "update_lock",
        "flags": [
          "--update-lock"
        ],
        "metavar": null,
        "name": "--update-lock",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": false,
        "deprecated": false,
        "deprecated_message": null,
        "description": "show version",
        "dest": "version",
        "flags": [
          "--version"
        ],
        "metavar": null,
        "name": "--version",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Watch input file(s) for changes and regenerate output automatically",
        "dest": "watch",
        "flags": [
          "--watch"
        ],
        "metavar": null,
        "name": "--watch",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "General Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Debounce delay in seconds for watch mode (default: 0.5)",
        "dest": "watch_delay",
        "flags": [
          "--watch-delay"
        ],
        "metavar": null,
        "name": "--watch-delay",
        "nargs": null,
        "required": false,
        "type": "float"
      }
    ],
    "GraphQL-only Options": [
      {
        "action": "StoreTrueAction",
        "category": "GraphQL-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Exclude __typename field from generated GraphQL models. Useful when using generated models for GraphQL mutations.",
        "dest": "graphql_no_typename",
        "flags": [
          "--graphql-no-typename"
        ],
        "metavar": null,
        "name": "--graphql-no-typename",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "Model Customization": [
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "to_camel",
          "to_pascal",
          "to_snake"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Pydantic v2 BaseModel alias generator to use in ConfigDict. Matching generated aliases are omitted from individual Field() calls, except with --target-pydantic-version 2, which writes every alias.",
        "dest": "alias_generator",
        "flags": [
          "--alias-generator"
        ],
        "metavar": null,
        "name": "--alias-generator",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": true,
        "deprecated_message": "--allow-extra-fields is deprecated. Use --extra-fields=allow instead.",
        "description": "Deprecated: --allow-extra-fields is deprecated. Use --extra-fields=allow instead.",
        "dest": "allow_extra_fields",
        "flags": [
          "--allow-extra-fields"
        ],
        "metavar": null,
        "name": "--allow-extra-fields",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Allow an explicitly specified root class name to start with an underscore",
        "dest": "allow_leading_underscore_class_name",
        "flags": [
          "--allow-leading-underscore-class-name"
        ],
        "metavar": null,
        "name": "--allow-leading-underscore-class-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Allow population by field name",
        "dest": "allow_population_by_field_name",
        "flags": [
          "--allow-population-by-field-name",
          "--no-allow-population-by-field-name"
        ],
        "metavar": null,
        "name": "--allow-population-by-field-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Base Class (default: pydantic.BaseModel)",
        "dest": "base_class",
        "flags": [
          "--base-class"
        ],
        "metavar": null,
        "name": "--base-class",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Model-specific base class mapping (JSON or JSON file path). Example: '{\"MyModel\": \"custom.BaseA\", \"OtherModel\": \"custom.BaseB\"}'. Priority: base-class-map > customBasePath (in schema) > base-class.",
        "dest": "base_class_map",
        "flags": [
          "--base-class-map"
        ],
        "metavar": null,
        "name": "--base-class-map",
        "nargs": null,
        "required": false,
        "type": "_json_value_or_file"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set class name of root model",
        "dest": "class_name",
        "flags": [
          "--class-name"
        ],
        "metavar": null,
        "name": "--class-name",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "all",
          "models",
          "enums"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Scope for applying --class-name-prefix/--class-name-suffix. 'all': Apply to all classes including enums (default). 'models': Apply only to model classes. 'enums': Apply only to enum classes.",
        "dest": "class_name_affix_scope",
        "flags": [
          "--class-name-affix-scope"
        ],
        "metavar": null,
        "name": "--class-name-affix-scope",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Prefix to add to generated class names (e.g., 'Api' produces 'ApiUser'). Does not apply to root model when --class-name is specified.",
        "dest": "class_name_prefix",
        "flags": [
          "--class-name-prefix"
        ],
        "metavar": null,
        "name": "--class-name-prefix",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Suffix to add to generated class names (e.g., 'Schema' produces 'UserSchema'). Does not apply to root model when --class-name is specified.",
        "dest": "class_name_suffix",
        "flags": [
          "--class-name-suffix"
        ],
        "metavar": null,
        "name": "--class-name-suffix",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "When used with --reuse-model, collapse duplicate models by replacing references instead of creating empty inheritance subclasses. This eliminates 'class Foo(Bar): pass' patterns",
        "dest": "collapse_reuse_models",
        "flags": [
          "--collapse-reuse-models",
          "--no-collapse-reuse-models"
        ],
        "metavar": null,
        "name": "--collapse-reuse-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Models generated with a root-type field will be merged into the models using that root-type model",
        "dest": "collapse_root_models",
        "flags": [
          "--collapse-root-models",
          "--no-collapse-root-models"
        ],
        "metavar": null,
        "name": "--collapse-root-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "child",
          "parent"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for naming when collapsing root models that reference other models. 'child': Keep inner model's name (default). 'parent': Use wrapper's name for inner model. Requires --collapse-root-models to be set.",
        "dest": "collapse_root_models_name_strategy",
        "flags": [
          "--collapse-root-models-name-strategy"
        ],
        "metavar": null,
        "name": "--collapse-root-models-name-strategy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --collapse-root-models-name-strategy parent, make every model that references a wrapper reference the inner model that takes its name, as its first model does; without it, where --field-type-collision-strategy rename-type can rename the wrapper apart from the inner model in their module, the later models keep the wrapper",
        "dest": "collapse_shared_parent_wrappers",
        "flags": [
          "--collapse-shared-parent-wrappers",
          "--no-collapse-shared-parent-wrappers"
        ],
        "metavar": null,
        "name": "--collapse-shared-parent-wrappers",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom dataclass arguments as a JSON dictionary, e.g. '{\"frozen\": true, \"kw_only\": true}'. Overrides --frozen-dataclasses and similar flags.",
        "dest": "dataclass_arguments",
        "flags": [
          "--dataclass-arguments"
        ],
        "metavar": null,
        "name": "--dataclass-arguments",
        "nargs": null,
        "required": false,
        "type": "_dataclass_arguments"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "JSON mapping of type to suffix for resolving duplicate name conflicts. Example: '{\"model\": \"Schema\"}' changes Address1 to AddressSchema. Keys: 'model' (for classes), 'enum' (for enums), 'default' (fallback). When not specified, uses numeric suffix (Address1, Address2).",
        "dest": "duplicate_name_suffix",
        "flags": [
          "--duplicate-name-suffix"
        ],
        "metavar": null,
        "name": "--duplicate-name-suffix",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Enable faux immutability",
        "dest": "enable_faux_immutability",
        "flags": [
          "--enable-faux-immutability"
        ],
        "metavar": null,
        "name": "--enable-faux-immutability",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Force optional for required fields",
        "dest": "force_optional",
        "flags": [
          "--force-optional"
        ],
        "metavar": null,
        "name": "--force-optional",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate frozen dataclasses (dataclass(frozen=True)). Only applies to dataclass output.",
        "dest": "frozen_dataclasses",
        "flags": [
          "--frozen-dataclasses"
        ],
        "metavar": null,
        "name": "--frozen-dataclasses",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --collapse-root-models with --field-constraints, keep a root model whose root field has constraints named inside any container of its holder, a set, frozen set, Sequence or Mapping as well as a list, dict or union, as `Field()` could not carry them there; without it such a root model is inlined into those containers and its constraints are lost, as in 0.89.0",
        "dest": "keep_constrained_root_models_in_every_container",
        "flags": [
          "--keep-constrained-root-models-in-every-container",
          "--no-keep-constrained-root-models-in-every-container"
        ],
        "metavar": null,
        "name": "--keep-constrained-root-models-in-every-container",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --collapse-root-models, keep a named enum that the output writes as a `Literal` type alias named at its uses (`Status = Literal['open', 'resolved']`, `a: Status`); without it every use repeats the `Literal`, as in 0.89.0",
        "dest": "keep_enum_literal_aliases",
        "flags": [
          "--keep-enum-literal-aliases",
          "--no-keep-enum-literal-aliases"
        ],
        "metavar": null,
        "name": "--keep-enum-literal-aliases",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Leave the default of a property off the root models extracted from the branches of its `anyOf` or `oneOf`, which then require their value; without it each such root takes the property's default",
        "dest": "keep_field_defaults_off_branch_roots",
        "flags": [
          "--keep-field-defaults-off-branch-roots",
          "--no-keep-field-defaults-off-branch-roots"
        ],
        "metavar": null,
        "name": "--keep-field-defaults-off-branch-roots",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Keep generated models' order",
        "dest": "keep_model_order",
        "flags": [
          "--keep-model-order"
        ],
        "metavar": null,
        "name": "--keep-model-order",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Keep the null that the schema of a field, item or member admits where the model it references is merged into an equal model that rejects null (deduplication of equal models, --reuse-model, --collapse-reuse-models, --reuse-scope tree), so a `type: [object, null]` property keeps `| None`; without it the reference takes the null of the model it names after the merge, as in 0.88.0",
        "dest": "keep_reference_null_on_merged_models",
        "flags": [
          "--keep-reference-null-on-merged-models",
          "--no-keep-reference-null-on-merged-models"
        ],
        "metavar": null,
        "name": "--keep-reference-null-on-merged-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Defined models as keyword only (for example dataclass(kw_only=True)).",
        "dest": "keyword_only",
        "flags": [
          "--keyword-only"
        ],
        "metavar": null,
        "name": "--keyword-only",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Add extra keys from schema extensions (x-* fields) to model_config json_schema_extra",
        "dest": "model_extra_keys",
        "flags": [
          "--model-extra-keys"
        ],
        "metavar": null,
        "name": "--model-extra-keys",
        "nargs": "+",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Add extra keys with `x-` prefix to model_config json_schema_extra. The extra keys are stripped of the `x-` prefix.",
        "dest": "model_extra_keys_without_x_prefix",
        "flags": [
          "--model-extra-keys-without-x-prefix"
        ],
        "metavar": null,
        "name": "--model-extra-keys-without-x-prefix",
        "nargs": "+",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Rename generated model classes by schema ref or current generated class name using a JSON object or JSON file.",
        "dest": "model_name_map",
        "flags": [
          "--model-name-map"
        ],
        "metavar": null,
        "name": "--model-name-map",
        "nargs": null,
        "required": false,
        "type": "_json_value_or_file"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "AsyncAPI only: name a payload that an Avro or XML Schema converter gives no name of its own, such as an Avro string or array, after its message, as a JSON Schema payload is, and drop the placeholder title Model the converter gives it (Field(..., title='Model'), and the class Model under --use-title-as-name); without it the placeholder stays, as in 0.88.0",
        "dest": "name_converted_payloads_by_message",
        "flags": [
          "--name-converted-payloads-by-message",
          "--no-name-converted-payloads-by-message"
        ],
        "metavar": null,
        "name": "--name-converted-payloads-by-message",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "numbered",
          "parent-prefixed",
          "full-path",
          "primary-first",
          "definitions-first",
          "enclosing-model"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for naming models and telling duplicate model names apart. 'numbered' (default): Append numeric suffix (Address, Address1, Address2). Simple but names don't indicate context. 'parent-prefixed': Prefix every nested model with the name of the model that holds it, joined in CamelCase, nested parents included (CompanyAddress, CompanyEmployeeHomeAddress), also where the name is unique; the model names are the same as with 'full-path'. 'full-path': Prefix every nested model with the names of the models that hold it, joined in CamelCase (CompanyAddress, CompanyEmployeeHomeAddress). 'primary-first': Keep clean names for primary definitions (in /definitions/ or /components/schemas/), only add suffix to inline/nested duplicates. 'definitions-first': Give every definition (in /definitions/, /$defs/ or /components/schemas/ of any document) its own name before an inline model, a variant or another definition that asked for it first, which takes the name the definition would have taken (Package1); unlike 'primary-first', which renames only models of other files, as in 0.89.0. 'enclosing-model': Prefix every nested model with the final name of the model it is built for, once (IssueClosedIssue for the allOf property issue of IssueClosed, StreamEvent1 for the first unnamed branch of the union StreamEvent, PetCat for its branch tagged cat); a definition keeps its own name (Customer, not ModelCustomer); unlike 'full-path', which prefixes with the closest model registered above, as in 0.89.0.",
        "dest": "naming_strategy",
        "flags": [
          "--naming-strategy"
        ],
        "metavar": null,
        "name": "--naming-strategy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Do not write None again where a field, item or member references a model that holds null itself (a root model or type alias whose type admits None, or an enum with a None member), so that a null parses to that model",
        "dest": "omit_redundant_reference_null",
        "flags": [
          "--omit-redundant-reference-null",
          "--no-omit-redundant-reference-null"
        ],
        "metavar": null,
        "name": "--omit-redundant-reference-null",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "final-names",
          "written-defaults"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Decide the order of constructor fields by each given value. final-names: order the constructor fields of dataclass and msgspec.Struct models after every field has its final name, so a field that overrides an inherited field renamed in another module is matched to it and keeps its place; without it the override reads as a new field after the inherited default and is written keyword-only (kw_only=True). written-defaults: order the fields of msgspec.Struct and Pydantic dataclass models by the defaults they write, so under --strip-default-none an optional field whose None default is stripped but still written (UNSET, or None for a type that admits None) goes after the required fields of a Struct with the other optional fields and stays positional after an inherited default, and a required pydantic.dataclass field redeclaring it is written Field(...) (a msgspec.Struct writes a bare annotation); without it the field keeps its place among the fields without a default, as before: it is keyword-only after an inherited default, a redeclaring field inherits its None default, and the fields are reordered only where a required field would then follow a default.",
        "dest": "order_constructor_fields_by",
        "flags": [
          "--order-constructor-fields-by"
        ],
        "metavar": null,
        "name": "--order-constructor-fields-by",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "pydantic_v2.BaseModel",
          "pydantic_v2.dataclass",
          "dataclasses.dataclass",
          "typing.TypedDict",
          "msgspec.Struct"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Output model type (default: pydantic_v2.BaseModel)",
        "dest": "output_model_type",
        "flags": [
          "--output-model-type"
        ],
        "metavar": null,
        "name": "--output-model-type",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": true,
        "deprecated_message": "--parent-scoped-naming is deprecated. Use --naming-strategy parent-prefixed instead.",
        "description": "Deprecated: --parent-scoped-naming is deprecated. Use --naming-strategy parent-prefixed instead.",
        "dest": "parent_scoped_naming",
        "flags": [
          "--parent-scoped-naming"
        ],
        "metavar": null,
        "name": "--parent-scoped-naming",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "pydantic_v2.BaseModel and pydantic_v2.dataclass output: decide a field's alias by the alias generator its model applies, the one in its config or in the config it inherits. For a dataclass and a --target-pydantic-version older than 2.8, whose alias generators can differ from the generated aliases, write the generated alias on every field of a dataclass whose config names an alias generator. Without it a field keeps the alias it has without the generator, which the config then replaces.",
        "dest": "pin_aliases_with_alias_generator",
        "flags": [
          "--pin-aliases-with-alias-generator",
          "--no-pin-aliases-with-alias-generator"
        ],
        "metavar": null,
        "name": "--pin-aliases-with-alias-generator",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Write the null that `nullable: true` declares beside a `type` list with an object into the root model of that schema under --strict-nullable or --use-missing-sentinel, as a declared field does; without it only a `type` list holding null makes that root admit None",
        "dest": "read_nullable_beside_type_list",
        "flags": [
          "--read-nullable-beside-type-list",
          "--no-read-nullable-beside-type-list"
        ],
        "metavar": null,
        "name": "--read-nullable-beside-type-list",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Reuse models on the field when a module has the model with the same content",
        "dest": "reuse_model",
        "flags": [
          "--reuse-model",
          "--no-reuse-model"
        ],
        "metavar": null,
        "name": "--reuse-model",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "module",
          "tree"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Scope for model reuse deduplication: module (per-file, default) or tree (cross-file with shared module). Only effective when --reuse-model is set.",
        "dest": "reuse_scope",
        "flags": [
          "--reuse-scope"
        ],
        "metavar": null,
        "name": "--reuse-scope",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Name the item model of an array by singularizing only the last word of its name (actions_caches gives ActionsCache, payment_status gives PaymentStatusItem); without it the whole name is singularized as one word (ActionsCach, PaymentStatu), as in 0.88.0",
        "dest": "singularize_last_word_of_item_names",
        "flags": [
          "--singularize-last-word-of-item-names",
          "--no-singularize-last-word-of-item-names"
        ],
        "metavar": null,
        "name": "--singularize-last-word-of-item-names",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Skip generating the model for the root schema element",
        "dest": "skip_root_model",
        "flags": [
          "--skip-root-model"
        ],
        "metavar": null,
        "name": "--skip-root-model",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Treat default field as a non-nullable field",
        "dest": "strict_nullable",
        "flags": [
          "--strict-nullable",
          "--no-strict-nullable"
        ],
        "metavar": null,
        "name": "--strict-nullable",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strip default None on fields (no effect on msgspec.Struct: it defaults an omitted field to UNSET, and to None only when the type admits None)",
        "dest": "strip_default_none",
        "flags": [
          "--strip-default-none"
        ],
        "metavar": null,
        "name": "--strip-default-none",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "msgspec.Struct output only: tag the structs of a discriminated union with the property name the document carries (for example 'pet-kind') instead of the Python name that property resolves to (pet_kind), which msgspec looks for in the payload. --use-msgspec-tagged-unions already tags by the document's property name. Without either option the Python name is kept.",
        "dest": "tag_msgspec_by_payload_name",
        "flags": [
          "--tag-msgspec-by-payload-name",
          "--no-tag-msgspec-by-payload-name"
        ],
        "metavar": null,
        "name": "--tag-msgspec-by-payload-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "2",
          "2.11",
          "2.12",
          "2.14"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Oldest Pydantic version the generated code must support. Unset: the newest supported feature forms, with populate_by_name config like '2' and the experimental MISSING import like '2.12'. '2': Pydantic 2.0.3+ compatible (uses populate_by_name; patterns that need Python's regex engine need 2.5+). '2.11': Pydantic 2.11+ (uses validate_by_name). '2.12': Pydantic 2.12+ (supports MISSING sentinel). '2.14': Pydantic 2.14+ (imports MISSING from pydantic; bytes patterns can select Python's regex engine; pydantic_v2.dataclass writes required Field(...) fields before the fields with defaults of the same class; a number schema keeps multipleOf on a timedelta). Constructs without an older form are written for every target, with a warning naming the Pydantic they need.",
        "dest": "target_pydantic_version",
        "flags": [
          "--target-pydantic-version"
        ],
        "metavar": null,
        "name": "--target-pydantic-version",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "3.10",
          "3.11",
          "3.12",
          "3.13",
          "3.14",
          "3.15"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "target python version",
        "dest": "target_python_version",
        "flags": [
          "--target-python-version"
        ],
        "metavar": null,
        "name": "--target-python-version",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "smart",
          "left_to_right"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Union mode for only pydantic v2 field",
        "dest": "union_mode",
        "flags": [
          "--union-mode"
        ],
        "metavar": null,
        "name": "--union-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use default value even if a field is required",
        "dest": "use_default",
        "flags": [
          "--use-default"
        ],
        "metavar": null,
        "name": "--use-default",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use default_factory for optional nested model fields instead of None default. E.g., `field: Model | None = Field(default_factory=Model)` instead of `field: Model | None = None`",
        "dest": "use_default_factory_for_optional_nested_models",
        "flags": [
          "--use-default-factory-for-optional-nested-models"
        ],
        "metavar": null,
        "name": "--use-default-factory-for-optional-nested-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use `default=` instead of a positional argument for Fields that have default values.",
        "dest": "use_default_kwarg",
        "flags": [
          "--use-default-kwarg",
          "--no-use-default-kwarg"
        ],
        "metavar": null,
        "name": "--use-default-kwarg",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Give the --duplicate-name-suffix suffix also to a model renamed because its name is taken in its module, by another model or by a name the module imports (an inline Item beside a definition Item, a definition AnyUrl beside a uri field); without it such a model takes the suffix Model, as in 0.88.0",
        "dest": "use_duplicate_name_suffix_for_every_collision",
        "flags": [
          "--use-duplicate-name-suffix-for-every-collision",
          "--no-use-duplicate-name-suffix-for-every-collision"
        ],
        "metavar": null,
        "name": "--use-duplicate-name-suffix-for-every-collision",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use Field(frozen=True) for readOnly fields (Pydantic v2).",
        "dest": "use_frozen_field",
        "flags": [
          "--use-frozen-field",
          "--no-use-frozen-field"
        ],
        "metavar": null,
        "name": "--use-frozen-field",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate a shared base class with model configuration (e.g., extra='forbid') instead of repeating the configuration in each model. Keeps code DRY.",
        "dest": "use_generic_base_class",
        "flags": [
          "--use-generic-base-class"
        ],
        "metavar": null,
        "name": "--use-generic-base-class",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use pydantic.experimental.missing_sentinel.MISSING for optional fields without defaults (Pydantic v2.12+), or pydantic.MISSING with --target-pydantic-version 2.14 or later, which --generate-server and --generate-client require with this option. Supports pydantic_v2.BaseModel and pydantic_v2.dataclass, whose server and client generation requires it.",
        "dest": "use_missing_sentinel",
        "flags": [
          "--use-missing-sentinel"
        ],
        "metavar": null,
        "name": "--use-missing-sentinel",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "msgspec.Struct output only: write the keys of a map whose keys propertyNames or patternProperties constrain by pattern, minLength or maxLength as Annotated[str, Meta(...)], so msgspec checks them as Pydantic output does; without it the keys are str and every key is accepted, as in 0.88.0",
        "dest": "use_msgspec_meta_for_map_keys",
        "flags": [
          "--use-msgspec-meta-for-map-keys",
          "--no-use-msgspec-meta-for-map-keys"
        ],
        "metavar": null,
        "name": "--use-msgspec-meta-for-map-keys",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "msgspec.Struct output only: write an enum that lists null as an Enum without the None member plus an Enum | None type alias, so that msgspec can decode it. Without it a plain Enum keeps the 0.83.0 None member, which msgspec cannot decode; an IntEnum or --use-subclass-enum enum, which cannot hold it, is written without it and, as its one type rejects null, without the alias.",
        "dest": "use_msgspec_nullable_enum_alias",
        "flags": [
          "--use-msgspec-nullable-enum-alias"
        ],
        "metavar": null,
        "name": "--use-msgspec-nullable-enum-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "msgspec.Struct output only: write a discriminated union as msgspec tagged structs as a whole. Every variant is tagged with the document's property name and its value, or none is and a warning says why. Without it the 0.83.0 form is kept, which tags only a variant whose discriminator is a single literal and keeps the other discriminators as Literal fields.",
        "dest": "use_msgspec_tagged_unions",
        "flags": [
          "--use-msgspec-tagged-unions"
        ],
        "metavar": null,
        "name": "--use-msgspec-tagged-unions",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use one literal as default value for one literal field",
        "dest": "use_one_literal_as_default",
        "flags": [
          "--use-one-literal-as-default"
        ],
        "metavar": null,
        "name": "--use-one-literal-as-default",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Make non-null sequence-like Pydantic v2 RootModel classes implement collections.abc.Sequence by adding Sequence[T] inheritance and root-delegating __iter__, __getitem__, and __len__ methods",
        "dest": "use_root_model_sequence_interface",
        "flags": [
          "--use-root-model-sequence-interface"
        ],
        "metavar": null,
        "name": "--use-root-model-sequence-interface",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use pydantic.SerializeAsAny for fields with types that have subtypes (Pydantic v2 only)",
        "dest": "use_serialize_as_any",
        "flags": [
          "--use-serialize-as-any"
        ],
        "metavar": null,
        "name": "--use-serialize-as-any",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --use-serialize-as-any, wrap a field in SerializeAsAny when any subclass of its model in the generated output adds fields: at any depth, after --reuse-model or --collapse-reuse-models merges the model, and where the field names the model through its module; without it only a field whose model has a direct subclass is wrapped, as in 0.88.0 (Pydantic v2 only)",
        "dest": "use_serialize_as_any_for_every_subclass",
        "flags": [
          "--use-serialize-as-any-for-every-subclass",
          "--no-use-serialize-as-any-for-every-subclass"
        ],
        "metavar": null,
        "name": "--use-serialize-as-any-for-every-subclass",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Model Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Define generic Enum class as subclass with field type when enum has type (int, float, bytes, str)",
        "dest": "use_subclass_enum",
        "flags": [
          "--use-subclass-enum",
          "--no-use-subclass-enum"
        ],
        "metavar": null,
        "name": "--use-subclass-enum",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "OpenAPI-only Options": [
      {
        "action": "BooleanOptionalAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Decide Request/Response variants from the schema graph and build each inline model once, without the unreferenced duplicate classes and shifted class numbers of 0.86.0",
        "dest": "dedupe_request_response_variants",
        "flags": [
          "--dedupe-request-response-variants",
          "--no-dedupe-request-response-variants"
        ],
        "metavar": null,
        "name": "--dedupe-request-response-variants",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Include path parameters in generated parameter models in addition to query parameters (Only OpenAPI)",
        "dest": "include_path_parameters",
        "flags": [
          "--include-path-parameters"
        ],
        "metavar": null,
        "name": "--include-path-parameters",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strip only a leading slash from a paths key when naming its operation models, as webhook names are, so the key pets gives PetsGetResponse; without it the first character is dropped whatever it is (EtsGetResponse), as in 0.88.0",
        "dest": "keep_first_character_of_path_keys",
        "flags": [
          "--keep-first-character-of-path-keys",
          "--no-keep-first-character-of-path-keys"
        ],
        "metavar": null,
        "name": "--keep-first-character-of-path-keys",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "OpenAPI-only Options",
        "choices": [
          "paths-bodies",
          "ref-components"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Give each given kind of OpenAPI schema the model a definitions entry of the same schema gets. paths-bodies: the request and response bodies of the paths and webhooks scopes, so an object body with a type array such as [object, null], or with map keywords and no type, becomes a model instead of an inline type, and an object body with patternProperties or propertyNames becomes the root model of a map. ref-components: a component written as a $ref to a recursive schema with sibling keywords, which gets the root model; without it such a component gets no model, and a reference to it is typed by the schema its $ref names",
        "dest": "openapi_as_definitions",
        "flags": [
          "--openapi-as-definitions"
        ],
        "metavar": null,
        "name": "--openapi-as-definitions",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Emit OpenAPI info.version as OPENAPI_INFO_VERSION in generated models",
        "dest": "openapi_include_info_version",
        "flags": [
          "--openapi-include-info-version"
        ],
        "metavar": null,
        "name": "--openapi-include-info-version",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Include only OpenAPI paths matching fnmatch patterns. Use wildcards: '*' matches any chars, '?' matches single char. Example: '/users/*' '/products'. Requires '--openapi-scopes' to include 'paths'.",
        "dest": "openapi_include_paths",
        "flags": [
          "--openapi-include-paths"
        ],
        "metavar": "PATTERN",
        "name": "--openapi-include-paths",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "OpenAPI-only Options",
        "choices": [
          "schemas",
          "paths",
          "tags",
          "parameters",
          "webhooks",
          "requestbodies",
          "api"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Scopes of OpenAPI model generation (default: schemas)",
        "dest": "openapi_scopes",
        "flags": [
          "--openapi-scopes"
        ],
        "metavar": null,
        "name": "--openapi-scopes",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "OpenAPI-only Options",
        "choices": [
          "request-response",
          "all"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Model generation for readOnly/writeOnly fields: 'request-response' = Request/Response models only (no base model), 'all' = Base + Request + Response models.",
        "dest": "read_only_write_only_model_type",
        "flags": [
          "--read-only-write-only-model-type"
        ],
        "metavar": null,
        "name": "--read-only-write-only-model-type",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "use operation id of OpenAPI as class names of models",
        "dest": "use_operation_id_as_name",
        "flags": [
          "--use-operation-id-as-name"
        ],
        "metavar": null,
        "name": "--use-operation-id-as-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Include HTTP status code in response model names (e.g., ResourceGetResponse200, ResourceGetResponseDefault)",
        "dest": "use_status_code_in_response_name",
        "flags": [
          "--use-status-code-in-response-name"
        ],
        "metavar": null,
        "name": "--use-status-code-in-response-name",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "OpenAPI-only Options",
        "choices": null,
        "default": null,
        "deprecated": true,
        "deprecated_message": "The `--validation` option is deprecated and will be removed in a future release. Use --field-constraints instead.",
        "description": "Deprecated: The `--validation` option is deprecated and will be removed in a future release. Use --field-constraints instead.",
        "dest": "validation",
        "flags": [
          "--validation"
        ],
        "metavar": null,
        "name": "--validation",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "Target Generation Options": [
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "body",
          "both"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Take request bodies as one body argument (default) or also as field arguments (experimental).",
        "dest": "client_body_arguments",
        "flags": [
          "--client-body-arguments"
        ],
        "metavar": null,
        "name": "--client-body-arguments",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Server URL of the operations that declare no servers (experimental).",
        "dest": "client_default_base_url",
        "flags": [
          "--client-default-base-url"
        ],
        "metavar": null,
        "name": "--client-default-base-url",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Import path of the models that --output generates (experimental).",
        "dest": "client_model_package",
        "flags": [
          "--client-model-package"
        ],
        "metavar": null,
        "name": "--client-model-package",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Settings per operation reference, such as /paths/~1pets/get, as inline JSON or a JSON file path; their body_arguments overrides --client-body-arguments (experimental).",
        "dest": "client_operations",
        "flags": [
          "--client-operations"
        ],
        "metavar": null,
        "name": "--client-operations",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Directory of the generated client package (experimental).",
        "dest": "client_output",
        "flags": [
          "--client-output"
        ],
        "metavar": null,
        "name": "--client-output",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Import path of the generated client package (experimental).",
        "dest": "client_package",
        "flags": [
          "--client-package"
        ],
        "metavar": null,
        "name": "--client-package",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Pagination, polling, stream, WebSocket, cache, upload, and webhook helpers by name, as inline JSON or a JSON file path (experimental).",
        "dest": "client_protocols",
        "flags": [
          "--client-protocols"
        ],
        "metavar": null,
        "name": "--client-protocols",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Resource namespaces keyed by tag, such as {\"pets\": \"store.pets\"}, as inline JSON or a JSON file path (experimental).",
        "dest": "client_resource_names",
        "flags": [
          "--client-resource-names"
        ],
        "metavar": null,
        "name": "--client-resource-names",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Base URL that relative server URLs of the document resolve against (experimental).",
        "dest": "client_server_base_url",
        "flags": [
          "--client-server-base-url"
        ],
        "metavar": null,
        "name": "--client-server-base-url",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "explicit",
          "unpack"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Declare operation arguments as keywords (default) or as one Unpack[TypedDict] (experimental).",
        "dest": "client_signature_style",
        "flags": [
          "--client-signature-style"
        ],
        "metavar": null,
        "name": "--client-signature-style",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "httpx2"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate an HTTPX2 client package for the models; the --client-* options configure it (experimental).",
        "dest": "generate_client",
        "flags": [
          "--generate-client"
        ],
        "metavar": null,
        "name": "--generate-client",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "fastapi"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate a FastAPI server package for the models; the --server-* options configure it (experimental).",
        "dest": "generate_server",
        "flags": [
          "--generate-server"
        ],
        "metavar": null,
        "name": "--generate-server",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "typed",
          "request"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Pass request bodies as validated models (default) or as the raw Request (experimental).",
        "dest": "server_body_mode",
        "flags": [
          "--server-body-mode"
        ],
        "metavar": null,
        "name": "--server-body-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Per-operation body modes as inline JSON or a JSON file path, keyed by operation reference; overrides --server-body-mode for matched operations (experimental).",
        "dest": "server_body_modes",
        "flags": [
          "--server-body-modes"
        ],
        "metavar": null,
        "name": "--server-body-modes",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "sync",
          "async"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Make service methods plain functions (default) or coroutine functions (experimental).",
        "dest": "server_handler_mode",
        "flags": [
          "--server-handler-mode"
        ],
        "metavar": null,
        "name": "--server-handler-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Per-operation handler modes as inline JSON or a JSON file path, keyed by operation reference such as /paths/~1pets/get; overrides --server-handler-mode for matched operations (experimental).",
        "dest": "server_handler_modes",
        "flags": [
          "--server-handler-modes"
        ],
        "metavar": null,
        "name": "--server-handler-modes",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Pass the Starlette Request to every service method (experimental).",
        "dest": "server_include_request",
        "flags": [
          "--server-include-request",
          "--no-server-include-request"
        ],
        "metavar": null,
        "name": "--server-include-request",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": [
          "routers",
          "single"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Write one router module per tag (default) or a single routes module (experimental).",
        "dest": "server_layout",
        "flags": [
          "--server-layout"
        ],
        "metavar": null,
        "name": "--server-layout",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Import path of the models that --output generates (experimental).",
        "dest": "server_model_package",
        "flags": [
          "--server-model-package"
        ],
        "metavar": null,
        "name": "--server-model-package",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Service method names per operation reference as inline JSON or a JSON file path (experimental).",
        "dest": "server_operation_names",
        "flags": [
          "--server-operation-names"
        ],
        "metavar": null,
        "name": "--server-operation-names",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Directory of the generated server package (experimental).",
        "dest": "server_output",
        "flags": [
          "--server-output"
        ],
        "metavar": null,
        "name": "--server-output",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Import path of the generated server package (experimental).",
        "dest": "server_package",
        "flags": [
          "--server-package"
        ],
        "metavar": null,
        "name": "--server-package",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Argument names per operation reference, each keyed by location and name such as query:limit, as inline JSON or a JSON file path (experimental).",
        "dest": "server_parameter_names",
        "flags": [
          "--server-parameter-names"
        ],
        "metavar": null,
        "name": "--server-parameter-names",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "The declared response a bare return value takes, per operation, as inline JSON or a JSON file path: an object with \"status_code\" and an optional \"media_type\" for each operation reference (experimental).",
        "dest": "server_primary_responses",
        "flags": [
          "--server-primary-responses"
        ],
        "metavar": null,
        "name": "--server-primary-responses",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Target Generation Options",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Router group names keyed by group key, such as tag:pets, as inline JSON or a JSON file path (experimental).",
        "dest": "server_router_names",
        "flags": [
          "--server-router-names"
        ],
        "metavar": null,
        "name": "--server-router-names",
        "nargs": null,
        "required": false,
        "type": "str"
      }
    ],
    "Template Customization": [
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom imports for output (delimited list input). For example \"datetime.date,datetime.datetime\"",
        "dest": "additional_imports",
        "flags": [
          "--additional-imports"
        ],
        "metavar": null,
        "name": "--additional-imports",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --generate-schema-validators, count every key that a pattern of patternProperties admits, check declared keys against the patterns that match them, and keep the propertyNames keys and the other types of a type array of an object without properties",
        "dest": "check_pattern_maps_strictly",
        "flags": [
          "--check-pattern-maps-strictly",
          "--no-check-pattern-maps-strictly"
        ],
        "metavar": null,
        "name": "--check-pattern-maps-strictly",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom decorators for generated model classes (delimited list input). For example \"@dataclass_json(letter_case=LetterCase.CAMEL)\". The \"@\" prefix is optional and will be added automatically if missing.",
        "dest": "class_decorators",
        "flags": [
          "--class-decorators"
        ],
        "metavar": null,
        "name": "--class-decorators",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom file header",
        "dest": "custom_file_header",
        "flags": [
          "--custom-file-header"
        ],
        "metavar": null,
        "name": "--custom-file-header",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": [
          "replace",
          "prepend"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "How to combine a custom file header with the generated header (default: replace)",
        "dest": "custom_file_header_mode",
        "flags": [
          "--custom-file-header-mode"
        ],
        "metavar": null,
        "name": "--custom-file-header-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom file header file path",
        "dest": "custom_file_header_path",
        "flags": [
          "--custom-file-header-path"
        ],
        "metavar": null,
        "name": "--custom-file-header-path",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "List of modules with custom formatter (delimited list input).",
        "dest": "custom_formatters",
        "flags": [
          "--custom-formatters"
        ],
        "metavar": null,
        "name": "--custom-formatters",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom formatter kwargs as inline JSON or a JSON file path.",
        "dest": "custom_formatters_kwargs",
        "flags": [
          "--custom-formatters-kwargs"
        ],
        "metavar": null,
        "name": "--custom-formatters-kwargs",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Custom template directory",
        "dest": "custom_template_dir",
        "flags": [
          "--custom-template-dir"
        ],
        "metavar": null,
        "name": "--custom-template-dir",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable appending `Item` suffix to model name in an array",
        "dest": "disable_appending_item_suffix",
        "flags": [
          "--disable-appending-item-suffix"
        ],
        "metavar": null,
        "name": "--disable-appending-item-suffix",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable timestamp on file headers",
        "dest": "disable_timestamp",
        "flags": [
          "--disable-timestamp",
          "--no-disable-timestamp"
        ],
        "metavar": null,
        "name": "--disable-timestamp",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Enable command-line options on file headers for reproducibility",
        "dest": "enable_command_header",
        "flags": [
          "--enable-command-header"
        ],
        "metavar": null,
        "name": "--enable-command-header",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Enable @generated marker on file headers",
        "dest": "enable_generated_header_marker",
        "flags": [
          "--enable-generated-header-marker"
        ],
        "metavar": null,
        "name": "--enable-generated-header-marker",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Enable package version on file headers",
        "dest": "enable_version_header",
        "flags": [
          "--enable-version-header"
        ],
        "metavar": null,
        "name": "--enable-version-header",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Extra template data for output models as inline JSON or a JSON file path. For OpenAPI and Jsonschema the keys are the spec path of the object, or the name of the object if you want to apply the template data to multiple objects with the same name. If you are using another input file type (e.g. GraphQL), the key is the name of the object. The value is a dictionary of the template data to add.",
        "dest": "extra_template_data",
        "flags": [
          "--extra-template-data"
        ],
        "metavar": null,
        "name": "--extra-template-data",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": [
          "builtin",
          "black",
          "isort",
          "ruff-check",
          "ruff-format"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Formatters (current default: black, isort; future default: builtin). For Ruff projects, use --formatters ruff-check ruff-format (install with pip install 'datamodel-code-generator[ruff]'). Use --formatters builtin when no external formatter is used or generation speed takes priority. Keep --formatters black isort to preserve existing formatting. Presets dated 20260909 or later include builtin; explicit formatters override presets. The future builtin default reduces installation dependencies and version constraints. Black/isort remain required today; declare [black,isort] extras for their later optional installation. Review custom-template output with builtin. Details: https://datamodel-code-generator.koxudaxi.dev/formatter-behavior/",
        "dest": "formatters",
        "flags": [
          "--formatters"
        ],
        "metavar": null,
        "name": "--formatters",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate Pydantic v2 model validators for JSON Schema rules that cannot be represented as type hints (experimental).",
        "dest": "generate_schema_validators",
        "flags": [
          "--generate-schema-validators"
        ],
        "metavar": null,
        "name": "--generate-schema-validators",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreConstAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Select no formatter, not even the default or a preset's formatters; --custom-formatters still run.",
        "dest": "formatters",
        "flags": [
          "--no-formatters"
        ],
        "metavar": null,
        "name": "--no-formatters",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Rename a submodule named like a class of its package, such as pkg/Warn.py beside the class Warn of pkg/__init__.py, to the first free name with trailing underscores (pkg/Warn_.py), with the modules below it; the class keeps its name. Without it importing the submodule replaces the class in its package, so the models that use either fail to decode",
        "dest": "rename_submodules_hidden_by_classes",
        "flags": [
          "--rename-submodules-hidden-by-classes",
          "--no-rename-submodules-hidden-by-classes"
        ],
        "metavar": null,
        "name": "--rename-submodules-hidden-by-classes",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set the generated shared Pydantic v2 schema runtime validator base class name.",
        "dest": "schema_validator_base_class_name",
        "flags": [
          "--schema-validator-base-class-name"
        ],
        "metavar": null,
        "name": "--schema-validator-base-class-name",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": [
          "pydantic-v2"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Select the schema-derived runtime validator backend. 'pydantic-v2' generates Pydantic v2 model validators (experimental).",
        "dest": "schema_validator_type",
        "flags": [
          "--schema-validator-type"
        ],
        "metavar": null,
        "name": "--schema-validator-type",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Only infer dotted schema names as module paths when every segment is a canonical Python identifier. This applies only to automatic inference and does not override --treat-dot-as-module or --no-treat-dot-as-module.",
        "dest": "strict_dotted_module_names",
        "flags": [
          "--strict-dotted-module-names",
          "--no-strict-dotted-module-names"
        ],
        "metavar": null,
        "name": "--strict-dotted-module-names",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Treat dotted schema names as module paths, creating nested directory structures (e.g., 'foo.bar.Model' becomes 'foo/bar.py'). Use --no-treat-dot-as-module to keep dots in names as underscores for single-file output.",
        "dest": "treat_dot_as_module",
        "flags": [
          "--treat-dot-as-module",
          "--no-treat-dot-as-module"
        ],
        "metavar": null,
        "name": "--treat-dot-as-module",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Model generated with double quotes. Single quotes or your black config skip_string_normalization value will be used without this option.",
        "dest": "use_double_quotes",
        "flags": [
          "--use-double-quotes"
        ],
        "metavar": null,
        "name": "--use-double-quotes",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "import exact types instead of modules, for example: \"from .foo import Bar\" instead of \"from . import foo\" with \"foo.Bar\"",
        "dest": "use_exact_imports",
        "flags": [
          "--use-exact-imports"
        ],
        "metavar": null,
        "name": "--use-exact-imports",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Allow Ruff to move typing-only imports into TYPE_CHECKING blocks. By default this stays enabled, except for multi-module Ruff formatting of modular Pydantic output where referenced models stay imported at runtime. Use --no-use-type-checking-imports to force runtime imports.",
        "dest": "use_type_checking_imports",
        "flags": [
          "--use-type-checking-imports",
          "--no-use-type-checking-imports"
        ],
        "metavar": null,
        "name": "--use-type-checking-imports",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Validators configuration as inline JSON or a JSON file path. Defines field validators for Pydantic v2 models. Keys are model names, values contain validator definitions with field, function, and mode.",
        "dest": "validators",
        "flags": [
          "--validators"
        ],
        "metavar": null,
        "name": "--validators",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Wrap string literal by using black `experimental-string-processing` option (require black 20.8b0 or later)",
        "dest": "wrap_string_literal",
        "flags": [
          "--wrap-string-literal"
        ],
        "metavar": null,
        "name": "--wrap-string-literal",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "Typing Customization": [
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "if-no-conflict",
          "always"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "How to map allOf references to class hierarchies. 'if-no-conflict': only create subclasses when parent class has no conflicting property definition. 'always': always create subclasses. ",
        "dest": "allof_class_hierarchy",
        "flags": [
          "--allof-class-hierarchy"
        ],
        "metavar": null,
        "name": "--allof-class-hierarchy",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "constraints",
          "all",
          "none"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Mode for field merging in allOf schemas. 'constraints': merge only constraints (minItems, maxItems, pattern, etc.) from parent (default). 'all': merge constraints plus annotations (default, examples) from parent. 'none': do not merge any fields from parent properties.",
        "dest": "allof_merge_mode",
        "flags": [
          "--allof-merge-mode"
        ],
        "metavar": null,
        "name": "--allof-merge-mode",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable __future__ imports",
        "dest": "disable_future_imports",
        "flags": [
          "--disable-future-imports"
        ],
        "metavar": null,
        "name": "--disable-future-imports",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read an `allOf` with the `anyOf` and `oneOf` it holds or sits beside as JSON Schema validates them: an `allOf` of several is one union variant per combination of one branch of each, also through a `$ref` member that names an `allOf` over a union, a `$ref` branch takes the `allOf` members beside its `anyOf` or `oneOf`, which an inline branch already takes, and the value keywords beside it where it names no object, and an OpenAPI request or response body with an `allOf` beside an `anyOf` or `oneOf` is that union as a schema of the components is; the value branches of those unions are read at a field and beside object branches too. Without it the branches of every `anyOf` and `oneOf` of an `allOf` join one union (the inline branches of a second replacing those of the first), a `$ref` member naming an `allOf` over a union is dropped, a `$ref` branch takes only the `properties` and `required` beside it, a body drops the union, and value branches are read only where the `allOf` would be a model without fields, as in 0.89.0",
        "dest": "distribute_allof_over_unions",
        "flags": [
          "--distribute-allof-over-unions",
          "--no-distribute-allof-over-unions"
        ],
        "metavar": null,
        "name": "--distribute-allof-over-unions",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "all",
          "one",
          "none"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Parse enum field as literal. all: all enum field type are Literal. one: field type is Literal when an enum has only one possible value. none: always use Enum class (never convert to Literal)",
        "dest": "enum_field_as_literal",
        "flags": [
          "--enum-field-as-literal"
        ],
        "metavar": null,
        "name": "--enum-field-as-literal",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Per-field override for enum/literal generation (JSON or JSON file path). Format: JSON object mapping field names to 'literal' or 'enum'. Example: '{\"status\": \"literal\", \"priority\": \"enum\"}'. Overrides --enum-field-as-literal for matched fields.",
        "dest": "enum_field_as_literal_map",
        "flags": [
          "--enum-field-as-literal-map"
        ],
        "metavar": null,
        "name": "--enum-field-as-literal-map",
        "nargs": null,
        "required": false,
        "type": "_json_value_or_file"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Keep only the values of a `const` or an `enum` that meet the `minLength`, `maxLength`, `pattern`, bound and `multipleOf` constraints beside them in its `Literal` or Enum, as JSON Schema validates them; a schema none of whose values meets them stays as written with a warning",
        "dest": "filter_literal_values",
        "flags": [
          "--filter-literal-values",
          "--no-filter-literal-values"
        ],
        "metavar": null,
        "name": "--filter-literal-values",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Ignore enum constraints and use the base type (e.g., str, int) instead of generating Enum classes",
        "dest": "ignore_enum_constraints",
        "flags": [
          "--ignore-enum-constraints"
        ],
        "metavar": null,
        "name": "--ignore-enum-constraints",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Override modules for generated imports by symbol name. Format: JSON object mapping symbols to module paths. Example: '{\"TypedDict\": \"my_project.typing_compat\", \"NotRequired\": \"my_project.typing_compat\"}'.",
        "dest": "import_overrides",
        "flags": [
          "--import-overrides"
        ],
        "metavar": null,
        "name": "--import-overrides",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Combine the keywords of every part of an `allOf`, of a `$ref` with sibling keywords and of an inherited property override, as JSON Schema validates them: the tightest bounds, the `enum` values every part admits, the `type` every part admits, the conjunction of the `pattern`s, no null beside a `type` that excludes it, and the constraints of the root, item and map value positions of an `allOf`. Without it, the keyword of the last part wins where the parts disagree",
        "dest": "intersect_allof_keywords",
        "flags": [
          "--intersect-allof-keywords",
          "--no-intersect-allof-keywords"
        ],
        "metavar": null,
        "name": "--intersect-allof-keywords",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Combine the keywords of every part of a combined schema as JSON Schema validates them, as --intersect-allof-keywords does (this option turns it on), and also: the keywords beside an `anyOf` or `oneOf` in each branch, the `properties` an inherited property override merges name by name, an override that narrows the inherited `type` (such as to `null`), the length of an inherited closed tuple under --allof-merge-mode none, the `$ref` siblings of an `allOf` member where the dialect reads them, an `allOf` member that names a `$ref` alias, the null branch of an `allOf` member's `anyOf` or `oneOf`, and no `enum` value that the merged `type` rejects. Without it these keep the output of 0.88.0",
        "dest": "intersect_combined_schema_keywords",
        "flags": [
          "--intersect-combined-schema-keywords",
          "--no-intersect-combined-schema-keywords"
        ],
        "metavar": null,
        "name": "--intersect-combined-schema-keywords",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Write an enum as a plain Enum where the value base of --use-specialized-enum or --use-subclass-enum would change a member value, such as 2.5 in an IntEnum; without it the base follows the schema type, as in 0.86.0",
        "dest": "keep_enum_member_values",
        "flags": [
          "--keep-enum-member-values",
          "--no-keep-enum-member-values"
        ],
        "metavar": null,
        "name": "--keep-enum-member-values",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "date",
          "PastDate",
          "FutureDate"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Choose Date class between PastDate, FutureDate or date. (Pydantic v2 only) Each output model has its default mapping.",
        "dest": "output_date_class",
        "flags": [
          "--output-date-class"
        ],
        "metavar": null,
        "name": "--output-date-class",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "datetime",
          "AwareDatetime",
          "NaiveDatetime",
          "PastDatetime",
          "FutureDatetime"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Choose Datetime class between AwareDatetime, NaiveDatetime, PastDatetime, FutureDatetime or datetime. Each output model has its default mapping (for example pydantic: datetime, dataclass: str, ...)",
        "dest": "output_datetime_class",
        "flags": [
          "--output-datetime-class"
        ],
        "metavar": null,
        "name": "--output-datetime-class",
        "nargs": null,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read a `const` beside an `enum` as JSON Schema does: a value whose schema names the enum is typed by the const that narrows it (`Literal[Enum.member]`, a Literal or None) instead of the enum class that lists the values the const excludes, and under --use-single-value-enum-as-const an `enum` that admits its `const` is read as that `const` instead of an Enum, except one with `nullable: true` and a value other than null",
        "dest": "read_const_beside_enum",
        "flags": [
          "--read-const-beside-enum",
          "--no-read-const-beside-enum"
        ],
        "metavar": null,
        "name": "--read-const-beside-enum",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Read a schema-valued unevaluatedProperties as additionalProperties where no applicator evaluates the object in place, so it types the extra keys of a model and makes an object without properties a map",
        "dest": "read_unevaluated_properties",
        "flags": [
          "--read-unevaluated-properties",
          "--no-read-unevaluated-properties"
        ],
        "metavar": null,
        "name": "--read-unevaluated-properties",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": [
          "str",
          "bytes",
          "int",
          "float",
          "bool"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use strict types",
        "dest": "strict_types",
        "flags": [
          "--strict-types"
        ],
        "metavar": null,
        "name": "--strict-types",
        "nargs": "+",
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Override default type mappings. Format: \"type+format=target\" (e.g., \"string+binary=string\" to map binary format to string type) or \"format=target\" (e.g., \"binary=string\"). Can be specified multiple times.",
        "dest": "type_mappings",
        "flags": [
          "--type-mappings"
        ],
        "metavar": null,
        "name": "--type-mappings",
        "nargs": "+",
        "required": false,
        "type": "str"
      },
      {
        "action": "StoreAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Replace schema model types with custom Python types. Format: JSON object mapping model names to Python import paths. Model-level: '{\"CustomType\": \"my_app.types.MyType\"}' replaces all references. Scoped: '{\"User.field\": \"my_app.Type\"}' replaces specific field only.",
        "dest": "type_overrides",
        "flags": [
          "--type-overrides"
        ],
        "metavar": null,
        "name": "--type-overrides",
        "nargs": null,
        "required": false,
        "type": "str"
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Make every --type-overrides value of a field replace the field's whole type: a class path replaces an object map itself, as an annotation already does (dict for builtins.dict, not dict[str, dict]), and the item counts of an array and the property counts of a map it replaces stay only where the new type counts the same (a sequence its items, a mapping class its keys), with a warning otherwise; without it a class path keeps the dict of a map around the class and every override keeps those counts whatever its type, as in 0.89.0",
        "dest": "type_overrides_replace_whole_type",
        "flags": [
          "--type-overrides-replace-whole-type",
          "--no-type-overrides-replace-whole-type"
        ],
        "metavar": null,
        "name": "--type-overrides-replace-whole-type",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use typing.Annotated for Field(). Also, `--field-constraints` option will be enabled. Will become default for Pydantic v2 in a future version.",
        "dest": "use_annotated",
        "flags": [
          "--use-annotated",
          "--no-use-annotated"
        ],
        "metavar": null,
        "name": "--use-annotated",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate TypedDict with PEP 728 closed=True/extra_items for additionalProperties constraints. Use --no-use-closed-typed-dict for type checkers that don't yet support PEP 728 (e.g., mypy).",
        "dest": "use_closed_typed_dict",
        "flags": [
          "--use-closed-typed-dict",
          "--no-use-closed-typed-dict"
        ],
        "metavar": null,
        "name": "--use-closed-typed-dict",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use condecimal instead of confloat for float/number fields with multipleOf constraint (Pydantic only). Avoids floating-point precision issues in validation.",
        "dest": "use_decimal_for_multiple_of",
        "flags": [
          "--use-decimal-for-multiple-of"
        ],
        "metavar": null,
        "name": "--use-decimal-for-multiple-of",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --use-decimal-for-multiple-of, also write Decimal for a number with multipleOf in the field forms (--field-constraints, --use-annotated), with the constraints in Field(), and make the Decimal strict under --strict-types float (Pydantic only)",
        "dest": "use_decimal_in_field_forms",
        "flags": [
          "--use-decimal-in-field-forms",
          "--no-use-decimal-in-field-forms"
        ],
        "metavar": null,
        "name": "--use-decimal-in-field-forms",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Write a format: byte string with pattern, minLength or maxLength in the field forms (--field-constraints, --use-annotated) as Annotated[str, Field(...), EncodedStr(encoder=Base64Encoder)], so Pydantic 2.10 or later checks the constraints on the base64 text, as the schema does; without it Annotated[Base64Str, Field(...)] and an optional Base64Str with Field(...) check them on the decoded text, as in 0.88.0 (Pydantic v2 only)",
        "dest": "use_encoded_str_for_constrained_base64",
        "flags": [
          "--use-encoded-str-for-constrained-base64",
          "--no-use-encoded-str-for-constrained-base64"
        ],
        "metavar": null,
        "name": "--use-encoded-str-for-constrained-base64",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use generic container types for type hinting (typing.Sequence, typing.Mapping). If `--use-standard-collections` option is set, then import from collections.abc instead of typing",
        "dest": "use_generic_container_types",
        "flags": [
          "--use-generic-container-types"
        ],
        "metavar": null,
        "name": "--use-generic-container-types",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use the Non{Positive,Negative}{FloatInt} types instead of the corresponding con* constrained types.",
        "dest": "use_non_positive_negative_number_constrained_types",
        "flags": [
          "--use-non-positive-negative-number-constrained-types"
        ],
        "metavar": null,
        "name": "--use-non-positive-negative-number-constrained-types",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use object instead of Any for unspecified JSON Schema object and array values",
        "dest": "use_object_type",
        "flags": [
          "--use-object-type",
          "--no-use-object-type"
        ],
        "metavar": null,
        "name": "--use-object-type",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "use pendulum instead of datetime",
        "dest": "use_pendulum",
        "flags": [
          "--use-pendulum"
        ],
        "metavar": null,
        "name": "--use-pendulum",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Pydantic output only: write a type alias whose whole value is a model that names itself as `Alias: TypeAlias = Node`, which Pydantic builds for every model that uses it; without it the alias is `TypeAliasType(\"Alias\", Node)` (or `type Alias = Node`) as in 0.89.0, which Pydantic 2 refuses once two models use it. The alias then has no entry of its own in `model_json_schema()` `$defs`",
        "dest": "use_plain_alias_for_recursive_models",
        "flags": [
          "--use-plain-alias-for-recursive-models",
          "--no-use-plain-alias-for-recursive-models"
        ],
        "metavar": null,
        "name": "--use-plain-alias-for-recursive-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use type alias format for RootModel (e.g., Foo = RootModel[Bar]) instead of class inheritance (Pydantic v2 only)",
        "dest": "use_root_model_type_alias",
        "flags": [
          "--use-root-model-type-alias"
        ],
        "metavar": null,
        "name": "--use-root-model-type-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Type an object map, an object without properties whose keys patternProperties or propertyNames constrain, as one dict whose keys are those of every key class and whose value is the union of their values, beside the null and the other types of its type array",
        "dest": "use_single_dict_for_object_maps",
        "flags": [
          "--use-single-dict-for-object-maps",
          "--no-use-single-dict-for-object-maps"
        ],
        "metavar": null,
        "name": "--use-single-dict-for-object-maps",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Treat `enum` with a single value as `const` with that value, which JSON Schema defines as equal: oneOf/anyOf branches such as {\"type\": \"string\", \"enum\": [\"low\"]} merge into one Enum when there are two or more and all hold values of one JSON type, otherwise each branch is typed as written, and a schema with one enum value is typed Literal[...] instead of a one-member Enum, except one with `nullable: true` and a value other than null, which is read as written",
        "dest": "use_single_value_enum_as_const",
        "flags": [
          "--use-single-value-enum-as-const",
          "--no-use-single-value-enum-as-const"
        ],
        "metavar": null,
        "name": "--use-single-value-enum-as-const",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use specialized Enum class (StrEnum, IntEnum). Requires --target-python-version 3.11+",
        "dest": "use_specialized_enum",
        "flags": [
          "--use-specialized-enum",
          "--no-use-specialized-enum"
        ],
        "metavar": null,
        "name": "--use-specialized-enum",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use standard collections for type hinting (list, dict). Default: enabled",
        "dest": "use_standard_collections",
        "flags": [
          "--use-standard-collections",
          "--no-use-standard-collections"
        ],
        "metavar": null,
        "name": "--use-standard-collections",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use Python standard library types for string formats (UUID, IPv4Address, etc.) instead of str. Affects dataclass, msgspec, TypedDict output. Pydantic already uses these types by default.",
        "dest": "use_standard_primitive_types",
        "flags": [
          "--use-standard-primitive-types",
          "--no-use-standard-primitive-types"
        ],
        "metavar": null,
        "name": "--use-standard-primitive-types",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate TypedDict with total=False and mark required fields with Required",
        "dest": "use_total_false_for_typed_dict",
        "flags": [
          "--use-total-false-for-typed-dict"
        ],
        "metavar": null,
        "name": "--use-total-false-for-typed-dict",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate tuple types for positional arrays that no other item can follow: a closed prefixItems tail (items, unevaluatedItems or additionalItems false) whose length the length keywords fix, so that each position keeps its own type",
        "dest": "use_tuple_for_closed_arrays",
        "flags": [
          "--use-tuple-for-closed-arrays",
          "--no-use-tuple-for-closed-arrays"
        ],
        "metavar": null,
        "name": "--use-tuple-for-closed-arrays",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate tuple types for arrays with items array syntax when minItems equals maxItems equals items length",
        "dest": "use_tuple_for_fixed_items",
        "flags": [
          "--use-tuple-for-fixed-items",
          "--no-use-tuple-for-fixed-items"
        ],
        "metavar": null,
        "name": "--use-tuple-for-fixed-items",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Generate tuple types for fixed-length arrays with a single items schema",
        "dest": "use_tuple_for_fixed_length_arrays",
        "flags": [
          "--use-tuple-for-fixed-length-arrays"
        ],
        "metavar": null,
        "name": "--use-tuple-for-fixed-length-arrays",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use TypeAlias instead of root models (experimental)",
        "dest": "use_type_alias",
        "flags": [
          "--use-type-alias"
        ],
        "metavar": null,
        "name": "--use-type-alias",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use TypeAliasType for type aliases on Python 3.10 and 3.11 (implies --use-type-alias; experimental)",
        "dest": "use_type_alias_type",
        "flags": [
          "--use-type-alias-type"
        ],
        "metavar": null,
        "name": "--use-type-alias-type",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "With --use-typed-nullable-map-values, also type the map values of type arrays that list object beside other types, such as [object, string], as dict[str, int] | str instead of dict[str, Any] | str",
        "dest": "use_typed_map_values_beside_other_types",
        "flags": [
          "--use-typed-map-values-beside-other-types",
          "--no-use-typed-map-values-beside-other-types"
        ],
        "metavar": null,
        "name": "--use-typed-map-values-beside-other-types",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Type the values of nullable maps, schemas whose type array lists object alone or with null, such as [object, null] or [object], with additionalProperties, as their schema says, with a model for object values. Without it the 0.83.0 form is kept, dict[str, Any] | None, or dict[str, Any] without null.",
        "dest": "use_typed_nullable_map_values",
        "flags": [
          "--use-typed-nullable-map-values"
        ],
        "metavar": null,
        "name": "--use-typed-nullable-map-values",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Use | operator for Union type (PEP 604). Default: enabled",
        "dest": "use_union_operator",
        "flags": [
          "--use-union-operator",
          "--no-use-union-operator"
        ],
        "metavar": null,
        "name": "--use-union-operator",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "define field type as `set` when the field attribute has `uniqueItems`",
        "dest": "use_unique_items_as_set",
        "flags": [
          "--use-unique-items-as-set",
          "--no-use-unique-items-as-set"
        ],
        "metavar": null,
        "name": "--use-unique-items-as-set",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "BooleanOptionalAction",
        "category": "Typing Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Under --use-unique-items-as-set, decide each set once the item types are final (after --collapse-root-models, --type-overrides and every module) and write a set only where every value of its items hashes by value (scalars, enums, tuples and frozen sets of them, frozen models); an array of models that hash only by identity, of Any or of containers stays a list. Deduplication and --reuse-model also keep apart models whose arrays differ in uniqueItems; without it the sets are decided before root models collapse, set item models hash by identity and such models merge, as in 0.89.0",
        "dest": "use_unique_items_as_set_by_value",
        "flags": [
          "--use-unique-items-as-set-by-value",
          "--no-use-unique-items-as-set-by-value"
        ],
        "metavar": null,
        "name": "--use-unique-items-as-set-by-value",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ]
  },
  "question": "Which strict Pydantic v2 options should I use?",
  "version": 1
}
