{
  "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  --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 for output (default: [black, isort]; use\n                        builtin for dependency-free formatting)\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  --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:NAME\n                        Python import path to a Pydantic v2 model or schema\n                        dict (e.g., 'mypackage.module: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  --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  --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  --url URL             Input file URL. `--input` is ignored when `--url` is\n                        used\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  --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  --ignore-enum-constraints\n                        Ignore enum constraints and use the base type (e.g.,\n                        str, int) instead of generating Enum classes\n  --set-default-enum-member\n                        Set enum members as default values for enum field\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  --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-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     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-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-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   Define generic Enum class as subclass with field type\n                        when enum has type (int, float, bytes, str)\n  --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-type-alias      Use TypeAlias instead of root models (experimental)\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\n                        define field type as `set` when the field attribute\n                        has `uniqueItems`\n\nField customization:\n  --capitalise-enum-members, --capitalize-enum-members\n                        Capitalize field names on enum\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  --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  --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  --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 file (JSON) for Pydantic\n                        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    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     Treat default field as a non-nullable field\n  --strip-default-none  Strip default None on fields\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   Use `default=` instead of a positional argument for\n                        Fields that have default values.\n  --use-field-description\n                        Use schema description to populate field docstring\n  --use-field-description-example\n                        Use schema example to populate field docstring\n  --use-frozen-field    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-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\n                        Use single-line docstrings when the content fits on\n                        one line\n\nModel customization:\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\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\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\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  --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   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  --keep-model-order    Keep generated models' order\n  --keyword-only        Defined models as keyword only (for example\n                        dataclass(kw_only=True)).\n  --module-split-mode {single}\n                        Split generated models into separate files. 'single':\n                        generate one file per model class.\n  --naming-strategy {numbered,parent-prefixed,full-path,primary-first}\n                        Strategy for generating unique model names when\n                        duplicates occur. 'numbered' (default): Append numeric\n                        suffix (Address, Address1, Address2). Simple but names\n                        don't indicate context. 'parent-prefixed': Prefix with\n                        parent model name using underscore (Company_Address,\n                        Company_Employee_Address for nested). Names show\n                        hierarchy. 'full-path': Similar to parent-prefixed but\n                        joins with CamelCase (CompanyAddress,\n                        CompanyEmployeeAddress). More readable for deep\n                        nesting. 'primary-first': Keep clean names for primary\n                        definitions (in /definitions/ or\n                        /components/schemas/), only add suffix to\n                        inline/nested duplicates.\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  --reuse-model         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  --skip-root-model     Skip generating the model for the root schema element\n  --target-pydantic-version {2,2.11}\n                        Target Pydantic version for generated code. '2':\n                        Pydantic 2.0+ compatible (default, uses\n                        populate_by_name). '2.11': Pydantic 2.11+ (uses\n                        validate_by_name).\n  --target-python-version {3.10,3.11,3.12,3.13,3.14}\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-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-pendulum        use pendulum instead of datetime\n  --use-schema-description\n                        Use schema description to populate class docstring\n  --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-title-as-name   use titles as class names of models\n\nTemplate customization:\n  --aliases ALIASES     Alias mapping file (JSON) for renaming fields. Format:\n                        {'<schema_field>': '<python_name>'} - the schema field\n                        name becomes the Pydantic alias. Supports hierarchical\n                        formats: Flat: {'id': 'id_'} applies to all\n                        occurrences. Scoped: {'User.name': 'user_name'}\n                        applies to specific class. Priority: scoped > flat.\n                        Multiple aliases (Pydantic v2 only): {'field':\n                        ['alt1', 'alt2']} uses AliasChoices for validation.\n                        Example: {'User.name': 'user_name', 'id': 'id_'}\n                        generates `id_: ... = Field(alias='id')`.\n  --custom-file-header CUSTOM_FILE_HEADER\n                        Custom file header\n  --custom-file-header-path CUSTOM_FILE_HEADER_PATH\n                        Custom file header file path\n  --custom-formatters-kwargs CUSTOM_FORMATTERS_KWARGS\n                        A file with kwargs for custom formatters.\n  --custom-template-dir CUSTOM_TEMPLATE_DIR\n                        Custom template directory\n  --default-values DEFAULT_VALUES\n                        Default value overrides file (JSON). Supports\n                        hierarchical formats: Flat: {'field': value} applies\n                        to all occurrences. Scoped: {'ClassName.field': value}\n                        applies to specific class. Priority: scoped > flat.\n                        Note: Scoped keys use the generated class name for\n                        JSON Schema/OpenAPI. Required fields remain required\n                        unless --use-default is also specified. Example:\n                        {'User.status': 'active', 'page': 1, 'limit': 10}\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. Input is\n                        supposed to be a json/yaml file. For OpenAPI and\n                        Jsonschema the keys are the spec path of the object,\n                        or the name of the object if you want to apply the\n                        template data to multiple objects with the same name.\n                        If you are using another input file type (e.g.\n                        GraphQL), the key is the name of the object. The value\n                        is a dictionary of the template data to add.\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 file (JSON). Defines field\n                        validators for Pydantic v2 models. Keys are model\n                        names, values contain validator definitions with\n                        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  --include-path-parameters\n                        Include path parameters in generated parameter models\n                        in addition to query parameters (Only OpenAPI)\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} [{schemas,paths,tags,parameters,webhooks,requestbodies} ...]\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  --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  --disable-warnings    disable warnings\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  --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, 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 {generate-prompt,generation,structured-output}\n                        Output JSON Schema for the selected structured output\n                        format and exit.\n  --profile PROFILE     Use a named profile from pyproject.toml\n                        [tool.datamodel-codegen.profiles.<name>]\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\nDocumentation: https://datamodel-code-generator.koxudaxi.dev\nAgent skill: https://datamodel-code-generator.koxudaxi.dev/coding-agent-skill/\nGitHub: https://github.com/koxudaxi/datamodel-code-generator\n",
  "kind": "prompt",
  "options": [
    {
      "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": 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 to a Pydantic v2 model or schema dict (e.g., 'mypackage.module: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: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": 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",
      "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 file (JSON) 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": "Path"
    },
    {
      "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": "StoreAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Default value overrides file (JSON). 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": "Path"
    },
    {
      "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": "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": "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": "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 file (JSON) 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": "Path"
    },
    {
      "action": "StoreTrueAction",
      "category": "Field Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Set enum members as default values for enum field",
      "dest": "set_default_enum_member",
      "flags": [
        "--set-default-enum-member"
      ],
      "metavar": null,
      "name": "--set-default-enum-member",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "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"
      ],
      "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--use-field-description",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "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"
      ],
      "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": "StoreTrueAction",
      "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"
      ],
      "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--use-single-line-docstring",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "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"
      ],
      "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": "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": "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": "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": [
        "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, then exit.",
      "dest": "list_experimental",
      "flags": [
        "--list-experimental"
      ],
      "metavar": "{table,json,markdown}",
      "name": "--list-experimental",
      "nargs": "?",
      "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": [
        "generate-prompt",
        "generation",
        "structured-output"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Output JSON Schema for the selected structured output format and exit.",
      "dest": "output_format_json_schema",
      "flags": [
        "--output-format-json-schema"
      ],
      "metavar": "{generate-prompt,generation,structured-output}",
      "name": "--output-format-json-schema",
      "nargs": null,
      "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": "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": "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": "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": "StoreTrueAction",
      "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"
      ],
      "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--collapse-reuse-models",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "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"
      ],
      "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": "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": "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": "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": [
        "numbered",
        "parent-prefixed",
        "full-path",
        "primary-first"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Strategy for generating unique model names when duplicates occur. 'numbered' (default): Append numeric suffix (Address, Address1, Address2). Simple but names don't indicate context. 'parent-prefixed': Prefix with parent model name using underscore (Company_Address, Company_Employee_Address for nested). Names show hierarchy. 'full-path': Similar to parent-prefixed but joins with CamelCase (CompanyAddress, CompanyEmployeeAddress). More readable for deep nesting. 'primary-first': Keep clean names for primary definitions (in /definitions/ or /components/schemas/), only add suffix to inline/nested duplicates.",
      "dest": "naming_strategy",
      "flags": [
        "--naming-strategy"
      ],
      "metavar": null,
      "name": "--naming-strategy",
      "nargs": null,
      "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": "StoreTrueAction",
      "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"
      ],
      "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": "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": "StoreTrueAction",
      "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"
      ],
      "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",
      "dest": "strip_default_none",
      "flags": [
        "--strip-default-none"
      ],
      "metavar": null,
      "name": "--strip-default-none",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreAction",
      "category": "Model Customization",
      "choices": [
        "2",
        "2.11"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Target Pydantic version for generated code. '2': Pydantic 2.0+ compatible (default, uses populate_by_name). '2.11': Pydantic 2.11+ (uses validate_by_name).",
      "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"
      ],
      "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--use-default-kwarg",
      "nargs": 0,
      "required": false,
      "type": null
    },
    {
      "action": "StoreTrueAction",
      "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"
      ],
      "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 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": "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--use-subclass-enum",
      "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": "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"
      ],
      "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": "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": "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": 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": "A file with kwargs for custom formatters.",
      "dest": "custom_formatters_kwargs",
      "flags": [
        "--custom-formatters-kwargs"
      ],
      "metavar": null,
      "name": "--custom-formatters-kwargs",
      "nargs": null,
      "required": false,
      "type": "Path"
    },
    {
      "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": "StoreTrueAction",
      "category": "Template Customization",
      "choices": null,
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Disable timestamp on file headers",
      "dest": "disable_timestamp",
      "flags": [
        "--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. Input is supposed to be a json/yaml file. 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": "Path"
    },
    {
      "action": "StoreAction",
      "category": "Template Customization",
      "choices": [
        "builtin",
        "black",
        "isort",
        "ruff-check",
        "ruff-format"
      ],
      "default": null,
      "deprecated": false,
      "deprecated_message": null,
      "description": "Formatters for output (default: [black, isort]; use builtin for dependency-free formatting)",
      "dest": "formatters",
      "flags": [
        "--formatters"
      ],
      "metavar": null,
      "name": "--formatters",
      "nargs": "+",
      "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 file (JSON). 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": "Path"
    },
    {
      "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": "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": "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": [
        "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": "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": "loads"
    },
    {
      "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": "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": "StoreTrueAction",
      "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"
      ],
      "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": "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": "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": "StoreTrueAction",
      "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"
      ],
      "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 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"
      ],
      "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": "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": "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": "StoreTrueAction",
      "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"
      ],
      "metavar": null,
      "name": "--use-unique-items-as-set",
      "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": "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": 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 to a Pydantic v2 model or schema dict (e.g., 'mypackage.module: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: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": 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",
        "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 file (JSON) 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": "Path"
      },
      {
        "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": "StoreAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Default value overrides file (JSON). 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": "Path"
      },
      {
        "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": "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": "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": "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 file (JSON) 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": "Path"
      },
      {
        "action": "StoreTrueAction",
        "category": "Field Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Set enum members as default values for enum field",
        "dest": "set_default_enum_member",
        "flags": [
          "--set-default-enum-member"
        ],
        "metavar": null,
        "name": "--set-default-enum-member",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "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"
        ],
        "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--use-field-description",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "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"
        ],
        "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": "StoreTrueAction",
        "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"
        ],
        "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--use-single-line-docstring",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "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"
        ],
        "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": "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": "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": "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": [
          "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, then exit.",
        "dest": "list_experimental",
        "flags": [
          "--list-experimental"
        ],
        "metavar": "{table,json,markdown}",
        "name": "--list-experimental",
        "nargs": "?",
        "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": [
          "generate-prompt",
          "generation",
          "structured-output"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Output JSON Schema for the selected structured output format and exit.",
        "dest": "output_format_json_schema",
        "flags": [
          "--output-format-json-schema"
        ],
        "metavar": "{generate-prompt,generation,structured-output}",
        "name": "--output-format-json-schema",
        "nargs": null,
        "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": "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": "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": "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": "StoreTrueAction",
        "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"
        ],
        "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--collapse-reuse-models",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "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"
        ],
        "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": "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": "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": "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": [
          "numbered",
          "parent-prefixed",
          "full-path",
          "primary-first"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Strategy for generating unique model names when duplicates occur. 'numbered' (default): Append numeric suffix (Address, Address1, Address2). Simple but names don't indicate context. 'parent-prefixed': Prefix with parent model name using underscore (Company_Address, Company_Employee_Address for nested). Names show hierarchy. 'full-path': Similar to parent-prefixed but joins with CamelCase (CompanyAddress, CompanyEmployeeAddress). More readable for deep nesting. 'primary-first': Keep clean names for primary definitions (in /definitions/ or /components/schemas/), only add suffix to inline/nested duplicates.",
        "dest": "naming_strategy",
        "flags": [
          "--naming-strategy"
        ],
        "metavar": null,
        "name": "--naming-strategy",
        "nargs": null,
        "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": "StoreTrueAction",
        "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"
        ],
        "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": "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": "StoreTrueAction",
        "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"
        ],
        "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",
        "dest": "strip_default_none",
        "flags": [
          "--strip-default-none"
        ],
        "metavar": null,
        "name": "--strip-default-none",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreAction",
        "category": "Model Customization",
        "choices": [
          "2",
          "2.11"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Target Pydantic version for generated code. '2': Pydantic 2.0+ compatible (default, uses populate_by_name). '2.11': Pydantic 2.11+ (uses validate_by_name).",
        "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"
        ],
        "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--use-default-kwarg",
        "nargs": 0,
        "required": false,
        "type": null
      },
      {
        "action": "StoreTrueAction",
        "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"
        ],
        "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 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": "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--use-subclass-enum",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ],
    "OpenAPI-only Options": [
      {
        "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": "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"
        ],
        "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
      }
    ],
    "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": "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": 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": "A file with kwargs for custom formatters.",
        "dest": "custom_formatters_kwargs",
        "flags": [
          "--custom-formatters-kwargs"
        ],
        "metavar": null,
        "name": "--custom-formatters-kwargs",
        "nargs": null,
        "required": false,
        "type": "Path"
      },
      {
        "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": "StoreTrueAction",
        "category": "Template Customization",
        "choices": null,
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Disable timestamp on file headers",
        "dest": "disable_timestamp",
        "flags": [
          "--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. Input is supposed to be a json/yaml file. 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": "Path"
      },
      {
        "action": "StoreAction",
        "category": "Template Customization",
        "choices": [
          "builtin",
          "black",
          "isort",
          "ruff-check",
          "ruff-format"
        ],
        "default": null,
        "deprecated": false,
        "deprecated_message": null,
        "description": "Formatters for output (default: [black, isort]; use builtin for dependency-free formatting)",
        "dest": "formatters",
        "flags": [
          "--formatters"
        ],
        "metavar": null,
        "name": "--formatters",
        "nargs": "+",
        "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 file (JSON). 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": "Path"
      },
      {
        "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": "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": "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": [
          "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": "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": "loads"
      },
      {
        "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": "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": "StoreTrueAction",
        "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"
        ],
        "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": "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": "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": "StoreTrueAction",
        "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"
        ],
        "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 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"
        ],
        "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": "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": "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": "StoreTrueAction",
        "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"
        ],
        "metavar": null,
        "name": "--use-unique-items-as-set",
        "nargs": 0,
        "required": false,
        "type": null
      }
    ]
  },
  "question": "Which strict Pydantic v2 options should I use?",
  "version": 1
}
