# Table of Contents - [๐Ÿ–ฅ๏ธ CLI Reference - datamodel-code-generator](#-cli-reference-datamodel-code-generator) - [datamodel-code-generator - datamodel-code-generator](#datamodel-code-generator-datamodel-code-generator) - [๐Ÿ“‹ GraphQL-only Options - datamodel-code-generator](#-graphql-only-options-datamodel-code-generator) - [๐Ÿ“ Utility Options - datamodel-code-generator](#-utility-options-datamodel-code-generator) - [๐Ÿ“ Base Options - datamodel-code-generator](#-base-options-datamodel-code-generator) - [๐Ÿ” Quick Reference - datamodel-code-generator](#-quick-reference-datamodel-code-generator) - [Help - datamodel-code-generator](#help-datamodel-code-generator) - [Debug - datamodel-code-generator](#debug-datamodel-code-generator) - [๐Ÿ“˜ OpenAPI-only Options - datamodel-code-generator](#-openapi-only-options-datamodel-code-generator) - [โš™๏ธ General Options - datamodel-code-generator](#-general-options-datamodel-code-generator) - [Version - datamodel-code-generator](#version-datamodel-code-generator) - [Profile - datamodel-code-generator](#profile-datamodel-code-generator) - [No color - datamodel-code-generator](#no-color-datamodel-code-generator) - [Generate prompt - datamodel-code-generator](#generate-prompt-datamodel-code-generator) - [๐Ÿ“š Supported Input Formats - datamodel-code-generator](#-supported-input-formats-datamodel-code-generator) - [๐Ÿ“Š Generate from JSON Data - datamodel-code-generator](#-generate-from-json-data-datamodel-code-generator) - [๐Ÿ”ท Generate from GraphQL - datamodel-code-generator](#-generate-from-graphql-datamodel-code-generator) - [๐Ÿ“‹ Generate from JSON Schema - datamodel-code-generator](#-generate-from-json-schema-datamodel-code-generator) - [Schema Version Support - datamodel-code-generator](#schema-version-support-datamodel-code-generator) - [Module Structure and Exports - datamodel-code-generator](#module-structure-and-exports-datamodel-code-generator) - [๐Ÿ“˜ Generate from OpenAPI - datamodel-code-generator](#-generate-from-openapi-datamodel-code-generator) - [Output Model Types - datamodel-code-generator](#output-model-types-datamodel-code-generator) - [๐ŸŽจ Custom Code Formatters - datamodel-code-generator](#-custom-code-formatters-datamodel-code-generator) - [๐Ÿ Generate from Python Models - datamodel-code-generator](#-generate-from-python-models-datamodel-code-generator) - [๐Ÿ–Œ๏ธ Code Formatting - datamodel-code-generator](#-code-formatting-datamodel-code-generator) - [Model Reuse and Deduplication - datamodel-code-generator](#model-reuse-and-deduplication-datamodel-code-generator) - [Custom Class Decorators - datamodel-code-generator](#custom-class-decorators-datamodel-code-generator) - [๐Ÿ”’ Field Constraints - datamodel-code-generator](#-field-constraints-datamodel-code-generator) - [๐Ÿ“ฆ Root Models and Type Aliases - datamodel-code-generator](#-root-models-and-type-aliases-datamodel-code-generator) - [๐ŸŽจ Custom Templates - datamodel-code-generator](#-custom-templates-datamodel-code-generator) - [Field Validators - datamodel-code-generator](#field-validators-datamodel-code-generator) - [๐ŸŽจ Template Customization - datamodel-code-generator](#-template-customization-datamodel-code-generator) - [โš™๏ธ pyproject.toml Configuration - datamodel-code-generator](#-pyproject-toml-configuration-datamodel-code-generator) - [๐Ÿท๏ธ Field Aliases - datamodel-code-generator](#-field-aliases-datamodel-code-generator) - [Python Version Compatibility - datamodel-code-generator](#python-version-compatibility-datamodel-code-generator) - [OpenAPI-Specific Options - datamodel-code-generator](#openapi-specific-options-datamodel-code-generator) - [One-liner Usage - datamodel-code-generator](#one-liner-usage-datamodel-code-generator) - [Type Mappings and Custom Types - datamodel-code-generator](#type-mappings-and-custom-types-datamodel-code-generator) - [๐Ÿ Using datamodel-code-generator as a Module - datamodel-code-generator](#-using-datamodel-code-generator-as-a-module-datamodel-code-generator) - [๐Ÿ› ๏ธ Development - datamodel-code-generator](#-development-datamodel-code-generator) - [LLM Integration - datamodel-code-generator](#llm-integration-datamodel-code-generator) - [โ“ Frequently Asked Questions - datamodel-code-generator](#-frequently-asked-questions-datamodel-code-generator) - [Dynamic Model Generation - datamodel-code-generator](#dynamic-model-generation-datamodel-code-generator) - [CI/CD Integration - datamodel-code-generator](#ci-cd-integration-datamodel-code-generator) - [๐Ÿท๏ธ Field Customization - datamodel-code-generator](#-field-customization-datamodel-code-generator) - [๐Ÿ”ง Typing Customization - datamodel-code-generator](#-typing-customization-datamodel-code-generator) --- # ๐Ÿ–ฅ๏ธ CLI Reference - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#cli-reference) ๐Ÿ–ฅ๏ธ CLI Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#cli-reference "Permanent link") ================================================================================================================== This documentation is auto-generated from test cases. ๐Ÿ” **[Quick Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/) ** - All options on one page for Ctrl+F search ๐Ÿ“‚ Categories[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#categories "Permanent link") ----------------------------------------------------------------------------------------------------------- | Category | Options | Description | | --- | --- | --- | | ๐Ÿ“ [Base Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/) | 9 | Input/output configuration | | ๐Ÿ”ง [Typing Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/) | 29 | Type annotation and import behavior | | ๐Ÿท๏ธ [Field Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/) | 24 | Field naming and docstring behavior | | ๐Ÿ—๏ธ [Model Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/) | 39 | Model generation behavior | | ๐ŸŽจ [Template Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/) | 19 | Output formatting and custom rendering | | ๐Ÿ“˜ [OpenAPI-only Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/) | 7 | OpenAPI-specific features | | ๐Ÿ“‹ [GraphQL-only Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/) | 1 | | | โš™๏ธ [General Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/) | 15 | Utilities and meta options | | ๐Ÿ“ [Utility Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/) | 6 | Help, version, debug options | All Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#all-options "Permanent link") ---------------------------------------------------------------------------------------------------------- **Jump to:** [A](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#a) ยท [B](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#b) ยท [C](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#c) ยท [D](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#d) ยท [E](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#e) ยท [F](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#f) ยท [G](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#g) ยท [H](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#h) ยท [I](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#i) ยท [K](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#k) ยท [M](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#m) ยท [N](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#n) ยท [O](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#o) ยท [P](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#p) ยท [R](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#r) ยท [S](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#s) ยท [T](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#t) ยท [U](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#u) ยท [V](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#v) ยท [W](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#w) ### A[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#a "Permanent link") * [`--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) * [`--aliases`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases) * [`--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) * [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) * [`--allof-class-hierarchy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-class-hierarchy) * [`--allof-merge-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode) * [`--allow-extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-extra-fields) * [`--allow-population-by-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-population-by-field-name) ### B[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#b "Permanent link") * [`--base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class) * [`--base-class-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class-map) ### C[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#c "Permanent link") * [`--capitalize-enum-members`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members) * [`--check`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check) * [`--class-decorators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators) * [`--class-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name) * [`--class-name-affix-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-affix-scope) * [`--class-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-prefix) * [`--class-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-suffix) * [`--collapse-reuse-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-reuse-models) * [`--collapse-root-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models) * [`--collapse-root-models-name-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models-name-strategy) * [`--custom-file-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header) * [`--custom-file-header-path`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header-path) * [`--custom-formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters) * [`--custom-formatters-kwargs`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs) * [`--custom-template-dir`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir) ### D[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#d "Permanent link") * [`--dataclass-arguments`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#dataclass-arguments) * [`--debug`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#debug) * [`--default-values`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#default-values) * [`--disable-appending-item-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-appending-item-suffix) * [`--disable-future-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#disable-future-imports) * [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) * [`--disable-warnings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#disable-warnings) * [`--duplicate-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#duplicate-name-suffix) ### E[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#e "Permanent link") * [`--empty-enum-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#empty-enum-field-name) * [`--enable-command-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-command-header) * [`--enable-faux-immutability`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#enable-faux-immutability) * [`--enable-version-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-version-header) * [`--encoding`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#encoding) * [`--enum-field-as-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal) * [`--enum-field-as-literal-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal-map) * [`--extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#extra-fields) * [`--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) ### F[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#f "Permanent link") * [`--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) * [`--field-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys) * [`--field-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys-without-x-prefix) * [`--field-include-all-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-include-all-keys) * [`--field-type-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-type-collision-strategy) * [`--force-optional`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#force-optional) * [`--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) * [`--frozen-dataclasses`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#frozen-dataclasses) ### G[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#g "Permanent link") * [`--generate-cli-command`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command) * [`--generate-prompt`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#generate-prompt) * [`--generate-pyproject-config`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config) * [`--graphql-no-typename`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-no-typename) ### H[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#h "Permanent link") * [`--help`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#help) * [`--http-headers`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-headers) * [`--http-ignore-tls`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-ignore-tls) * [`--http-query-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-query-parameters) * [`--http-timeout`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-timeout) ### I[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#i "Permanent link") * [`--ignore-enum-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#ignore-enum-constraints) * [`--ignore-pyproject`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject) * [`--include-path-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#include-path-parameters) * [`--input`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input) * [`--input-file-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-file-type) * [`--input-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model) * [`--input-model-ref-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model-ref-strategy) ### K[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#k "Permanent link") * [`--keep-model-order`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keep-model-order) * [`--keyword-only`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keyword-only) ### M[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#m "Permanent link") * [`--model-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys) * [`--model-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys-without-x-prefix) * [`--module-split-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#module-split-mode) ### N[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#n "Permanent link") * [`--naming-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#naming-strategy) * [`--no-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#no-alias) * [`--no-color`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#no-color) * [`--no-treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#no-treat-dot-as-module) * [`--no-use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-closed-typed-dict) * [`--no-use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum) * [`--no-use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections) * [`--no-use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator) ### O[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#o "Permanent link") * [`--openapi-include-paths`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-include-paths) * [`--openapi-scopes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-scopes) * [`--original-field-name-delimiter`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#original-field-name-delimiter) * [`--output`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#output) * [`--output-date-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-date-class) * [`--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) * [`--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) ### P[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#p "Permanent link") * [`--parent-scoped-naming`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#parent-scoped-naming) * [`--profile`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#profile) ### R[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#r "Permanent link") * [`--read-only-write-only-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#read-only-write-only-model-type) * [`--remove-special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#remove-special-field-name-prefix) * [`--reuse-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-model) * [`--reuse-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-scope) ### S[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#s "Permanent link") * [`--schema-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version) * [`--schema-version-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version-mode) * [`--set-default-enum-member`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#set-default-enum-member) * [`--shared-module-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#shared-module-name) * [`--skip-root-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#skip-root-model) * [`--snake-case-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field) * [`--special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#special-field-name-prefix) * [`--strict-nullable`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strict-nullable) * [`--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) * [`--strip-default-none`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strip-default-none) ### T[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#t "Permanent link") * [`--target-pydantic-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-pydantic-version) * [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) * [`--treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module) * [`--type-mappings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings) * [`--type-overrides`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-overrides) ### U[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#u "Permanent link") * [`--union-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#union-mode) * [`--url`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#url) * [`--use-annotated`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated) * [`--use-attribute-docstrings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-attribute-docstrings) * [`--use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-closed-typed-dict) * [`--use-decimal-for-multiple-of`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-decimal-for-multiple-of) * [`--use-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default) * [`--use-default-factory-for-optional-nested-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-factory-for-optional-nested-models) * [`--use-default-kwarg`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-kwarg) * [`--use-double-quotes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes) * [`--use-enum-values-in-discriminator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-enum-values-in-discriminator) * [`--use-exact-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports) * [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) * [`--use-field-description-example`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description-example) * [`--use-frozen-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-frozen-field) * [`--use-generic-base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-generic-base-class) * [`--use-generic-container-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types) * [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) * [`--use-non-positive-negative-number-constrained-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-non-positive-negative-number-constrained-types) * [`--use-one-literal-as-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-one-literal-as-default) * [`--use-operation-id-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-operation-id-as-name) * [`--use-pendulum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum) * [`--use-root-model-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-root-model-type-alias) * [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) * [`--use-serialization-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-serialization-alias) * [`--use-serialize-as-any`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-serialize-as-any) * [`--use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-specialized-enum) * [`--use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections) * [`--use-standard-primitive-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-primitive-types) * [`--use-status-code-in-response-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-status-code-in-response-name) * [`--use-subclass-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-subclass-enum) * [`--use-title-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-title-as-name) * [`--use-tuple-for-fixed-items`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-tuple-for-fixed-items) * [`--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) * [`--use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator) * [`--use-unique-items-as-set`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-unique-items-as-set) ### V[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#v "Permanent link") * [`--validation`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#validation) * [`--validators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#validators) * [`--version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#version) ### W[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/#w "Permanent link") * [`--watch`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch) * [`--watch-delay`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch-delay) * [`--wrap-string-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#wrap-string-literal) --- # datamodel-code-generator - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/#datamodel-code-generator) datamodel-code-generator[ยถ](https://datamodel-code-generator.koxudaxi.dev/#datamodel-code-generator "Permanent link") ====================================================================================================================== ๐Ÿš€ Generate Python data models from schema definitions in seconds. [![PyPI version](https://badge.fury.io/py/datamodel-code-generator.svg)](https://pypi.python.org/pypi/datamodel-code-generator) [![Conda-forge](https://img.shields.io/conda/v/conda-forge/datamodel-code-generator)](https://anaconda.org/conda-forge/datamodel-code-generator) [![Downloads](https://pepy.tech/badge/datamodel-code-generator/month)](https://pepy.tech/project/datamodel-code-generator) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/datamodel-code-generator)](https://pypi.python.org/pypi/datamodel-code-generator) [![codecov](https://codecov.io/gh/koxudaxi/datamodel-code-generator/graph/badge.svg?token=plzSSFb9Li)](https://codecov.io/gh/koxudaxi/datamodel-code-generator) ![license](https://img.shields.io/github/license/koxudaxi/datamodel-code-generator.svg) [![Pydantic v1](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v1.json)](https://pydantic.dev/) [![Pydantic v2](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pydantic/pydantic/main/docs/badge/v2.json)](https://pydantic.dev/) * * * โœจ What it does[ยถ](https://datamodel-code-generator.koxudaxi.dev/#what-it-does "Permanent link") ------------------------------------------------------------------------------------------------ * ๐Ÿ“„ Converts **OpenAPI 3**, **JSON Schema**, **GraphQL**, and raw data (JSON/YAML/CSV) into Python models * ๐Ÿ Generates from **existing Python types** (Pydantic, dataclass, TypedDict) via `--input-model` * ๐ŸŽฏ Generates **Pydantic v1/v2**, **dataclasses**, **TypedDict**, or **msgspec** output * ๐Ÿ”— Handles complex schemas: `$ref`, `allOf`, `oneOf`, `anyOf`, enums, and nested types * โœ… Produces type-safe, validated code ready for your IDE and type checker * * * ๐Ÿ“ฆ Installation[ยถ](https://datamodel-code-generator.koxudaxi.dev/#installation "Permanent link") ------------------------------------------------------------------------------------------------- [uv tool (Recommended)](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_1) [pip](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_2) [uv (project)](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_3) [conda](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_4) [pipx](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_5) [uvx (one-shot)](https://datamodel-code-generator.koxudaxi.dev/#__tabbed_1_6) `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-0-1) uv tool install datamodel-code-generator` `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-1-1) pip install datamodel-code-generator` `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-2-1) uv add datamodel-code-generator` `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-3-1) conda install -c conda-forge datamodel-code-generator` `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-4-1) pipx install datamodel-code-generator` `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-5-1) uvx datamodel-codegen --help` * * * Omitting --output-model-type is deprecated Starting from version 0.53.0, omitting `--output-model-type` is deprecated. The implicit default `pydantic.BaseModel` (Pydantic v1) will be removed in a future version. We recommend using `--output-model-type pydantic_v2.BaseModel` for new projects. * * * ๐Ÿƒ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/#quick-start "Permanent link") ----------------------------------------------------------------------------------------------- ### 1๏ธโƒฃ Create a schema file[ยถ](https://datamodel-code-generator.koxudaxi.dev/#1-create-a-schema-file "Permanent link") pet.json `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-1) { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-5) "required": ["name", "species"], [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-7) "name": { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-8) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-9) "description": "The pet's name" [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-10) }, [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-11) "species": { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-12) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-13) "enum": ["dog", "cat", "bird", "fish"] [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-14) }, [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-15) "age": { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-17) "minimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-18) "description": "Age in years" [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-19) }, [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-20) "vaccinated": { [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-21) "type": "boolean", [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-22) "default": false [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-23) } [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-24) } [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-6-25) }` ### 2๏ธโƒฃ Run the generator[ยถ](https://datamodel-code-generator.koxudaxi.dev/#2-run-the-generator "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-7-1) datamodel-codegen --input pet.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py` ### 3๏ธโƒฃ Use your models[ยถ](https://datamodel-code-generator.koxudaxi.dev/#3-use-your-models "Permanent link") model.py `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-2) # filename: tutorial_pet.json [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-3)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-6) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-7) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-8)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-10) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-11)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-12) class Species(Enum): [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-13) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-14) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-15) bird = 'bird' [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-16) fish = 'fish' [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-17) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-18)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-19) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-20) name: str = Field(..., description="The pet's name") [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-21) species: Species [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-22) age: Optional[int] = Field(None, description='Age in years', ge=0) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-8-23) vaccinated: Optional[bool] = False` ๐ŸŽ‰ That's it! Your schema is now a fully-typed Python model. * * * ๐Ÿ“ฅ Choose Your Input[ยถ](https://datamodel-code-generator.koxudaxi.dev/#choose-your-input "Permanent link") ----------------------------------------------------------------------------------------------------------- | Input Type | File Types | Example | | --- | --- | --- | | ๐Ÿ“˜ [OpenAPI 3](https://datamodel-code-generator.koxudaxi.dev/openapi/) | `.yaml`, `.json` | API specifications | | ๐Ÿ“‹ [JSON Schema](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) | `.json` | Data validation schemas | | ๐Ÿ”ท [GraphQL](https://datamodel-code-generator.koxudaxi.dev/graphql/) | `.graphql` | GraphQL type definitions | | ๐Ÿ“Š [JSON/YAML Data](https://datamodel-code-generator.koxudaxi.dev/jsondata/) | `.json`, `.yaml` | Infer schema from data | | ๐Ÿ [Python Models](https://datamodel-code-generator.koxudaxi.dev/python-model/) | `.py` | Pydantic, dataclass, TypedDict | * * * ๐Ÿ“ค Choose Your Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/#choose-your-output "Permanent link") ------------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-1) # ๐Ÿ†• Pydantic v2 (recommended for new projects) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-2) datamodel-codegen --output-model-type pydantic_v2.BaseModel ... [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-3)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-4) # ๐Ÿ”„ Pydantic v1 (default, for compatibility) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-5) datamodel-codegen --output-model-type pydantic.BaseModel ... [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-7) # ๐Ÿ—๏ธ Python dataclasses [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-8) datamodel-codegen --output-model-type dataclasses.dataclass ... [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-9)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-10) # ๐Ÿ“ TypedDict (for type hints without validation) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-11) datamodel-codegen --output-model-type typing.TypedDict ... [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-12)[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-13) # โšก msgspec (high-performance serialization) [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-9-14) datamodel-codegen --output-model-type msgspec.Struct ...` See [Supported Data Types](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/) for the full list. * * * ๐Ÿณ Common Recipes[ยถ](https://datamodel-code-generator.koxudaxi.dev/#common-recipes "Permanent link") ----------------------------------------------------------------------------------------------------- ### ๐Ÿค– Get CLI Help from LLMs[ยถ](https://datamodel-code-generator.koxudaxi.dev/#get-cli-help-from-llms "Permanent link") Generate a prompt to ask LLMs about CLI options: `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-10-1) datamodel-codegen --generate-prompt "Best options for Pydantic v2?" | claude -p` See [LLM Integration](https://datamodel-code-generator.koxudaxi.dev/llm-integration/) for more examples. ### ๐ŸŒ Generate from URL[ยถ](https://datamodel-code-generator.koxudaxi.dev/#http-extra-option "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-11-1) pip install 'datamodel-code-generator[http]' [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-11-2) datamodel-codegen --url https://example.com/api/openapi.yaml --output model.py` ### โš™๏ธ Use with pyproject.toml[ยถ](https://datamodel-code-generator.koxudaxi.dev/#use-with-pyprojecttoml "Permanent link") pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-12-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-12-2) input = "schema.yaml" [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-12-3) output = "src/models.py" [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-12-4) output-model-type = "pydantic_v2.BaseModel"` Then simply run: `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-13-1) datamodel-codegen` See [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) for more options. ### ๐Ÿ”„ CI/CD Integration[ยถ](https://datamodel-code-generator.koxudaxi.dev/#cicd-integration "Permanent link") Validate generated models in your CI pipeline: .github/workflows/validate-models.yml `[](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-14-1) - uses: koxudaxi/datamodel-code-generator@0.53.0 [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-14-2) with: [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-14-3) input: schemas/api.yaml [](https://datamodel-code-generator.koxudaxi.dev/#__codelineno-14-4) output: src/models/api.py` See [CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) for more options. * * * ๐Ÿ“š Next Steps[ยถ](https://datamodel-code-generator.koxudaxi.dev/#next-steps "Permanent link") --------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ **[CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) ** - All command-line options with examples * โš™๏ธ **[pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) ** - Configure via pyproject.toml * ๐Ÿš€ **[One-liner Usage](https://datamodel-code-generator.koxudaxi.dev/oneliner/) ** - uvx, pipx, clipboard integration * ๐Ÿ”„ **[CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) ** - GitHub Actions and CI validation * ๐ŸŽจ **[Custom Templates](https://datamodel-code-generator.koxudaxi.dev/custom_template/) ** - Customize generated code with Jinja2 * ๐Ÿ–Œ๏ธ **[Code Formatting](https://datamodel-code-generator.koxudaxi.dev/formatting/) ** - Configure black, isort, and ruff * โ“ **[FAQ](https://datamodel-code-generator.koxudaxi.dev/faq/) ** - Common questions and troubleshooting * * * ๐Ÿ’– Sponsors[ยถ](https://datamodel-code-generator.koxudaxi.dev/#sponsors "Permanent link") ----------------------------------------------------------------------------------------- [![Astral Logo](https://avatars.githubusercontent.com/u/115962839?s=200&v=4)\ \ Astral](https://github.com/astral-sh) * * * ๐Ÿข Used by[ยถ](https://datamodel-code-generator.koxudaxi.dev/#used-by "Permanent link") --------------------------------------------------------------------------------------- These projects use datamodel-code-generator. See the linked examples for real-world usage. * [PostHog/posthog](https://github.com/PostHog/posthog) - _[Generate models via npm run](https://github.com/PostHog/posthog/blob/e1a55b9cb38d01225224bebf8f0c1e28faa22399/package.json#L41) _ * [airbytehq/airbyte](https://github.com/airbytehq/airbyte) - _[Generate Python, Java/Kotlin, and Typescript protocol models](https://github.com/airbytehq/airbyte-protocol/tree/main/protocol-models/bin) _ * [apache/iceberg](https://github.com/apache/iceberg) - _[Generate Python code](https://github.com/apache/iceberg/blob/d2e1094ee0cc6239d43f63ba5114272f59d605d2/open-api/README.md?plain=1#L39) _ * [open-metadata/OpenMetadata](https://github.com/open-metadata/OpenMetadata) - _[datamodel\_generation.py](https://github.com/open-metadata/OpenMetadata/blob/main/scripts/datamodel_generation.py) _ * [awslabs/aws-lambda-powertools-python](https://github.com/awslabs/aws-lambda-powertools-python) - _[Recommended for advanced-use-cases](https://awslabs.github.io/aws-lambda-powertools-python/2.6.0/utilities/parser/#advanced-use-cases) _ * [Netflix/consoleme](https://github.com/Netflix/consoleme) - _[Generate models from Swagger](https://github.com/Netflix/consoleme/blob/master/docs/gitbook/faq.md#how-do-i-generate-models-from-the-swagger-specification) _ * [DataDog/integrations-core](https://github.com/DataDog/integrations-core) - _[Config models](https://github.com/DataDog/integrations-core/blob/master/docs/developer/meta/config-models.md) _ * [argoproj-labs/hera](https://github.com/argoproj-labs/hera) - _[Makefile](https://github.com/argoproj-labs/hera/blob/c8cbf0c7a676de57469ca3d6aeacde7a5e84f8b7/Makefile#L53-L62) _ * [SeldonIO/MLServer](https://github.com/SeldonIO/MLServer) - _[generate-types.sh](https://github.com/SeldonIO/MLServer/blob/master/hack/generate-types.sh) _ * [geojupyter/jupytergis](https://github.com/geojupyter/jupytergis) - _[Python type generation from JSONSchema](https://jupytergis.readthedocs.io/en/latest/contributor_guide/explanation/code-generation.html) _ * [Nike-Inc/brickflow](https://github.com/Nike-Inc/brickflow) - _[Code generate tools](https://github.com/Nike-Inc/brickflow/blob/e3245bf638588867b831820a6675ada76b2010bf/tools/README.md?plain=1#L8) _ * [cloudcoil/cloudcoil](https://github.com/cloudcoil/cloudcoil) - _[Model generation](https://github.com/cloudcoil/cloudcoil#%EF%B8%8F-model-generation) _ * [IBM/compliance-trestle](https://github.com/IBM/compliance-trestle) - _[Building models from OSCAL schemas](https://github.com/IBM/compliance-trestle/blob/develop/docs/contributing/website.md#building-the-models-from-the-oscal-schemas) _ * [hashintel/hash](https://github.com/hashintel/hash) - _[codegen.sh](https://github.com/hashintel/hash/blob/9762b1a1937e14f6b387677e4c7fe4a5f3d4a1e1/libs/%40local/hash-graph-client/python/scripts/codegen.sh#L21-L39) _ [See all dependents โ†’](https://github.com/koxudaxi/datamodel-code-generator/network/dependents) --- # ๐Ÿ“‹ GraphQL-only Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-only-options) ๐Ÿ“‹ GraphQL-only Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-only-options "Permanent link") ==================================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#options "Permanent link") -------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--graphql-no-typename`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-no-typename) | Exclude \_\_typename field from generated GraphQL models. | * * * `--graphql-no-typename`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-no-typename "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------- Exclude \_\_typename field from generated GraphQL models. The `--graphql-no-typename` flag prevents the generator from adding the `typename__` field (aliased to `__typename`) to generated models. This is useful when using generated models for GraphQL mutations, as servers typically don't expect this field in input data. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-0-1) datamodel-codegen --input schema.json --graphql-no-typename` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-1) type Book { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-2) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-3) title: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-4) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-6) interface Node { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-7) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-8) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-10) input BookInput { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-11) title: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-1-12) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-2) # filename: no-typename.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-7) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-17) ID: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-18) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-19) The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-23) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-24) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-25) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-26) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-29) class Node(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-30) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-33) class Book(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-34) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-35) title: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-38) class BookInput(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#__codelineno-2-39) title: String`` * * * --- # ๐Ÿ“ Utility Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#utility-options) ๐Ÿ“ Utility Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#utility-options "Permanent link") ===================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#options "Permanent link") --------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--debug`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#debug) | Show debug messages during code generation | | [`--generate-prompt`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#generate-prompt) | Generate a prompt for consulting LLMs about CLI options | | [`--help`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#help) | Show help message and exit | | [`--no-color`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#no-color) | Disable colorized output | | [`--profile`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#profile) | Use a named profile from pyproject.toml | | [`--version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#version) | Show program version and exit | * * * `--debug`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#debug "Permanent link") ------------------------------------------------------------------------------------------------------------------ Show debug messages during code generation. Enables verbose debug output to help troubleshoot issues with schema parsing or code generation. Requires the `debug` extra to be installed. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-0-1) datamodel-codegen --input schema.json --debug` Requires extra dependency The debug feature requires the `debug` extra: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-1-1) pip install 'datamodel-code-generator[debug]'` * * * `--generate-prompt`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#generate-prompt "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------- Generate a prompt for consulting LLMs about CLI options. Outputs a formatted prompt containing your current options, all available options by category, and full help text. Pipe to CLI LLM tools or copy to clipboard for web-based LLM chats. **See also:** [LLM Integration](https://datamodel-code-generator.koxudaxi.dev/llm-integration/) for detailed usage examples Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-2-1) datamodel-codegen --generate-prompt [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-2-2) datamodel-codegen --generate-prompt "How do I generate strict types?"` Quick Examples **Pipe to CLI tools:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-3-1) datamodel-codegen --generate-prompt | claude -p # Claude Code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-3-2) datamodel-codegen --generate-prompt | codex exec # OpenAI Codex` **Copy to clipboard:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-4-1) datamodel-codegen --generate-prompt | pbcopy # macOS [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-4-2) datamodel-codegen --generate-prompt | xclip -selection clipboard # Linux [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-4-3) datamodel-codegen --generate-prompt | clip.exe # WSL2` * * * `--help`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#help "Permanent link") ---------------------------------------------------------------------------------------------------------------- Show help message and exit. Displays all available command-line options with their descriptions and default values. **Aliases:** `-h` Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-5-1) datamodel-codegen --help` Output `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-1) usage: datamodel-codegen [-h] [--input INPUT] [--url URL] ... [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-3) Generate Python data models from schema files. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-5) options: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-6) -h, --help show this help message and exit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-7) --input INPUT Input file path (default: stdin) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-6-8) ...` * * * `--no-color`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#no-color "Permanent link") ------------------------------------------------------------------------------------------------------------------------ Disable colorized output. By default, datamodel-codegen uses colored output for better readability. Use this option to disable colors, which is useful for CI/CD pipelines or when redirecting output to files. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-7-1) datamodel-codegen --input schema.json --no-color` Environment variable You can also disable colors by setting the `NO_COLOR` environment variable: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-8-1) NO_COLOR=1 datamodel-codegen --input schema.json` * * * `--profile`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#profile "Permanent link") ---------------------------------------------------------------------------------------------------------------------- Use a named profile from pyproject.toml configuration. Profiles allow you to define multiple named configurations in your pyproject.toml file. Each profile can override the default settings with its own set of options. **Related:** [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-9-1) datamodel-codegen --input schema.json --profile strict` Configuration (pyproject.toml) `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-2) # Default configuration [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-3) output-model-type = "pydantic_v2.BaseModel" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-5) [tool.datamodel-codegen.profiles.strict] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-6) # Strict profile with additional options [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-7) strict-types = ["str", "int", "float", "bool"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-8) strict-nullable = true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-10) [tool.datamodel-codegen.profiles.legacy] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-11) # Legacy profile for Pydantic v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-10-12) output-model-type = "pydantic.BaseModel"` Use profiles: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-11-1) # Use the strict profile [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-11-2) datamodel-codegen --input schema.json --profile strict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-11-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-11-4) # Use the legacy profile [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-11-5) datamodel-codegen --input schema.json --profile legacy` * * * `--version`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#version "Permanent link") ---------------------------------------------------------------------------------------------------------------------- Show program version and exit. Displays the installed version of datamodel-code-generator. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-12-1) datamodel-codegen --version` Output `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#__codelineno-13-1) datamodel-codegen version: 0.x.x` * * * --- # ๐Ÿ“ Base Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#base-options) ๐Ÿ“ Base Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#base-options "Permanent link") ============================================================================================================================ ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#options "Permanent link") ------------------------------------------------------------------------------------------------------------------ | Option | Description | | --- | --- | | [`--encoding`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#encoding) | Specify character encoding for input and output files. | | [`--input`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input) | Specify the input schema file path. | | [`--input-file-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-file-type) | Specify the input file type for code generation. | | [`--input-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model) | Import a Python type or dict schema from a module. | | [`--input-model-ref-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model-ref-strategy) | Strategy for referenced types when using --input-model. | | [`--output`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#output) | Specify the destination path for generated Python code. | | [`--schema-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version) | Schema version to use for parsing. | | [`--schema-version-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version-mode) | Schema version validation mode. | | [`--url`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#url) | Fetch schema from URL with custom HTTP headers. | * * * `--encoding`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#encoding "Permanent link") --------------------------------------------------------------------------------------------------------------------- Specify character encoding for input and output files. The `--encoding` flag sets the character encoding used when reading the schema file and writing the generated Python code. This is useful for schemas containing non-ASCII characters (e.g., Japanese, Chinese). Default is UTF-8, which is the standard encoding for JSON and most modern text files. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-0-1) datamodel-codegen --input schema.json --encoding utf-8` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-3) "title": "ๆ—ฅๆœฌ่ชžModel", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-4) "description": "ใƒขใƒ‡ใƒซใฎ่ชฌๆ˜Žๆ–‡", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-7) "ๅๅ‰": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-8) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-9) "description": "ใƒฆใƒผใ‚ถใƒผๅ" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-11) "ๅนด้ฝข": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-12) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-1-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-2) # filename: encoding_test.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-10) class ๆ—ฅๆœฌ่ชžModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-11) ๅๅ‰: str | None = Field(None, description='ใƒฆใƒผใ‚ถใƒผๅ') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-2-12) ๅนด้ฝข: int | None = None` * * * `--input`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input "Permanent link") --------------------------------------------------------------------------------------------------------------- Specify the input schema file path. The `--input` flag specifies the path to the schema file (JSON Schema, OpenAPI, GraphQL, etc.). Multiple input files can be specified to merge schemas. Required unless using `--url` to fetch schema from a URL. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-3-1) datamodel-codegen --input schema.json --input pet_simple.json --output output.py` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-4-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-5-13) tag: str | None = None` * * * `--input-file-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-file-type "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------- Specify the input file type for code generation. The `--input-file-type` flag explicitly sets the input format. **Important distinction:** * Use `jsonschema`, `openapi`, or `graphql` for **schema definition files** * Use `json`, `yaml`, or `csv` for **raw sample data** to automatically infer a schema For example, if you have a JSON Schema written in YAML format, use `--input-file-type jsonschema`, not `--input-file-type yaml`. The `yaml` type treats the file as raw data and infers a schema from it. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-6-1) datamodel-codegen --input schema.json --input-file-type json` Examples [JSON](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__tabbed_1_1) [YAML](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__tabbed_1_2) **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-2) "Pet": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-3) "name": "dog", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-4) "age": 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-5) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-7-6) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-2) # filename: pet.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-12) age: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-15) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-8-16) Pet: Pet` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-9-1) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-9-2) name: cat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-9-3) age: 3` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-2) # filename: pet.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-12) age: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-15) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-10-16) Pet: Pet` * * * `--input-model`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model "Permanent link") --------------------------------------------------------------------------------------------------------------------------- Import a Python type or dict schema from a module. Use the format `module:Object` or `path/to/file.py:Object` to specify the type. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-11-1) datamodel-codegen --input schema.json --input-model mymodule:MyModel` Examples **Output:** * * * `--input-model-ref-strategy`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model-ref-strategy "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Strategy for referenced types when using --input-model. The `--input-model-ref-strategy` option determines whether to regenerate or import referenced types. Use `regenerate-all` (default) to regenerate all types, `reuse-foreign` to import types from different families (like enums when generating dataclasses) while regenerating same-family types, or `reuse-all` to import all referenced types directly. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-12-1) datamodel-codegen --input schema.json --input-model-ref-strategy reuse-foreign` Examples **Output:** * * * `--output`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#output "Permanent link") ----------------------------------------------------------------------------------------------------------------- Specify the destination path for generated Python code. The `--output` flag specifies where to write the generated Python code. It can be either a file path (single-file output) or a directory path (multi-file output for modular schemas). If omitted, the generated code is written to stdout. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-13-1) datamodel-codegen --input schema.json --input pet_simple.json --output output.py` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-14-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-15-13) tag: str | None = None` * * * `--schema-version`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- Schema version to use for parsing. The `--schema-version` option specifies the schema version to use instead of auto-detection. Valid values depend on input type: JsonSchema (draft-04, draft-06, draft-07, 2019-09, 2020-12) or OpenAPI (3.0, 3.1). Default is 'auto' (detected from $schema or openapi field). Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-16-1) datamodel-codegen --input schema.json --schema-version draft-07` Examples [OpenAPI](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__tabbed_2_1) [JSON Schema](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__tabbed_2_2) **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-17-179) $ref: '#/components/schemas/Event'` **Output:** > **Error:** File not found: openapi/api.py **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-2) "$schema": "http://json-schema.org/draft-07/schema", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-4) "properties": {"s": {"type": ["string"]}}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-5) "required": ["s"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-18-6) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-2) # filename: simple_string.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-6) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-7) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-9) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-19-10) s: str` * * * `--schema-version-mode`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version-mode "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------- Schema version validation mode. The `--schema-version-mode` option controls how schema version validation is performed. 'lenient' (default): accept all features regardless of version. 'strict': warn on features outside the declared/detected version. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-20-1) datamodel-codegen --input schema.json --schema-version-mode lenient` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-2) "$schema": "http://json-schema.org/draft-07/schema", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-4) "properties": {"s": {"type": ["string"]}}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-5) "required": ["s"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-21-6) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-2) # filename: simple_string.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-6) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-7) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-9) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-22-10) s: str` * * * `--url`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#url "Permanent link") ----------------------------------------------------------------------------------------------------------- Fetch schema from URL with custom HTTP headers. The `--url` flag specifies a remote URL to fetch the schema from instead of a local file. The `--http-headers` flag adds custom HTTP headers to the request, useful for authentication (e.g., Bearer tokens) or custom API requirements. Format: `HeaderName:HeaderValue`. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-23-1) datamodel-codegen --input schema.json --url https://api.example.com/schema.json --http-headers "Authorization:Bearer token"` Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-24-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-2) # filename: https://api.example.com/schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#__codelineno-25-13) tag: str | None = None` * * * --- # ๐Ÿ” Quick Reference - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#quick-reference) ๐Ÿ” Quick Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#quick-reference "Permanent link") ===================================================================================================================================== All CLI options in one page for easy **Ctrl+F** searching. ๐Ÿ‘† Click any option to see detailed documentation with examples. * * * `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#__codelineno-0-1) datamodel-codegen [OPTIONS]` ๐Ÿ“‚ All Options by Category[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#all-options-by-category "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- ### ๐Ÿ“ Base Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#base-options "Permanent link") | Option | Description | | --- | --- | | [`--encoding`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#encoding) | Specify character encoding for input and output files. | | [`--input`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input) | Specify the input schema file path. | | [`--input-file-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-file-type) | Specify the input file type for code generation. | | [`--input-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model) | Import a Python type or dict schema from a module. | | [`--input-model-ref-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model-ref-strategy) | Strategy for referenced types when using --input-model. | | [`--output`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#output) | Specify the destination path for generated Python code. | | [`--schema-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version) | Schema version to use for parsing. | | [`--schema-version-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version-mode) | Schema version validation mode. | | [`--url`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#url) | Fetch schema from URL with custom HTTP headers. | ### ๐Ÿ”ง Typing Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#typing-customization "Permanent link") | Option | Description | | --- | --- | | [`--allof-class-hierarchy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-class-hierarchy) | Controls how allOf schemas are represented in the generated class hierarchy. | | [`--allof-merge-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode) | Merge constraints from root model references in allOf schemas. | | [`--disable-future-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#disable-future-imports) | Prevent automatic addition of **future** imports in generated code. | | [`--enum-field-as-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal) | Convert all enum fields to Literal types instead of Enum classes. | | [`--enum-field-as-literal-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal-map) | Override enum/literal generation per-field via JSON mapping. | | [`--ignore-enum-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#ignore-enum-constraints) | Ignore enum constraints and use base string type instead of Enum classes. | | [`--no-use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-closed-typed-dict) | Disable PEP 728 TypedDict closed/extra\_items generation. | | [`--no-use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum) | Disable specialized Enum classes for Python 3.11+ code generation. | | [`--no-use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections) | Use typing.Dict/List instead of built-in dict/list for container types. | | [`--no-use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator) | Use Union\[X, Y\] / Optional\[X\] instead of X | | [`--output-date-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-date-class) | Specify date class type for date schema fields. | | [`--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) | Specify datetime class type for date-time schema fields. | | [`--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) | Enable strict type validation for specified Python types. | | [`--type-mappings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings) | Override default type mappings for schema formats. | | [`--type-overrides`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-overrides) | Replace schema model types with custom Python types via JSON mapping. | | [`--use-annotated`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated) | Use typing.Annotated for Field() with constraints. | | [`--use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-closed-typed-dict) | Generate TypedDict with PEP 728 closed/extra\_items (default: enabled). | | [`--use-decimal-for-multiple-of`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-decimal-for-multiple-of) | Generate Decimal types for fields with multipleOf constraint. | | [`--use-generic-container-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types) | Use generic container types (Sequence, Mapping) for type hinting. | | [`--use-non-positive-negative-number-constrained-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-non-positive-negative-number-constrained-types) | Use NonPositive/NonNegative types for number constraints. | | [`--use-pendulum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum) | Use pendulum types for date/time fields instead of datetime module. | | [`--use-root-model-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-root-model-type-alias) | Generate RootModel as type alias format for better mypy support. | | [`--use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-specialized-enum) | Generate StrEnum/IntEnum for string/integer enums (Python 3.11+). | | [`--use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections) | Use built-in dict/list instead of typing.Dict/List. | | [`--use-standard-primitive-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-primitive-types) | Use Python standard library types for string formats instead of str. | | [`--use-tuple-for-fixed-items`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-tuple-for-fixed-items) | Generate tuple types for arrays with items array syntax. | | [`--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) | Use TypeAlias instead of root models for type definitions (experimental). | | [`--use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator) | Use | | [`--use-unique-items-as-set`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-unique-items-as-set) | Generate set types for arrays with uniqueItems constraint. | ### ๐Ÿท๏ธ Field Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#field-customization "Permanent link") | Option | Description | | --- | --- | | [`--aliases`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases) | Apply custom field and class name aliases from JSON file. | | [`--capitalize-enum-members`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members) | Capitalize enum member names to UPPER\_CASE format. | | [`--default-values`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#default-values) | Override field default values from external JSON file. | | [`--empty-enum-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#empty-enum-field-name) | Name for empty string enum field values. | | [`--extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#extra-fields) | Configure how generated models handle extra fields not defined in schema. | | [`--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) | Generate Field() with validation constraints from schema. | | [`--field-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys) | Include specific extra keys in Field() definitions. | | [`--field-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys-without-x-prefix) | Include schema extension keys in Field() without requiring 'x-' prefix. | | [`--field-include-all-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-include-all-keys) | Include all schema keys in Field() json\_schema\_extra. | | [`--field-type-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-type-collision-strategy) | Rename type class instead of field when names collide (Pydantic v2 only). | | [`--no-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#no-alias) | Disable Field alias generation for non-Python-safe property names. | | [`--original-field-name-delimiter`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#original-field-name-delimiter) | Specify delimiter for original field names when using snake-case conversion. | | [`--remove-special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#remove-special-field-name-prefix) | Remove the special prefix from field names. | | [`--set-default-enum-member`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#set-default-enum-member) | Set the first enum member as the default value for enum fields. | | [`--snake-case-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field) | Convert field names to snake\_case format. | | [`--special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#special-field-name-prefix) | Prefix to add to special field names (like reserved keywords). | | [`--use-attribute-docstrings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-attribute-docstrings) | Generate field descriptions as attribute docstrings instead of Field description... | | [`--use-enum-values-in-discriminator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-enum-values-in-discriminator) | Use enum values in discriminator mappings for union types. | | [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) | Include schema descriptions as Field docstrings. | | [`--use-field-description-example`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description-example) | Add field examples to docstrings. | | [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) | Add field descriptions as inline comments. | | [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) | Use schema description as class docstring. | | [`--use-serialization-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-serialization-alias) | Use serialization\_alias instead of alias for field aliasing (Pydantic v2 only). | | [`--use-title-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-title-as-name) | Use schema title as the generated class name. | ### ๐Ÿ—๏ธ Model Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#model-customization "Permanent link") | Option | Description | | --- | --- | | [`--allow-extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-extra-fields) | Allow extra fields in generated Pydantic models (extra='allow'). | | [`--allow-population-by-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-population-by-field-name) | Allow Pydantic model population by field name (not just alias). | | [`--base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class) | Specify a custom base class for generated models. | | [`--base-class-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class-map) | Specify different base classes for specific models via JSON mapping. | | [`--class-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name) | Override the auto-generated class name with a custom name. | | [`--class-name-affix-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-affix-scope) | Control which classes receive the prefix/suffix. | | [`--class-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-prefix) | Add a prefix to all generated class names. | | [`--class-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-suffix) | Add a suffix to all generated class names. | | [`--collapse-reuse-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-reuse-models) | Collapse duplicate models by replacing references instead of inheritance. | | [`--collapse-root-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models) | Inline root model definitions instead of creating separate wrapper classes. | | [`--collapse-root-models-name-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models-name-strategy) | Select which name to keep when collapsing root models with object references. | | [`--dataclass-arguments`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#dataclass-arguments) | Customize dataclass decorator arguments via JSON dictionary. | | [`--duplicate-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#duplicate-name-suffix) | Customize suffix for duplicate model names. | | [`--enable-faux-immutability`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#enable-faux-immutability) | Enable faux immutability in Pydantic v1 models (allow\_mutation=False). | | [`--force-optional`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#force-optional) | Force all fields to be Optional regardless of required status. | | [`--frozen-dataclasses`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#frozen-dataclasses) | Generate frozen dataclasses with optional keyword-only fields. | | [`--keep-model-order`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keep-model-order) | Keep model definition order as specified in schema. | | [`--keyword-only`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keyword-only) | Generate dataclasses with keyword-only fields (Python 3.10+). | | [`--model-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys) | Add model-level schema extensions to ConfigDict json\_schema\_extra. | | [`--model-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys-without-x-prefix) | Strip x- prefix from model-level schema extensions and add to ConfigDict json\_sc... | | [`--naming-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#naming-strategy) | Use parent-prefixed naming strategy for duplicate model names. | | [`--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) | Select the output model type (Pydantic v1/v2, dataclasses, TypedDict, msgspec). | | [`--parent-scoped-naming`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#parent-scoped-naming) | Namespace models by their parent scope to avoid naming conflicts. | | [`--reuse-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-model) | Reuse identical model definitions instead of generating duplicates. | | [`--reuse-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-scope) | Scope for model reuse detection (root or tree). | | [`--skip-root-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#skip-root-model) | Skip generation of root model when schema contains nested definitions. | | [`--strict-nullable`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strict-nullable) | Treat default field as a non-nullable field. | | [`--strip-default-none`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strip-default-none) | Remove fields with None as default value from generated models. | | [`--target-pydantic-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-pydantic-version) | Target Pydantic version for generated code compatibility. | | [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) | Target Python version for generated code syntax and imports. | | [`--union-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#union-mode) | Union mode for combining anyOf/oneOf schemas (smart or left\_to\_right). | | [`--use-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default) | Use default values from schema in generated models. | | [`--use-default-factory-for-optional-nested-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-factory-for-optional-nested-models) | Generate default\_factory for optional nested model fields. | | [`--use-default-kwarg`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-kwarg) | Use default= keyword argument instead of positional argument for fields with def... | | [`--use-frozen-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-frozen-field) | Generate frozen (immutable) field definitions for readOnly properties. | | [`--use-generic-base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-generic-base-class) | Generate a shared base class with model configuration to avoid repetition (DRY).... | | [`--use-one-literal-as-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-one-literal-as-default) | Use single literal value as default when enum has only one option. | | [`--use-serialize-as-any`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-serialize-as-any) | Wrap fields with subtypes in Pydantic's SerializeAsAny. | | [`--use-subclass-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-subclass-enum) | Generate typed Enum subclasses for enums with specific field types. | ### ๐ŸŽจ Template Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#template-customization "Permanent link") | Option | Description | | --- | --- | | [`--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) | Add custom imports to generated output files. | | [`--class-decorators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators) | Add custom decorators to generated model classes. | | [`--custom-file-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header) | Add custom header text to the generated file. | | [`--custom-file-header-path`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header-path) | Add custom header content from file to generated code. | | [`--custom-formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters) | Apply custom Python code formatters to generated output. | | [`--custom-formatters-kwargs`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs) | Pass custom arguments to custom formatters via JSON file. | | [`--custom-template-dir`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir) | Use custom Jinja2 templates for model generation. | | [`--disable-appending-item-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-appending-item-suffix) | Disable appending 'Item' suffix to array item types. | | [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) | Disable timestamp in generated file header for reproducible output. | | [`--enable-command-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-command-header) | Include command-line options in file header for reproducibility. | | [`--enable-version-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-version-header) | Include tool version information in file header. | | [`--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) | Pass custom template variables from JSON file for code generation. | | [`--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) | Specify code formatters to apply to generated output. | | [`--no-treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#no-treat-dot-as-module) | Keep dots in schema names as underscores for flat output. | | [`--treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module) | Treat dots in schema names as module separators. | | [`--use-double-quotes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes) | Use double quotes for string literals in generated code. | | [`--use-exact-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports) | Import exact types instead of modules. | | [`--validators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#validators) | Add custom field validators to generated Pydantic v2 models. | | [`--wrap-string-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#wrap-string-literal) | Wrap long string literals across multiple lines. | ### ๐Ÿ“˜ OpenAPI-only Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#openapi-only-options "Permanent link") | Option | Description | | --- | --- | | [`--include-path-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#include-path-parameters) | Include OpenAPI path parameters in generated parameter models. | | [`--openapi-include-paths`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-include-paths) | Filter OpenAPI paths to include in model generation. | | [`--openapi-scopes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-scopes) | Specify OpenAPI scopes to generate (schemas, paths, parameters). | | [`--read-only-write-only-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#read-only-write-only-model-type) | Generate separate request and response models for readOnly/writeOnly fields. | | [`--use-operation-id-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-operation-id-as-name) | Use OpenAPI operationId as the generated function/class name. | | [`--use-status-code-in-response-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-status-code-in-response-name) | Include HTTP status code in response model names. | | [`--validation`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#validation) | Enable validation constraints (deprecated, use --field-constraints). | ### ๐Ÿ“‹ GraphQL-only Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#graphql-only-options "Permanent link") | Option | Description | | --- | --- | | [`--graphql-no-typename`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-no-typename) | Exclude \_\_typename field from generated GraphQL models. | ### โš™๏ธ General Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#general-options "Permanent link") | Option | Description | | --- | --- | | [`--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) | Handle name collisions when exporting recursive module hierarchies. | | [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) | Generate **all** exports for child modules in **init**.py files. | | [`--check`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check) | Verify generated code matches existing output without modifying files. | | [`--disable-warnings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#disable-warnings) | Suppress warning messages during code generation. | | [`--generate-cli-command`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command) | Generate CLI command from pyproject.toml configuration. | | [`--generate-pyproject-config`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config) | Generate pyproject.toml configuration from CLI arguments. | | [`--http-headers`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-headers) | Fetch schema from URL with custom HTTP headers. | | [`--http-ignore-tls`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-ignore-tls) | Disable TLS certificate verification for HTTPS requests. | | [`--http-query-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-query-parameters) | Add query parameters to HTTP requests for remote schemas. | | [`--http-timeout`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-timeout) | Set timeout for HTTP requests to remote hosts. | | [`--ignore-pyproject`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject) | Ignore pyproject.toml configuration file. | | [`--module-split-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#module-split-mode) | Split generated models into separate files, one per model class. | | [`--shared-module-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#shared-module-name) | Customize the name of the shared module for deduplicated models. | | [`--watch`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch) | Watch input file(s) for changes and regenerate output automatically. | | [`--watch-delay`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch-delay) | Set debounce delay in seconds for watch mode. | ### ๐Ÿ“ Utility Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#utility-options "Permanent link") | Option | Description | | --- | --- | | [`--debug`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#debug) | Show debug messages during code generation | | [`--generate-prompt`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#generate-prompt) | Generate a prompt for consulting LLMs about CLI options | | [`--help`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#help) | Show help message and exit | | [`--no-color`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#no-color) | Disable colorized output | | [`--profile`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#profile) | Use a named profile from pyproject.toml | | [`--version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#version) | Show program version and exit | * * * ๐Ÿ”ค Alphabetical Index[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/quick-reference/#alphabetical-index "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------- All options sorted alphabetically: * [`--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) - Add custom imports to generated output files. * [`--aliases`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases) - Apply custom field and class name aliases from JSON file. * [`--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) - Handle name collisions when exporting recursive module hiera... * [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) - Generate **all** exports for child modules in **init**.py fi... * [`--allof-class-hierarchy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-class-hierarchy) - Controls how allOf schemas are represented in the generated ... * [`--allof-merge-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode) - Merge constraints from root model references in allOf schema... * [`--allow-extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-extra-fields) - Allow extra fields in generated Pydantic models (extra='allo... * [`--allow-population-by-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#allow-population-by-field-name) - Allow Pydantic model population by field name (not just alia... * [`--base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class) - Specify a custom base class for generated models. * [`--base-class-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#base-class-map) - Specify different base classes for specific models via JSON ... * [`--capitalize-enum-members`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members) - Capitalize enum member names to UPPER\_CASE format. * [`--check`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check) - Verify generated code matches existing output without modify... * [`--class-decorators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators) - Add custom decorators to generated model classes. * [`--class-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name) - Override the auto-generated class name with a custom name. * [`--class-name-affix-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-affix-scope) - Control which classes receive the prefix/suffix. * [`--class-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-prefix) - Add a prefix to all generated class names. * [`--class-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name-suffix) - Add a suffix to all generated class names. * [`--collapse-reuse-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-reuse-models) - Collapse duplicate models by replacing references instead of... * [`--collapse-root-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models) - Inline root model definitions instead of creating separate w... * [`--collapse-root-models-name-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models-name-strategy) - Select which name to keep when collapsing root models with o... * [`--custom-file-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header) - Add custom header text to the generated file. * [`--custom-file-header-path`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header-path) - Add custom header content from file to generated code. * [`--custom-formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters) - Apply custom Python code formatters to generated output. * [`--custom-formatters-kwargs`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs) - Pass custom arguments to custom formatters via JSON file. * [`--custom-template-dir`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir) - Use custom Jinja2 templates for model generation. * [`--dataclass-arguments`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#dataclass-arguments) - Customize dataclass decorator arguments via JSON dictionary. * [`--debug`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#debug) - Show debug messages during code generation * [`--default-values`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#default-values) - Override field default values from external JSON file. * [`--disable-appending-item-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-appending-item-suffix) - Disable appending 'Item' suffix to array item types. * [`--disable-future-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#disable-future-imports) - Prevent automatic addition of **future** imports in generate... * [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) - Disable timestamp in generated file header for reproducible ... * [`--disable-warnings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#disable-warnings) - Suppress warning messages during code generation. * [`--duplicate-name-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#duplicate-name-suffix) - Customize suffix for duplicate model names. * [`--empty-enum-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#empty-enum-field-name) - Name for empty string enum field values. * [`--enable-command-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-command-header) - Include command-line options in file header for reproducibil... * [`--enable-faux-immutability`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#enable-faux-immutability) - Enable faux immutability in Pydantic v1 models (allow\_mutati... * [`--enable-version-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-version-header) - Include tool version information in file header. * [`--encoding`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#encoding) - Specify character encoding for input and output files. * [`--enum-field-as-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal) - Convert all enum fields to Literal types instead of Enum cla... * [`--enum-field-as-literal-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal-map) - Override enum/literal generation per-field via JSON mapping. * [`--extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#extra-fields) - Configure how generated models handle extra fields not defin... * [`--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) - Pass custom template variables from JSON file for code gener... * [`--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) - Generate Field() with validation constraints from schema. * [`--field-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys) - Include specific extra keys in Field() definitions. * [`--field-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys-without-x-prefix) - Include schema extension keys in Field() without requiring '... * [`--field-include-all-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-include-all-keys) - Include all schema keys in Field() json\_schema\_extra. * [`--field-type-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-type-collision-strategy) - Rename type class instead of field when names collide (Pydan... * [`--force-optional`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#force-optional) - Force all fields to be Optional regardless of required statu... * [`--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) - Specify code formatters to apply to generated output. * [`--frozen-dataclasses`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#frozen-dataclasses) - Generate frozen dataclasses with optional keyword-only field... * [`--generate-cli-command`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command) - Generate CLI command from pyproject.toml configuration. * [`--generate-prompt`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#generate-prompt) - Generate a prompt for consulting LLMs about CLI options * [`--generate-pyproject-config`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config) - Generate pyproject.toml configuration from CLI arguments. * [`--graphql-no-typename`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/graphql-only-options/#graphql-no-typename) - Exclude \_\_typename field from generated GraphQL models. * [`--help`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#help) - Show help message and exit * [`--http-headers`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-headers) - Fetch schema from URL with custom HTTP headers. * [`--http-ignore-tls`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-ignore-tls) - Disable TLS certificate verification for HTTPS requests. * [`--http-query-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-query-parameters) - Add query parameters to HTTP requests for remote schemas. * [`--http-timeout`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-timeout) - Set timeout for HTTP requests to remote hosts. * [`--ignore-enum-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#ignore-enum-constraints) - Ignore enum constraints and use base string type instead of ... * [`--ignore-pyproject`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject) - Ignore pyproject.toml configuration file. * [`--include-path-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#include-path-parameters) - Include OpenAPI path parameters in generated parameter model... * [`--input`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input) - Specify the input schema file path. * [`--input-file-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-file-type) - Specify the input file type for code generation. * [`--input-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model) - Import a Python type or dict schema from a module. * [`--input-model-ref-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model-ref-strategy) - Strategy for referenced types when using --input-model. * [`--keep-model-order`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keep-model-order) - Keep model definition order as specified in schema. * [`--keyword-only`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#keyword-only) - Generate dataclasses with keyword-only fields (Python 3.10+)... * [`--model-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys) - Add model-level schema extensions to ConfigDict json\_schema\_... * [`--model-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#model-extra-keys-without-x-prefix) - Strip x- prefix from model-level schema extensions and add t... * [`--module-split-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#module-split-mode) - Split generated models into separate files, one per model cl... * [`--naming-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#naming-strategy) - Use parent-prefixed naming strategy for duplicate model name... * [`--no-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#no-alias) - Disable Field alias generation for non-Python-safe property ... * [`--no-color`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#no-color) - Disable colorized output * [`--no-treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#no-treat-dot-as-module) - Keep dots in schema names as underscores for flat output. * [`--no-use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-closed-typed-dict) - Disable PEP 728 TypedDict closed/extra\_items generation. * [`--no-use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum) - Disable specialized Enum classes for Python 3.11+ code gener... * [`--no-use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections) - Use typing.Dict/List instead of built-in dict/list for conta... * [`--no-use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator) - Use Union\[X, Y\] / Optional\[X\] instead of X | Y union operato... * [`--openapi-include-paths`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-include-paths) - Filter OpenAPI paths to include in model generation. * [`--openapi-scopes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-scopes) - Specify OpenAPI scopes to generate (schemas, paths, paramete... * [`--original-field-name-delimiter`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#original-field-name-delimiter) - Specify delimiter for original field names when using snake-... * [`--output`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#output) - Specify the destination path for generated Python code. * [`--output-date-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-date-class) - Specify date class type for date schema fields. * [`--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) - Specify datetime class type for date-time schema fields. * [`--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) - Select the output model type (Pydantic v1/v2, dataclasses, T... * [`--parent-scoped-naming`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#parent-scoped-naming) - Namespace models by their parent scope to avoid naming confl... * [`--profile`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#profile) - Use a named profile from pyproject.toml * [`--read-only-write-only-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#read-only-write-only-model-type) - Generate separate request and response models for readOnly/w... * [`--remove-special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#remove-special-field-name-prefix) - Remove the special prefix from field names. * [`--reuse-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-model) - Reuse identical model definitions instead of generating dupl... * [`--reuse-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-scope) - Scope for model reuse detection (root or tree). * [`--schema-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version) - Schema version to use for parsing. * [`--schema-version-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#schema-version-mode) - Schema version validation mode. * [`--set-default-enum-member`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#set-default-enum-member) - Set the first enum member as the default value for enum fiel... * [`--shared-module-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#shared-module-name) - Customize the name of the shared module for deduplicated mod... * [`--skip-root-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#skip-root-model) - Skip generation of root model when schema contains nested de... * [`--snake-case-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field) - Convert field names to snake\_case format. * [`--special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#special-field-name-prefix) - Prefix to add to special field names (like reserved keywords... * [`--strict-nullable`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strict-nullable) - Treat default field as a non-nullable field. * [`--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) - Enable strict type validation for specified Python types. * [`--strip-default-none`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#strip-default-none) - Remove fields with None as default value from generated mode... * [`--target-pydantic-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-pydantic-version) - Target Pydantic version for generated code compatibility. * [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) - Target Python version for generated code syntax and imports. * [`--treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module) - Treat dots in schema names as module separators. * [`--type-mappings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings) - Override default type mappings for schema formats. * [`--type-overrides`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-overrides) - Replace schema model types with custom Python types via JSON... * [`--union-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#union-mode) - Union mode for combining anyOf/oneOf schemas (smart or left\_... * [`--url`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#url) - Fetch schema from URL with custom HTTP headers. * [`--use-annotated`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated) - Use typing.Annotated for Field() with constraints. * [`--use-attribute-docstrings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-attribute-docstrings) - Generate field descriptions as attribute docstrings instead ... * [`--use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-closed-typed-dict) - Generate TypedDict with PEP 728 closed/extra\_items (default:... * [`--use-decimal-for-multiple-of`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-decimal-for-multiple-of) - Generate Decimal types for fields with multipleOf constraint... * [`--use-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default) - Use default values from schema in generated models. * [`--use-default-factory-for-optional-nested-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-factory-for-optional-nested-models) - Generate default\_factory for optional nested model fields. * [`--use-default-kwarg`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-default-kwarg) - Use default= keyword argument instead of positional argument... * [`--use-double-quotes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes) - Use double quotes for string literals in generated code. * [`--use-enum-values-in-discriminator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-enum-values-in-discriminator) - Use enum values in discriminator mappings for union types. * [`--use-exact-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports) - Import exact types instead of modules. * [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) - Include schema descriptions as Field docstrings. * [`--use-field-description-example`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description-example) - Add field examples to docstrings. * [`--use-frozen-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-frozen-field) - Generate frozen (immutable) field definitions for readOnly p... * [`--use-generic-base-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-generic-base-class) - Generate a shared base class with model configuration to avo... * [`--use-generic-container-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types) - Use generic container types (Sequence, Mapping) for type hin... * [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) - Add field descriptions as inline comments. * [`--use-non-positive-negative-number-constrained-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-non-positive-negative-number-constrained-types) - Use NonPositive/NonNegative types for number constraints. * [`--use-one-literal-as-default`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-one-literal-as-default) - Use single literal value as default when enum has only one o... * [`--use-operation-id-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-operation-id-as-name) - Use OpenAPI operationId as the generated function/class name... * [`--use-pendulum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum) - Use pendulum types for date/time fields instead of datetime ... * [`--use-root-model-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-root-model-type-alias) - Generate RootModel as type alias format for better mypy supp... * [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) - Use schema description as class docstring. * [`--use-serialization-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-serialization-alias) - Use serialization\_alias instead of alias for field aliasing ... * [`--use-serialize-as-any`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-serialize-as-any) - Wrap fields with subtypes in Pydantic's SerializeAsAny. * [`--use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-specialized-enum) - Generate StrEnum/IntEnum for string/integer enums (Python 3.... * [`--use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections) - Use built-in dict/list instead of typing.Dict/List. * [`--use-standard-primitive-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-primitive-types) - Use Python standard library types for string formats instead... * [`--use-status-code-in-response-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-status-code-in-response-name) - Include HTTP status code in response model names. * [`--use-subclass-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-subclass-enum) - Generate typed Enum subclasses for enums with specific field... * [`--use-title-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-title-as-name) - Use schema title as the generated class name. * [`--use-tuple-for-fixed-items`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-tuple-for-fixed-items) - Generate tuple types for arrays with items array syntax. * [`--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) - Use TypeAlias instead of root models for type definitions (e... * [`--use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator) - Use | operator for Union types (PEP 604). * [`--use-unique-items-as-set`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-unique-items-as-set) - Generate set types for arrays with uniqueItems constraint. * [`--validation`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#validation) - Enable validation constraints (deprecated, use --field-const... * [`--validators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#validators) - Add custom field validators to generated Pydantic v2 models. * [`--version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/utility-options/#version) - Show program version and exit * [`--watch`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch) - Watch input file(s) for changes and regenerate output automa... * [`--watch-delay`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch-delay) - Set debounce delay in seconds for watch mode. * [`--wrap-string-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#wrap-string-literal) - Wrap long string literals across multiple lines. --- # Help - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#help) Help ==== `--help`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#help "Permanent link") ------------------------------------------------------------------------------------------------------------ Show help message and exit. Displays all available command-line options with their descriptions and default values. **Aliases:** `-h` Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-0-1) datamodel-codegen --help` Output `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-1) usage: datamodel-codegen [-h] [--input INPUT] [--url URL] ... [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-3) Generate Python data models from schema files. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-5) options: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-6) -h, --help show this help message and exit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-7) --input INPUT Input file path (default: stdin) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/help/#__codelineno-1-8) ...` --- # Debug - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/debug/#debug) Debug ===== `--debug`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/debug/#debug "Permanent link") --------------------------------------------------------------------------------------------------------------- Show debug messages during code generation. Enables verbose debug output to help troubleshoot issues with schema parsing or code generation. Requires the `debug` extra to be installed. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/debug/#__codelineno-0-1) datamodel-codegen --input schema.json --debug` Requires extra dependency The debug feature requires the `debug` extra: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/debug/#__codelineno-1-1) pip install 'datamodel-code-generator[debug]'` --- # ๐Ÿ“˜ OpenAPI-only Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-only-options) ๐Ÿ“˜ OpenAPI-only Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-only-options "Permanent link") ==================================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#options "Permanent link") -------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--include-path-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#include-path-parameters) | Include OpenAPI path parameters in generated parameter model... | | [`--openapi-include-paths`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-include-paths) | Filter OpenAPI paths to include in model generation. | | [`--openapi-scopes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-scopes) | Specify OpenAPI scopes to generate (schemas, paths, paramete... | | [`--read-only-write-only-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#read-only-write-only-model-type) | Generate separate request and response models for readOnly/w... | | [`--use-operation-id-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-operation-id-as-name) | Use OpenAPI operationId as the generated function/class name... | | [`--use-status-code-in-response-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-status-code-in-response-name) | Include HTTP status code in response model names. | | [`--validation`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#validation) | Enable validation constraints (deprecated, use --field-const... | * * * `--include-path-parameters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#include-path-parameters "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Include OpenAPI path parameters in generated parameter models. The `--include-path-parameters` flag adds path parameters (like /users/{userId}) to the generated request parameter models. By default, only query parameters are included. Use this with `--openapi-scopes parameters` to generate parameter models that include both path and query parameters. **See also:** [OpenAPI-Specific Options](https://datamodel-code-generator.koxudaxi.dev/openapi-options/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-0-1) datamodel-codegen --input schema.json --include-path-parameters --openapi-scopes schemas paths parameters # (1)!` 1. `--include-path-parameters` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-4) title: API with Path Parameters [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-5) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-6) /users/{userId}/posts/{postId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-7) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-8) summary: Get a specific post by user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-9) operationId: getUserPost [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-10) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-11) - name: userId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-12) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-13) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-14) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-15) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-16) - name: postId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-17) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-18) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-19) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-20) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-21) - name: includeComments [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-22) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-23) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-24) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-25) type: boolean [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-26) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-27) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-28) description: A post [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-29) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-30) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-31) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-32) $ref: "#/components/schemas/Post" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-33) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-34) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-35) Post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-36) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-37) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-38) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-39) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-40) title: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-41) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-42) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-1-43) type: string` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-2) # filename: include_path_parameters.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-10) class Post(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-11) id: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-12) title: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-13) content: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-16) class UsersUserIdPostsPostIdGetParameters(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-17) userId: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-18) postId: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-2-19) includeComments: bool | None = None` * * * `--openapi-include-paths`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-include-paths "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Filter OpenAPI paths to include in model generation. The `--openapi-include-paths` flag allows filtering which paths are processed. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-3-1) datamodel-codegen --input schema.json --openapi-scopes paths schemas --openapi-include-paths /pets* # (1)!` 1. `--openapi-include-paths` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-7) description: | [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-8) This description is for testing [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-9) multi-line [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-10) description [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-12) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-13) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-14) security: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-15) - BearerAuth: [] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-16) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-17) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-18) $ref: '#/components/pathItems/Pets' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-19) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-20) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-21) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-22) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-23) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-24) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-25) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-26) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-27) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-28) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-29) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-32) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-33) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-34) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-35) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-36) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-37) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-38) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-39) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-40) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-41) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-42) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-43) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-44) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-45) put: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-46) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-47) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-48) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-49) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-50) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-51) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-52) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-53) summary: update a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-54) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-55) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-56) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-57) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-61) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-62) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-63) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-64) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-65) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-66) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-67) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-68) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-69) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-70) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-71) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-72) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-73) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-74) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-75) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-76) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-77) /food: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-78) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-79) summary: Create a food [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-80) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-81) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-82) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-83) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-85) application/problem+json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-87) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-88) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-89) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-90) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-91) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-92) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-93) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-94) application/problem+json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-95) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-96) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-97) /food/{food_id}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-98) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-99) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-100) operationId: showFoodById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-101) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-102) - foods [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-103) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-104) - name: food_id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-105) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-106) description: The id of the food to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-107) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-108) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-109) - name: message_texts [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-110) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-111) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-112) explode: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-113) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-114) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-115) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-116) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-117) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-118) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-119) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-120) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-121) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-122) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-123) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-124) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-125) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-126) examples: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-127) example-1: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-128) value: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-129) - 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-130) - 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-131) - 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-132) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-133) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-134) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-135) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-136) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-137) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-138) /foo: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-139) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-140) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-141) - foo [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-142) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-143) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-144) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-145) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-146) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-147) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-148) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-149) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-150) - $ref: '#/components/parameters/MyParam' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-151) /bar: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-152) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-153) summary: Create a bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-154) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-155) - bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-156) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-157) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-158) application/x-www-form-urlencoded: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-159) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-160) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-161) /user: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-162) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-163) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-164) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-165) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-166) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-167) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-168) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-169) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-170) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-171) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-173) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-175) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-176) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-177) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-178) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-179) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-180) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-181) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-182) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-183) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-184) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-185) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-186) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-187) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-188) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-189) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-190) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-191) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-192) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-193) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-194) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-195) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-196) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-197) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-198) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-200) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-201) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-202) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-203) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-204) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-205) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-206) /users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-207) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-208) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-209) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-210) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-211) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-212) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-213) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-214) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-215) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-216) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-217) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-218) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-219) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-220) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-221) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-222) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-225) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-226) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-227) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-228) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-229) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-230) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-231) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-232) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-233) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-234) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-235) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-236) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-237) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-238) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-239) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-240) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-241) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-242) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-243) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-244) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-245) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-246) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-247) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-248) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-249) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-250) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-251) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-252) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-253) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-254) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-255) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-256) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-257) MyParam: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-258) name: foo [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-259) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-260) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-261) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-262) securitySchemes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-263) BearerAuth: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-264) type: http [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-265) scheme: bearer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-266) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-267) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-268) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-269) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-270) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-271) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-272) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-273) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-274) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-275) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-276) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-277) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-278) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-279) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-280) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-281) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-282) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-283) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-284) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-285) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-286) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-287) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-288) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-289) PetForm: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-290) title: PetForm [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-291) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-292) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-293) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-294) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-295) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-296) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-297) pathItems: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-298) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-299) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-300) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-301) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-302) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-303) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-304) security: [] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-305) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-306) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-307) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-308) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-309) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-310) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-311) default: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-312) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-313) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-314) - name: HomeAddress [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-315) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-316) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-317) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-318) default: 'Unknown' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-319) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-320) - name: kind [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-321) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-322) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-323) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-324) default: dog [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-325) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-326) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-327) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-328) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-329) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-330) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-331) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-332) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-333) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-334) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-335) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-336) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-337) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-338) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-339) - $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-340) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-341) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-342) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-343) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-344) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-345) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-346) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-347) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-348) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-349) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-350) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-351) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-352) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-353) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-354) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-355) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-356) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-357) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-358) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-359) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-360) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-361) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-362) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-363) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-4-364) $ref: "#/components/schemas/Error"` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-2) # filename: body_and_parameters.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-16) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-17) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-18) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-21) class PetForm(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-22) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-23) age: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-26) class PetsGetResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-5-27) __root__: list[Pet]` * * * `--openapi-scopes`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#openapi-scopes "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------- Specify OpenAPI scopes to generate (schemas, paths, parameters). The `--openapi-scopes` flag configures the code generation behavior. **See also:** [OpenAPI-Specific Options](https://datamodel-code-generator.koxudaxi.dev/openapi-options/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-6-1) datamodel-codegen --input schema.json --openapi-scopes paths schemas # (1)!` 1. `--openapi-scopes` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-7) description: | [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-8) This description is for testing [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-9) multi-line [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-10) description [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-12) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-13) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-14) security: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-15) - BearerAuth: [] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-16) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-17) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-18) $ref: '#/components/pathItems/Pets' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-19) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-20) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-21) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-22) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-23) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-24) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-25) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-26) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-27) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-28) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-29) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-32) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-33) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-34) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-35) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-36) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-37) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-38) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-39) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-40) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-41) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-42) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-43) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-44) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-45) put: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-46) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-47) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-48) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-49) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-50) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-51) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-52) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-53) summary: update a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-54) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-55) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-56) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-57) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-61) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-62) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-63) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-64) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-65) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-66) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-67) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-68) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-69) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-70) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-71) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-72) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-73) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-74) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-75) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-76) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-77) /food: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-78) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-79) summary: Create a food [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-80) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-81) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-82) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-83) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-85) application/problem+json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-87) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-88) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-89) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-90) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-91) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-92) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-93) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-94) application/problem+json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-95) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-96) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-97) /food/{food_id}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-98) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-99) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-100) operationId: showFoodById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-101) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-102) - foods [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-103) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-104) - name: food_id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-105) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-106) description: The id of the food to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-107) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-108) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-109) - name: message_texts [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-110) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-111) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-112) explode: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-113) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-114) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-115) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-116) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-117) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-118) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-119) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-120) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-121) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-122) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-123) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-124) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-125) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-126) examples: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-127) example-1: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-128) value: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-129) - 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-130) - 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-131) - 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-132) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-133) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-134) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-135) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-136) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-137) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-138) /foo: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-139) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-140) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-141) - foo [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-142) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-143) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-144) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-145) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-146) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-147) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-148) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-149) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-150) - $ref: '#/components/parameters/MyParam' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-151) /bar: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-152) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-153) summary: Create a bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-154) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-155) - bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-156) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-157) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-158) application/x-www-form-urlencoded: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-159) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-160) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-161) /user: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-162) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-163) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-164) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-165) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-166) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-167) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-168) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-169) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-170) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-171) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-173) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-175) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-176) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-177) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-178) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-179) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-180) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-181) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-182) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-183) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-184) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-185) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-186) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-187) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-188) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-189) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-190) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-191) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-192) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-193) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-194) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-195) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-196) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-197) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-198) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-200) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-201) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-202) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-203) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-204) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-205) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-206) /users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-207) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-208) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-209) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-210) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-211) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-212) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-213) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-214) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-215) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-216) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-217) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-218) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-219) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-220) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-221) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-222) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-225) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-226) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-227) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-228) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-229) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-230) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-231) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-232) - user [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-233) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-234) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-235) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-236) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-237) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-238) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-239) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-240) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-241) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-242) timestamp: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-243) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-244) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-245) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-246) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-247) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-248) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-249) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-250) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-251) - timestamp [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-252) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-253) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-254) description: OK [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-255) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-256) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-257) MyParam: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-258) name: foo [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-259) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-260) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-261) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-262) securitySchemes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-263) BearerAuth: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-264) type: http [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-265) scheme: bearer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-266) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-267) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-268) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-269) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-270) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-271) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-272) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-273) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-274) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-275) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-276) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-277) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-278) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-279) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-280) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-281) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-282) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-283) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-284) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-285) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-286) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-287) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-288) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-289) PetForm: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-290) title: PetForm [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-291) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-292) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-293) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-294) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-295) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-296) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-297) pathItems: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-298) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-299) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-300) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-301) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-302) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-303) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-304) security: [] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-305) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-306) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-307) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-308) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-309) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-310) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-311) default: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-312) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-313) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-314) - name: HomeAddress [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-315) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-316) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-317) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-318) default: 'Unknown' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-319) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-320) - name: kind [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-321) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-322) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-323) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-324) default: dog [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-325) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-326) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-327) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-328) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-329) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-330) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-331) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-332) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-333) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-334) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-335) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-336) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-337) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-338) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-339) - $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-340) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-341) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-342) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-343) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-344) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-345) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-346) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-347) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-348) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-349) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-350) requestBody: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-351) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-352) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-353) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-354) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-355) $ref: '#/components/schemas/PetForm' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-356) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-357) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-358) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-359) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-360) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-361) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-362) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-363) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-7-364) $ref: "#/components/schemas/Error"` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-2) # filename: body_and_parameters.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-7) from datetime import datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-12) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-13) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-14) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-15) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-18) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-19) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-20) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-23) class PetForm(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-24) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-25) age: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-28) class PetsGetResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-29) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-32) class FoodFoodIdGetResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-33) __root__: list[int] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-34) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-35)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-36) class UserGetResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-37) timestamp: datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-38) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-39) age: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-40) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-41)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-42) class UserPostRequest(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-43) timestamp: datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-44) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-45) age: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-46) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-47)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-48) class UsersGetResponseItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-49) timestamp: datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-50) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-51) age: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-52) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-53)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-54) class UsersGetResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-55) __root__: list[UsersGetResponseItem] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-58) class UsersPostRequestItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-59) timestamp: datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-60) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-61) age: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-62) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-63)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-64) class UsersPostRequest(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-8-65) __root__: list[UsersPostRequestItem]` * * * `--read-only-write-only-model-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#read-only-write-only-model-type "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Generate separate request and response models for readOnly/writeOnly fields. The `--read-only-write-only-model-type` option controls how models with readOnly or writeOnly properties are generated. The 'request-response' mode creates separate Request and Response variants for each schema that contains readOnly or writeOnly fields, allowing proper type validation for API requests and responses without a shared base model. **See also:** [OpenAPI-Specific Options](https://datamodel-code-generator.koxudaxi.dev/openapi-options/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-9-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --read-only-write-only-model-type request-response # (1)!` 1. `--read-only-write-only-model-type` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-3) title: Read Only Write Only Test API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-4) version: "1.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-5) paths: {} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-6) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-7) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-8) User: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-9) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-10) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-11) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-12) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-13) - password [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-14) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-15) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-16) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-17) readOnly: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-18) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-19) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-20) password: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-21) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-22) writeOnly: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-23) created_at: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-24) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-25) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-26) readOnly: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-27) secret_token: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-28) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-10-29) writeOnly: true` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-2) # filename: read_only_write_only.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-7) from pydantic import AwareDatetime, BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-10) class UserRequest(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-12) password: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-13) secret_token: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-16) class UserResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-17) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-18) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-11-19) created_at: AwareDatetime | None = None` * * * `--use-operation-id-as-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-operation-id-as-name "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- Use OpenAPI operationId as the generated function/class name. The `--use-operation-id-as-name` flag configures the code generation behavior. **See also:** [OpenAPI-Specific Options](https://datamodel-code-generator.koxudaxi.dev/openapi-options/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-12-1) datamodel-codegen --input schema.json --use-operation-id-as-name --openapi-scopes paths schemas parameters # (1)!` 1. `--use-operation-id-as-name` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-13-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-44) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-45) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-46) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-47) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-48) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-49) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-50) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-51) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-53) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-54) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-58) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-59) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-62) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-63) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-66) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-67) event: Event | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-68) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-69)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-70) class ListPetsParametersQuery(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-14-71) limit: int | None = None` * * * `--use-status-code-in-response-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#use-status-code-in-response-name "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Include HTTP status code in response model names. The `--use-status-code-in-response-name` flag includes the HTTP status code in generated response model class names. Instead of generating ambiguous names like ResourceGetResponse, ResourceGetResponse1, ResourceGetResponse2, it generates clear names like ResourceGetResponse200, ResourceGetResponse400, ResourceGetResponseDefault. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-15-1) datamodel-codegen --input schema.json --use-status-code-in-response-name --openapi-scopes schemas paths # (1)!` 1. `--use-status-code-in-response-name` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-4) title: Status Code Response Name Test API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-5) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-6) /resource: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-7) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-8) summary: Get a resource [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-9) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-10) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-11) description: Successful response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-12) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-13) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-14) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-15) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-16) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-17) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-18) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-19) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-20) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-21) '400': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-22) description: Bad request error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-23) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-24) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-25) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-26) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-27) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-28) error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-29) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-30) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-31) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-32) 'default': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-33) description: Unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-34) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-35) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-36) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-37) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-38) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-39) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-16-40) type: string` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-2) # filename: use_status_code_in_response_name.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-10) class ResourceGetResponse200(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-15) class ResourceGetResponse400(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-16) error: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-17) code: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-20) class ResourceGetResponseDefault(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-17-21) message: str | None = None` * * * `--validation`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#validation "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- Enable validation constraints (deprecated, use --field-constraints). The `--validation` flag configures the code generation behavior. **Deprecated:** Use --field-constraints instead **See also:** [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) , [OpenAPI-Specific Options](https://datamodel-code-generator.koxudaxi.dev/openapi-options/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-18-1) datamodel-codegen --input schema.json --validation # (1)!` 1. `--validation` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-19-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-44) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-45) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-46) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-47) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-48) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-49) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-50) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-51) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-53) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-54) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-58) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-59) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-62) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-63) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-66) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/#__codelineno-20-67) event: Event | None = None` * * * --- # โš™๏ธ General Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#general-options) โš™๏ธ General Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#general-options "Permanent link") ===================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#options "Permanent link") --------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) | Handle name collisions when exporting recursive module hiera... | | [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) | Generate **all** exports for child modules in **init**.py fi... | | [`--check`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check) | Verify generated code matches existing output without modify... | | [`--disable-warnings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#disable-warnings) | Suppress warning messages during code generation. | | [`--generate-cli-command`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command) | Generate CLI command from pyproject.toml configuration. | | [`--generate-pyproject-config`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config) | Generate pyproject.toml configuration from CLI arguments. | | [`--http-headers`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-headers) | Fetch schema from URL with custom HTTP headers. | | [`--http-ignore-tls`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-ignore-tls) | Disable TLS certificate verification for HTTPS requests. | | [`--http-query-parameters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-query-parameters) | Add query parameters to HTTP requests for remote schemas. | | [`--http-timeout`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-timeout) | Set timeout for HTTP requests to remote hosts. | | [`--ignore-pyproject`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject) | Ignore pyproject.toml configuration file. | | [`--module-split-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#module-split-mode) | Split generated models into separate files, one per model cl... | | [`--shared-module-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#shared-module-name) | Customize the name of the shared module for deduplicated mod... | | [`--watch`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch) | Watch input file(s) for changes and regenerate output automa... | | [`--watch-delay`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch-delay) | Set debounce delay in seconds for watch mode. | * * * `--all-exports-collision-strategy`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------------------- Handle name collisions when exporting recursive module hierarchies. The `--all-exports-collision-strategy` flag determines how to resolve naming conflicts when using `--all-exports-scope=recursive`. The 'minimal-prefix' strategy adds the minimum module path prefix needed to disambiguate colliding names, while 'full-prefix' uses the complete module path. Requires `--all-exports-scope=recursive`. **Related:** [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) **See also:** [Module Structure and Exports](https://datamodel-code-generator.koxudaxi.dev/module-exports/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-0-1) datamodel-codegen --input schema.json --all-exports-scope recursive --all-exports-collision-strategy minimal-prefix # (1)!` 1. `--all-exports-collision-strategy` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-4) title: Modular Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-35) $ref: "#/components/schemas/collections.Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-87) $ref: "#/components/schemas/collections.Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-102) models.Species: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-103) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-104) enum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-105) - dog [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-106) - cat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-107) - snake [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-108) models.Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-109) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-110) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-111) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-112) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-113) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-114) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-115) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-116) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-117) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-118) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-119) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-120) species: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-121) $ref: '#/components/schemas/models.Species' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-122) models.User: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-123) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-124) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-125) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-126) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-127) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-129) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-130) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-131) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-132) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-133) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-134) collections.Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-135) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-136) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-137) $ref: "#/components/schemas/models.Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-138) collections.Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-139) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-140) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-141) $ref: "#/components/schemas/models.User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-142) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-144) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-145) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-146) collections.Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-147) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-148) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-150) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-151) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-152) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-153) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-155) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-156) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-157) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-158) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-160) collections.apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-161) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-162) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-163) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-164) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-165) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-167) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-168) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-169) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-170) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-171) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-172) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-173) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-174) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-175) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-176) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-177) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-178) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-179) stage: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-180) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-181) enum: [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-182) "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-183) "dev", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-184) "stg", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-185) "prod" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-186) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-187) models.Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-188) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-189) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-190) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-191) anyOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-192) - type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-193) - type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-194) - type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-195) - type: boolean [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-196) - type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-197) - type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-198) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-200) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-201) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-202) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-203) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-204) $ref: '#/components/schemas/models.Event' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-205) foo.bar.Thing: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-206) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-207) attributes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-208) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-209) foo.bar.Thang: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-210) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-211) attributes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-212) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-213) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-214) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-215) foo.bar.Clone: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-216) allOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-217) - $ref: '#/components/schemas/foo.bar.Thing' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-218) - type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-219) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-220) others: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-225) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-226) foo.Tea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-228) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-229) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-230) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-231) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-232) Source: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-233) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-234) country: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-235) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-236) foo.Cocoa: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-237) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-238) quality: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-239) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-240) bar.Field: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-241) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-242) example: green [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-243) woo.boo.Chocolate: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-244) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-245) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-246) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-247) source: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-248) $ref: '#/components/schemas/Source' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-249) cocoa: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-250) $ref: '#/components/schemas/foo.Cocoa' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-251) field: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-252) $ref: '#/components/schemas/bar.Field' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-253) differentTea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-254) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-255) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-256) foo: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-257) $ref: '#/components/schemas/foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-258) nested: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-259) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-260) nested.foo.Tea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-261) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-262) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-263) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-264) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-265) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-266) self: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-267) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-268) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-269) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-270) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-271) $ref: '#/components/schemas/optional' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-272) nested.foo.TeaClone: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-273) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-274) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-275) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-276) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-277) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-278) self: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-279) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-280) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-281) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-282) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-283) $ref: '#/components/schemas/optional' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-284) nested.foo.List: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-285) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-286) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-1-287) $ref: '#/components/schemas/nested.foo.Tea'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-1) # __init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-2) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-3) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-5) from ._internal import DifferentTea, Error, Id, Optional, Result, Source [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-7) __all__ = ["DifferentTea", "Error", "Id", "Optional", "Result", "Source"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-9) # _internal.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-10) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-11) # filename: _internal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-13) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-15) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-17) from . import models [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-20) class Optional(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-21) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-24) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-25) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-28) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-29) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-30) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-33) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-34) event: models.Event | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-37) class Source(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-38) country: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-41) class DifferentTea(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-42) foo: Tea | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-43) nested: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-46) class Tea(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-47) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-48) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-49) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-50)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-51) class Cocoa(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-52) quality: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-53) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-54)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-55) class Tea_1(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-56) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-57) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-58) self: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-59) optional: list[Optional] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-62) class TeaClone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-63) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-64) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-65) self: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-66) optional: list[Optional] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-67) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-68)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-69) class List(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-70) __root__: list[Tea_1] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-71) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-72)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-73) Tea_1.update_forward_refs() [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-74)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-75) # bar.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-76) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-77) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-78)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-79) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-81) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-82) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-83)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-84) class FieldModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-85) __root__: str = Field(..., example='green') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-86)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-87) # collections.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-88) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-89) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-90)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-91) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-92)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-93) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-94)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-95) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-96)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-97) from . import models [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-98) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-99)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-100) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-101) __root__: list[models.Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-102) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-103)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-104) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-105) __root__: list[models.User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-106) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-107)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-108) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-109) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-110) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-111)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-112) class Stage(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-113) test = 'test' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-114) dev = 'dev' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-115) stg = 'stg' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-116) prod = 'prod' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-117) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-118)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-119) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-120) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-121) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-122) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-123) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-124) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-125) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-126) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-127) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-128) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-129) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-130) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-131) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-132) stage: Stage | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-133) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-134)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-135) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-136) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-137)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-138) # foo/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-139) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-140) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-141)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-142) from .._internal import Cocoa, Tea [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-143)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-144) __all__ = ["Cocoa", "Tea"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-145)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-146) # foo/bar.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-147) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-148) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-149)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-150) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-151)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-152) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-153)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-154) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-155) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-156)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-157) class Thing(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-158) attributes: dict[str, Any] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-159) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-160)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-161) class Thang(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-162) attributes: list[dict[str, Any]] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-163) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-164)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-165) class Others(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-166) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-167) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-168)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-169) class Clone(Thing): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-170) others: Others | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-171)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-172) # models.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-173) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-174) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-175)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-176) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-177)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-178) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-179) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-180)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-181) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-182) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-183)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-184) class Species(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-185) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-186) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-187) snake = 'snake' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-188) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-189)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-190) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-191) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-192) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-193) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-194) species: Species | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-195) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-196)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-197) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-198) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-199) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-200) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-201) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-202)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-203) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-204) name: str | float | int | bool | dict[str, Any] | list[str] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-205)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-206) # nested/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-207) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-208) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-209)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-210) # nested/foo.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-211) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-212) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-213)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-214) from .._internal import List [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-215) from .._internal import Tea_1 as Tea [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-216) from .._internal import TeaClone [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-217)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-218) __all__ = ["List", "Tea", "TeaClone"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-219)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-220) # woo/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-221) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-222) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-223)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-224) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-225)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-226) from .boo import Chocolate [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-227)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-228) __all__ = [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-229) "Chocolate", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-230) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-231)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-232) # woo/boo.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-233) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-234) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-235)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-236) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-237)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-238) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-239)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-240) from .. import bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-241) from .._internal import Cocoa, Source [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-242) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-243)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-244) class Chocolate(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-245) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-246) source: Source | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-247) cocoa: Cocoa | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-2-248) field: bar.FieldModel | None = None` * * * `--all-exports-scope`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------ Generate **all** exports for child modules in **init**.py files. The `--all-exports-scope=children` flag adds **all** to each **init**.py containing exports from direct child modules. This improves IDE autocomplete and explicit exports. Use 'recursive' to include all descendant exports with collision handling. **Related:** [`--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) **See also:** [Module Structure and Exports](https://datamodel-code-generator.koxudaxi.dev/module-exports/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-3-1) datamodel-codegen --input schema.json --all-exports-scope children # (1)!` 1. `--all-exports-scope` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-4) title: Modular Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-35) $ref: "#/components/schemas/collections.Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-87) $ref: "#/components/schemas/collections.Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-102) models.Species: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-103) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-104) enum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-105) - dog [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-106) - cat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-107) - snake [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-108) models.Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-109) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-110) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-111) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-112) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-113) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-114) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-115) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-116) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-117) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-118) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-119) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-120) species: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-121) $ref: '#/components/schemas/models.Species' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-122) models.User: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-123) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-124) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-125) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-126) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-127) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-129) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-130) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-131) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-132) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-133) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-134) collections.Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-135) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-136) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-137) $ref: "#/components/schemas/models.Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-138) collections.Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-139) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-140) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-141) $ref: "#/components/schemas/models.User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-142) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-144) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-145) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-146) collections.Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-147) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-148) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-150) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-151) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-152) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-153) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-155) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-156) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-157) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-158) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-160) collections.apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-161) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-162) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-163) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-164) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-165) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-167) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-168) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-169) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-170) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-171) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-172) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-173) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-174) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-175) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-176) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-177) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-178) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-179) stage: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-180) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-181) enum: [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-182) "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-183) "dev", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-184) "stg", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-185) "prod" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-186) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-187) models.Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-188) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-189) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-190) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-191) anyOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-192) - type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-193) - type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-194) - type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-195) - type: boolean [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-196) - type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-197) - type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-198) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-200) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-201) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-202) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-203) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-204) $ref: '#/components/schemas/models.Event' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-205) foo.bar.Thing: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-206) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-207) attributes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-208) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-209) foo.bar.Thang: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-210) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-211) attributes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-212) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-213) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-214) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-215) foo.bar.Clone: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-216) allOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-217) - $ref: '#/components/schemas/foo.bar.Thing' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-218) - type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-219) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-220) others: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-225) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-226) foo.Tea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-228) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-229) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-230) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-231) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-232) Source: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-233) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-234) country: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-235) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-236) foo.Cocoa: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-237) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-238) quality: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-239) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-240) bar.Field: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-241) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-242) example: green [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-243) woo.boo.Chocolate: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-244) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-245) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-246) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-247) source: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-248) $ref: '#/components/schemas/Source' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-249) cocoa: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-250) $ref: '#/components/schemas/foo.Cocoa' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-251) field: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-252) $ref: '#/components/schemas/bar.Field' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-253) differentTea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-254) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-255) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-256) foo: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-257) $ref: '#/components/schemas/foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-258) nested: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-259) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-260) nested.foo.Tea: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-261) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-262) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-263) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-264) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-265) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-266) self: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-267) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-268) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-269) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-270) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-271) $ref: '#/components/schemas/optional' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-272) nested.foo.TeaClone: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-273) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-274) flavour: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-275) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-276) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-277) $ref: '#/components/schemas/Id' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-278) self: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-279) $ref: '#/components/schemas/nested.foo.Tea' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-280) optional: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-281) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-282) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-283) $ref: '#/components/schemas/optional' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-284) nested.foo.List: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-285) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-286) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-4-287) $ref: '#/components/schemas/nested.foo.Tea'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-1) # __init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-2) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-3) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-5) from ._internal import DifferentTea, Error, Id, Optional, Result, Source [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-7) __all__ = ["DifferentTea", "Error", "Id", "Optional", "Result", "Source"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-9) # _internal.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-10) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-11) # filename: _internal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-13) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-15) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-17) from . import models [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-20) class Optional(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-21) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-24) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-25) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-28) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-29) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-30) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-33) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-34) event: models.Event | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-37) class Source(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-38) country: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-41) class DifferentTea(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-42) foo: Tea | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-43) nested: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-46) class Tea(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-47) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-48) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-49) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-50)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-51) class Cocoa(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-52) quality: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-53) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-54)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-55) class Tea_1(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-56) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-57) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-58) self: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-59) optional: list[Optional] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-62) class TeaClone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-63) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-64) id: Id | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-65) self: Tea_1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-66) optional: list[Optional] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-67) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-68)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-69) class List(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-70) __root__: list[Tea_1] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-71) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-72)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-73) Tea_1.update_forward_refs() [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-74)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-75) # bar.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-76) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-77) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-78)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-79) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-81) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-82) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-83)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-84) class FieldModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-85) __root__: str = Field(..., example='green') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-86)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-87) # collections.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-88) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-89) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-90)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-91) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-92)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-93) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-94)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-95) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-96)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-97) from . import models [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-98) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-99)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-100) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-101) __root__: list[models.Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-102) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-103)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-104) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-105) __root__: list[models.User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-106) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-107)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-108) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-109) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-110) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-111)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-112) class Stage(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-113) test = 'test' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-114) dev = 'dev' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-115) stg = 'stg' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-116) prod = 'prod' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-117) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-118)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-119) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-120) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-121) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-122) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-123) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-124) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-125) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-126) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-127) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-128) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-129) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-130) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-131) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-132) stage: Stage | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-133) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-134)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-135) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-136) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-137)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-138) # foo/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-139) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-140) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-141)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-142) from .._internal import Cocoa, Tea [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-143)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-144) __all__ = ["Cocoa", "Tea"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-145)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-146) # foo/bar.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-147) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-148) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-149)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-150) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-151)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-152) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-153)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-154) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-155) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-156)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-157) class Thing(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-158) attributes: dict[str, Any] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-159) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-160)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-161) class Thang(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-162) attributes: list[dict[str, Any]] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-163) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-164)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-165) class Others(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-166) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-167) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-168)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-169) class Clone(Thing): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-170) others: Others | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-171)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-172) # models.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-173) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-174) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-175)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-176) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-177)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-178) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-179) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-180)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-181) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-182) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-183)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-184) class Species(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-185) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-186) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-187) snake = 'snake' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-188) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-189)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-190) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-191) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-192) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-193) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-194) species: Species | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-195) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-196)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-197) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-198) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-199) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-200) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-201) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-202)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-203) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-204) name: str | float | int | bool | dict[str, Any] | list[str] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-205)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-206) # nested/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-207) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-208) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-209)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-210) # nested/foo.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-211) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-212) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-213)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-214) from .._internal import List [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-215) from .._internal import Tea_1 as Tea [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-216) from .._internal import TeaClone [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-217)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-218) __all__ = ["List", "Tea", "TeaClone"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-219)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-220) # woo/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-221) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-222) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-223)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-224) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-225)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-226) from .boo import Chocolate [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-227)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-228) __all__ = [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-229) "Chocolate", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-230) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-231)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-232) # woo/boo.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-233) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-234) # filename: modular.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-235)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-236) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-237)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-238) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-239)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-240) from .. import bar [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-241) from .._internal import Cocoa, Source [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-242) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-243)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-244) class Chocolate(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-245) flavour: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-246) source: Source | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-247) cocoa: Cocoa | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-5-248) field: bar.FieldModel | None = None` * * * `--check`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check "Permanent link") ------------------------------------------------------------------------------------------------------------------ Verify generated code matches existing output without modifying files. The `--check` flag compares the generated output with existing files and exits with a non-zero status if they differ. Useful for CI/CD validation to ensure schemas and generated code stay in sync. Works with both single files and directory outputs. **See also:** [CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-6-1) datamodel-codegen --input schema.json --disable-timestamp --check # (1)!` 1. `--check` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-6) "firstName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-8) "description": "The person's first name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-10) "lastName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-11) "type": ["string", "null"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-12) "description": "The person's last name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-14) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-15) "description": "Age in years which must be equal to or greater than zero.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-17) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-18) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-19) "friends": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-20) "type": "array" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-22) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-23) "type": "null" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-7-26) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-2) # filename: person.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-6) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-8) from pydantic import BaseModel, Field, conint [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-9) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-11) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-12) firstName: str | None = Field(None, description="The person's first name.") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-13) lastName: str | None = Field(None, description="The person's last name.") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-14) age: conint(ge=0) | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-15) None, description='Age in years which must be equal to or greater than zero.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-16) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-17) friends: list[Any] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-8-18) comment: None = None` * * * `--disable-warnings`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#disable-warnings "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------- Suppress warning messages during code generation. The --disable-warnings option silences all warning messages that the generator might emit during processing (e.g., about unsupported features, ambiguous schemas, or potential issues). Useful for clean output in CI/CD pipelines. **See also:** [Model Reuse and Deduplication](https://datamodel-code-generator.koxudaxi.dev/model-reuse/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-9-1) datamodel-codegen --input schema.json --disable-warnings # (1)!` 1. `--disable-warnings` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-4) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-5) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-6) "$ref": "#/definitions/Home" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-7) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-8) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-9) "$ref": "#/definitions/Kind" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-11) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-12) "$ref": "#/definitions/Id" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-14) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-15) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-16) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-17) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-18) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-19) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-20) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-21) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-22) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-23) "type": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-24) "object" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-25) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-26) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-27) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-28) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-29) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-30) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-31) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-32) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-33) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-34) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-35) "Home": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-36) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-37) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-38) "address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-39) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-40) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-41) "zip": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-42) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-43) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-44) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-46) "Kind": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-47) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-48) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-49) "description": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-50) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-51) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-52) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-53) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-54) "Id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-55) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-56) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-57) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-58) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-59) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-60) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-61) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-62) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-10-63) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-2) # filename: all_of_with_object.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-10) class Home(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-11) address: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-12) zip: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-15) class Kind(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-16) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-17) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-18)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-19) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-20) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-23) class Pet(Home, Kind, Id): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-24) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-11-25) age: int | None = None` * * * `--generate-cli-command`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------ Generate CLI command from pyproject.toml configuration. The `--generate-cli-command` flag reads your pyproject.toml configuration and outputs the equivalent CLI command. This is useful for debugging configuration issues or sharing commands with others. **See also:** [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-12-1) datamodel-codegen --generate-cli-command # (1)!` 1. `--generate-cli-command` - the option documented here Examples **Configuration (pyproject.toml):** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-13-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-13-2) input = "schema.yaml" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-13-3) output = "model.py"` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-14-1) datamodel-codegen --input schema.yaml --output model.py` * * * `--generate-pyproject-config`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------- Generate pyproject.toml configuration from CLI arguments. The `--generate-pyproject-config` flag outputs a pyproject.toml configuration snippet based on the provided CLI arguments. This is useful for converting a working CLI command into a reusable configuration file. **See also:** [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-15-1) datamodel-codegen --input schema.json --generate-pyproject-config --input schema.yaml --output model.py # (1)!` 1. `--generate-pyproject-config` - the option documented here Examples **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-16-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-16-2) input = "schema.yaml" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-16-3) output = "model.py"` * * * `--http-headers`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-headers "Permanent link") -------------------------------------------------------------------------------------------------------------------------------- Fetch schema from URL with custom HTTP headers. The `--url` flag specifies a remote URL to fetch the schema from instead of a local file. The `--http-headers` flag adds custom HTTP headers to the request, useful for authentication (e.g., Bearer tokens) or custom API requirements. Format: `HeaderName:HeaderValue`. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-17-1) datamodel-codegen --input schema.json --url https://api.example.com/schema.json --http-headers "Authorization:Bearer token" # (1)!` 1. `--http-headers` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-18-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-2) # filename: https://api.example.com/schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-19-13) tag: str | None = None` * * * `--http-ignore-tls`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-ignore-tls "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------- Disable TLS certificate verification for HTTPS requests. The `--http-ignore-tls` flag disables SSL/TLS certificate verification when fetching schemas from HTTPS URLs. This is useful for development environments with self-signed certificates. Not recommended for production. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-20-1) datamodel-codegen --input schema.json --url https://api.example.com/schema.json --http-ignore-tls # (1)!` 1. `--http-ignore-tls` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-21-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-2) # filename: https://api.example.com/schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-22-13) tag: str | None = None` * * * `--http-query-parameters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-query-parameters "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------- Add query parameters to HTTP requests for remote schemas. The `--http-query-parameters` flag adds query parameters to HTTP requests when fetching schemas from URLs. Useful for APIs that require version or format parameters. Format: `key=value`. Multiple parameters can be specified: `--http-query-parameters version=v2 format=json`. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-23-1) datamodel-codegen --input schema.json --url https://api.example.com/schema.json --http-query-parameters version=v2 format=json # (1)!` 1. `--http-query-parameters` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-24-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-2) # filename: https://api.example.com/schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-25-13) tag: str | None = None` * * * `--http-timeout`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#http-timeout "Permanent link") -------------------------------------------------------------------------------------------------------------------------------- Set timeout for HTTP requests to remote hosts. The `--http-timeout` flag sets the timeout in seconds for HTTP requests when fetching schemas from URLs. Useful for slow servers or large schemas. Default is 30 seconds. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-26-1) datamodel-codegen --input schema.json --url https://api.example.com/schema.json --http-timeout 60 # (1)!` 1. `--http-timeout` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-27-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-2) # filename: https://api.example.com/schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-28-13) tag: str | None = None` * * * `--ignore-pyproject`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------- Ignore pyproject.toml configuration file. The `--ignore-pyproject` flag tells datamodel-codegen to ignore any \[tool.datamodel-codegen\] configuration in pyproject.toml. This is useful when you want to override project defaults with CLI arguments, or when testing without project configuration. **See also:** [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-29-1) datamodel-codegen --input schema.json --ignore-pyproject # (1)!` 1. `--ignore-pyproject` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-5) "firstName": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-6) "lastName": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-7) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-30-8) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-2) # filename: schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-6) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-7) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-9) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-10) firstName: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-31-11) lastName: str | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-2) # filename: schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-6) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-7) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-9) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-10) first_name: str | None = Field(None, alias='firstName') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-32-11) last_name: str | None = Field(None, alias='lastName')` * * * `--module-split-mode`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#module-split-mode "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------ Split generated models into separate files, one per model class. The `--module-split-mode=single` flag generates each model class in its own file, named after the class in snake\_case. Use with `--all-exports-scope=recursive` to create an **init**.py that re-exports all models for convenient imports. **Related:** [`--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) , [`--use-exact-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-33-1) datamodel-codegen --input schema.json --module-split-mode single --all-exports-scope recursive --use-exact-imports # (1)!` 1. `--module-split-mode` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-4) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-7) "id": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-8) "name": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-9) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-11) "Order": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-12) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-14) "id": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-15) "user": {"$ref": "#/definitions/User"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-16) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-17) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-18) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-34-19) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-1) # __init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-2) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-3) # filename: input.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-7) from .model import Model [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-8) from .order import Order [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-9) from .user import User [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-11) __all__ = [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-12) "Model", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-13) "Order", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-14) "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-15) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-17) # model.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-18) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-19) # filename: input.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-21) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-23) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-24)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-25) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-28) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-29) __root__: Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-31) # order.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-32) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-33) # filename: input.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-35) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-37) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-38)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-39) from .user import User [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-40) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-41)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-42) class Order(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-43) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-44) user: User | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-46) # user.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-47) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-48) # filename: input.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-49)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-50) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-51)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-52) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-53) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-54)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-55) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-56) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-35-57) name: str | None = None` * * * `--shared-module-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#shared-module-name "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------- Customize the name of the shared module for deduplicated models. The `--shared-module-name` flag sets the name of the shared module created when using `--reuse-model` with `--reuse-scope=tree`. This module contains deduplicated models that are referenced from multiple files. Default is `shared`. Use this if your schema already has a file named `shared`. Note: This option only affects modular output with tree-level model reuse. **See also:** [Model Reuse and Deduplication](https://datamodel-code-generator.koxudaxi.dev/model-reuse/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-36-1) datamodel-codegen --input schema.json --shared-module-name my_shared # (1)!` 1. `--shared-module-name` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-37-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-38-13) tag: str | None = None` * * * `--watch`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch "Permanent link") ------------------------------------------------------------------------------------------------------------------ Watch input file(s) for changes and regenerate output automatically. The `--watch` flag enables continuous file monitoring mode. When enabled, datamodel-codegen watches the input file or directory for changes and automatically regenerates the output whenever changes are detected. Press Ctrl+C to stop watching. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-39-1) datamodel-codegen --input schema.json --watch --check # (1)!` 1. `--watch` - the option documented here Requires extra dependency The watch feature requires the `watch` extra: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-40-1) pip install 'datamodel-code-generator[watch]'` Examples JSON Schemaunknown **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-6) "firstName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-8) "description": "The person's first name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-10) "lastName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-11) "type": ["string", "null"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-12) "description": "The person's last name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-14) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-15) "description": "Age in years which must be equal to or greater than zero.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-17) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-18) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-19) "friends": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-20) "type": "array" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-22) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-23) "type": "null" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-41-26) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-42-1) Error: --watch and --check cannot be used together` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-43-1) Error: --watch requires --input file path` * * * `--watch-delay`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch-delay "Permanent link") ------------------------------------------------------------------------------------------------------------------------------ Set debounce delay in seconds for watch mode. The `--watch-delay` option configures the debounce interval (default: 0.5 seconds) for watch mode. This prevents multiple regenerations when files are rapidly modified in succession. The delay ensures that after the last file change, the generator waits the specified time before regenerating. **Related:** [`--watch`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#watch) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-44-1) datamodel-codegen --input schema.json --watch --watch-delay 1.5 # (1)!` 1. `--watch-delay` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-6) "firstName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-8) "description": "The person's first name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-10) "lastName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-11) "type": ["string", "null"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-12) "description": "The person's last name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-14) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-15) "description": "Age in years which must be equal to or greater than zero.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-17) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-18) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-19) "friends": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-20) "type": "array" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-22) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-23) "type": "null" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-45-26) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#__codelineno-46-1) Watching` * * * --- # Version - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/version/#version) Version ======= `--version`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/version/#version "Permanent link") --------------------------------------------------------------------------------------------------------------------- Show program version and exit. Displays the installed version of datamodel-code-generator. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/version/#__codelineno-0-1) datamodel-codegen --version # (1)!` 1. `--version` - the option documented here Output `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/version/#__codelineno-1-1) datamodel-codegen version: 0.x.x` --- # Profile - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#profile) Profile ======= `--profile`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#profile "Permanent link") --------------------------------------------------------------------------------------------------------------------- Use a named profile from pyproject.toml configuration. Profiles allow you to define multiple named configurations in your pyproject.toml file. Each profile can override the default settings with its own set of options. **Related:** [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-0-1) datamodel-codegen --input schema.json --profile strict # (1)!` 1. `--profile` - the option documented here Configuration (pyproject.toml) `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-2) # Default configuration [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-3) output-model-type = "pydantic_v2.BaseModel" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-5) [tool.datamodel-codegen.profiles.strict] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-6) # Strict profile with additional options [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-7) strict-types = ["str", "int", "float", "bool"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-8) strict-nullable = true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-10) [tool.datamodel-codegen.profiles.legacy] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-11) # Legacy profile for Pydantic v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-1-12) output-model-type = "pydantic.BaseModel"` Use profiles: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-2-1) # Use the strict profile [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-2-2) datamodel-codegen --input schema.json --profile strict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-2-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-2-4) # Use the legacy profile [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/profile/#__codelineno-2-5) datamodel-codegen --input schema.json --profile legacy` --- # No color - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/no-color/#no-color) No color ======== `--no-color`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/no-color/#no-color "Permanent link") ------------------------------------------------------------------------------------------------------------------------ Disable colorized output. By default, datamodel-codegen uses colored output for better readability. Use this option to disable colors, which is useful for CI/CD pipelines or when redirecting output to files. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/no-color/#__codelineno-0-1) datamodel-codegen --input schema.json --no-color # (1)!` 1. `--no-color` - the option documented here Environment variable You can also disable colors by setting the `NO_COLOR` environment variable: `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/no-color/#__codelineno-1-1) NO_COLOR=1 datamodel-codegen --input schema.json` --- # Generate prompt - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#generate-prompt) Generate prompt =============== `--generate-prompt`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#generate-prompt "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------- Generate a prompt for consulting LLMs about CLI options. Outputs a formatted prompt containing your current options, all available options by category, and full help text. Pipe to CLI LLM tools or copy to clipboard for web-based LLM chats. **See also:** [LLM Integration](https://datamodel-code-generator.koxudaxi.dev/llm-integration/) for detailed usage examples Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-0-1) datamodel-codegen --generate-prompt # (1)! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-0-2) datamodel-codegen --generate-prompt "How do I generate strict types?" # (2)!` 1. `--generate-prompt` - generate prompt without a question 2. Include a specific question in the prompt Quick Examples **Pipe to CLI tools:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-1-1) datamodel-codegen --generate-prompt | claude -p # Claude Code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-1-2) datamodel-codegen --generate-prompt | codex exec # OpenAI Codex` **Copy to clipboard:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-2-1) datamodel-codegen --generate-prompt | pbcopy # macOS [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-2-2) datamodel-codegen --generate-prompt | xclip -selection clipboard # Linux [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/manual/generate-prompt/#__codelineno-2-3) datamodel-codegen --generate-prompt | clip.exe # WSL2` --- # ๐Ÿ“š Supported Input Formats - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#supported-input-formats) ๐Ÿ“š Supported Input Formats[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#supported-input-formats "Permanent link") ============================================================================================================================================ This code generator supports the following input formats: * OpenAPI 3 (YAML/JSON, [OpenAPI Data Type](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#data-types) ); * JSON Schema ([JSON Schema Core](http://json-schema.org/draft/2019-09/json-schema-validation.html) /[JSON Schema Validation](http://json-schema.org/draft/2019-09/json-schema-validation.html) ); * JSON/YAML Data (it will be converted to JSON Schema); * Python dictionary (it will be converted to JSON Schema); * GraphQL schema ([GraphQL Schemas and Types](https://graphql.org/learn/schema/) ); ๐Ÿ“˜ OpenAPI 3 and JSON Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#openapi-3-and-json-schema "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------ Below are the data types and features recognized by datamodel-code-generator for OpenAPI 3 and JSON Schema. โœ… Implemented data types and features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#implemented-data-types-and-features "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### ๐Ÿ“Š Data Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#data-types "Permanent link") * string (supported keywords: pattern/minLength/maxLength) * number (supported keywords: maximum/exclusiveMaximum/minimum/exclusiveMinimum/multipleOf) * integer (supported keywords: maximum/exclusiveMaximum/minimum/exclusiveMinimum/multipleOf) * boolean * array * object ### ๐Ÿ“ String Formats[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#string-formats "Permanent link") * date * datetime * time * password * email (requires [`email-validator`](https://github.com/JoshData/python-email-validator) ) * idn-email (requires [`email-validator`](https://github.com/JoshData/python-email-validator) ) * path * uuid (uuid1/uuid2/uuid3/uuid4/uuid5) * ulid (requires [`python-ulid`](https://github.com/mdomke/python-ulid) ) * ipv4 * ipv6 * hostname * decimal * uri ### ๐Ÿ”— Other schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#other-schema "Permanent link") * enum (as enum.Enum or typing.Literal) * allOf (as Multiple inheritance) * anyOf (as typing.Union) * oneOf (as typing.Union) * $ref ([http extra](https://datamodel-code-generator.koxudaxi.dev/#http-extra-option) is required when resolving $ref for remote files.) * $id (for [JSONSchema](https://json-schema.org/understanding-json-schema/structuring.html#id) ) --- # ๐Ÿ“Š Generate from JSON Data - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/jsondata/#generate-from-json-data) ๐Ÿ“Š Generate from JSON Data[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsondata/#generate-from-json-data "Permanent link") ================================================================================================================================ Generate Pydantic models directly from JSON data. Under the hood, the generator uses [GenSON](https://pypi.org/project/genson/) to infer a JSON Schema from your input, then processes it the same way as [JSON Schema input](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) . ๐Ÿš€ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsondata/#quick-start "Permanent link") -------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-0-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-0-2) --input pets.json \ [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-0-3) --input-file-type json \ [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-0-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-0-5) --output model.py` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsondata/#example "Permanent link") ------------------------------------------------------------------------------------------------ **pets.json** `[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-2) "pets": [ [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-3) { [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-4) "name": "dog", [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-5) "age": 2 [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-6) }, [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-7) { [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-8) "name": "cat", [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-9) "age": 1 [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-10) }, [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-11) { [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-12) "name": "snake", [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-13) "age": 3, [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-14) "nickname": "python" [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-15) } [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-16) ], [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-17) "status": 200 [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-1-18) }` **โœจ Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-2) # filename: pets.json [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-3) # timestamp: 2020-04-27T16:08:21+00:00 [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-12) age: int [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-13) nickname: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-14) [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-15)[](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-16) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-17) pets: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/jsondata/#__codelineno-2-18) status: int` * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsondata/#see-also "Permanent link") -------------------------------------------------------------------------------------------------- * ๐Ÿ“‹ [Generate from JSON Schema](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) - JSON Schema input documentation * ๐Ÿ–ฅ๏ธ [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete CLI options reference * ๐Ÿ“Š [Supported Data Types](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/) - Data type support details --- # ๐Ÿ”ท Generate from GraphQL - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/graphql/#generate-from-graphql) ๐Ÿ”ท Generate from GraphQL[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#generate-from-graphql "Permanent link") =========================================================================================================================== Generate Pydantic models from GraphQL schema definitions. ๐Ÿš€ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#quick-start "Permanent link") ------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-0-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-0-2) --input schema.graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-0-3) --input-file-type graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-0-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-0-5) --output model.py` Why `--output-model-type`? Starting from version 0.53.0, explicitly specifying `--output-model-type` is recommended. See [Omitting --output-model-type is deprecated](https://datamodel-code-generator.koxudaxi.dev/#omitting---output-model-type-is-deprecated) for details. ๐Ÿ“ฆ Installation GraphQL support requires the `graphql` extra: `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-1-1) pip install 'datamodel-code-generator[graphql]'` ๐Ÿ“ Simple Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#simple-example "Permanent link") ------------------------------------------------------------------------------------------------------------- Let's consider a simple GraphQL schema (more details in [GraphQL Schemas and Types](https://graphql.org/learn/schema/) ). **schema.graphql** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-1) type Book { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-2) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-3) title: String [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-4) author: Author [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-5) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-7) type Author { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-8) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-9) name: String [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-10) books: [Book] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-11) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-12)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-13) input BooksInput { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-14) ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-15) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-16)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-17) input AuthorBooksInput { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-18) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-19) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-20)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-21) type Query { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-22) getBooks(input: BooksInput): [Book] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-23) getAuthorBooks(input: AuthorBooksInput): [Book] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-2-24) }` **โœจ Generated model.py** ``[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-2) # filename: schema.graphql [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-3) # timestamp: 2023-11-20T17:04:42+00:00 [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-6)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-7) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-8)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-10) from typing_extensions import Literal [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-11)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-12) # The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-13) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-14) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-15)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-16) # The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-17) ID: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-18) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-19)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-20) # The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-21) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-22) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-23)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-24) class Author(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-25) books: list[Book | None] | None = Field(default_factory=list) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-26) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-27) name: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-28) typename__: Literal['Author'] | None = Field('Author', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-29) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-30)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-31) class Book(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-32) author: Author | None = None [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-33) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-34) title: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-35) typename__: Literal['Book'] | None = Field('Book', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-36) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-37)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-38) class AuthorBooksInput(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-39) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-40) typename__: Literal['AuthorBooksInput'] | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-41) 'AuthorBooksInput', alias='__typename' [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-42) ) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-43) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-44)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-45) class BooksInput(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-46) ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-47) typename__: Literal['BooksInput'] | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-48) 'BooksInput', alias='__typename' [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-3-49) )`` * * * ๐Ÿ“ค Response Deserialization[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#response-deserialization "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- For the following response of `getAuthorBooks` GraphQL query: **response.json** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-1) { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-2) "getAuthorBooks": [ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-3) { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-4) "author": { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-5) "id": "51341cdscwef14r13", [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-6) "name": "J. K. Rowling" [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-7) }, [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-8) "id": "1321dfvrt211wdw", [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-9) "title": "Harry Potter and the Prisoner of Azkaban" [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-10) }, [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-11) { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-12) "author": { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-13) "id": "51341cdscwef14r13", [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-14) "name": "J. K. Rowling" [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-15) }, [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-16) "id": "dvsmu12e19xmqacqw9", [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-17) "title": "Fantastic Beasts: The Crimes of Grindelwald" [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-18) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-19) ] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-4-20) }` **main.py** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-1) from model import Book [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-2)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-3) response = {...} [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-5) books = [ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-6) Book.parse_obj(book_raw) for book_raw in response["getAuthorBooks"] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-7) ] [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-8) print(books) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-5-9) # [Book(author=Author(books=[], id='51341cdscwef14r13', name='J. K. Rowling', typename__='Author'), id='1321dfvrt211wdw', title='Harry Potter and the Prisoner of Azkaban', typename__='Book'), Book(author=Author(books=[], id='51341cdscwef14r13', name='J. K. Rowling', typename__='Author'), id='dvsmu12e19xmqacqw9', title='Fantastic Beasts: The Crimes of Grindelwald', typename__='Book')]` * * * ๐ŸŽจ Custom Scalar Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#custom-scalar-types "Permanent link") ----------------------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-2) --input schema.graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-3) --input-file-type graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-5) --extra-template-data data.json \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-6-6) --output model.py` **schema.graphql** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-1) scalar Long [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-2)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-3) type A { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-4) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-5) duration: Long! [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-7-6) }` **data.json** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-8-1) { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-8-2) "Long": { [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-8-3) "py_type": "int" [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-8-4) } [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-8-5) }` **โœจ Generated model.py** ``[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-2) # filename: custom-scalar-types.graphql [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-4)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-7) from typing import Optional, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-8)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-10) from typing_extensions import Literal [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-11)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-12) # The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-13) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-14) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-15)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-16) # The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-17) ID: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-18) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-19)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-20) Long: TypeAlias = int [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-21) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-22)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-23) # The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-24) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-25) [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-26)[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-27) class A(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-28) duration: Long [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-29) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-9-30) typename__: Optional[Literal['A']] = Field('A', alias='__typename')`` * * * ๐Ÿšซ Excluding \_\_typename Field[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#excluding-__typename-field "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------- When using generated models for GraphQL mutations, the `__typename` field may cause issues as GraphQL servers typically don't expect this field in input data. Use the `--graphql-no-typename` option to exclude this field: `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-2) --input schema.graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-3) --input-file-type graphql \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-5) --graphql-no-typename \ [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-10-6) --output model.py` **Before (default):** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-11-1) class Book(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-11-2) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-11-3) title: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-11-4) typename__: Literal['Book'] | None = Field('Book', alias='__typename')` **After (with --graphql-no-typename):** `[](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-12-1) class Book(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-12-2) id: ID [](https://datamodel-code-generator.koxudaxi.dev/graphql/#__codelineno-12-3) title: String | None = None` Union Type Discrimination If your schema uses GraphQL union types and you rely on `__typename` for type discrimination during deserialization, excluding this field may break that functionality. Consider using this option only for input types or schemas without unions. * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/graphql/#see-also "Permanent link") ------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete CLI options reference * ๐Ÿ”ง [CLI Reference: Typing Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/) - Type annotation options * ๐ŸŽจ [CLI Reference: `--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) - Custom scalar type mappings --- # ๐Ÿ“‹ Generate from JSON Schema - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#generate-from-json-schema) ๐Ÿ“‹ Generate from JSON Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#generate-from-json-schema "Permanent link") ====================================================================================================================================== Generate Pydantic models from JSON Schema definitions. See [Supported Data Types](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/#openapi-3-and-json-schema) for supported JSON Schema features. ๐Ÿš€ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#quick-start "Permanent link") ---------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-0-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-0-2) --input person.json \ [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-0-3) --input-file-type jsonschema \ [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-0-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-0-5) --output model.py` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#example "Permanent link") -------------------------------------------------------------------------------------------------- **person.json** `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-6) "firstName": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-8) "description": "The person's first name." [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-9) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-10) "lastName": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-11) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-12) "description": "The person's last name." [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-13) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-14) "age": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-15) "description": "Age in years which must be equal to or greater than zero.", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-17) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-18) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-19) "friends": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-20) "type": "array" [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-21) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-22) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-23) "type": "null" [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-24) } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-25) } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-1-26) }` **โœจ Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-2) # filename: person.json [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-3) # timestamp: 2020-04-27T16:12:27+00:00 [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-8)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-9) from pydantic import BaseModel, Field, conint [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-10) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-11)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-12) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-13) firstName: str | None = Field(None, description="The person's first name.") [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-14) lastName: str | None = Field(None, description="The person's last name.") [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-15) age: conint(ge=0) | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-16) None, description='Age in years which must be equal to or greater than zero.' [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-17) ) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-18) friends: list | None = None [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-2-19) comment: Any | None = None` Tuple validation[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#tuple-validation "Permanent link") ----------------------------------------------------------------------------------------------------------------- JSON Schema's [`prefixItems`](https://json-schema.org/understanding-json-schema/reference/array.html#tuple-validation) syntax lets you describe heterogeneous arrays. When: * `prefixItems` is present * no `items` are specified * `minItems`/`maxItems` match the number of prefix entries datamodel-code-generator emits precise tuple annotations. ### Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#example_1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-1) { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-2) "$defs": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-3) "Span": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-6) "value": { "type": "integer" } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-7) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-8) "required": ["value"] [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-9) } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-10) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-11) "title": "defaults", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-12) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-14) "a": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-15) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-16) "prefixItems": [ [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-17) { "$ref": "#/$defs/Span" }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-18) { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-19) ], [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-20) "minItems": 2, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-21) "maxItems": 2 [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-22) } [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-23) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-24) "required": ["a"] [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-3-25) }` `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-1) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-2) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-3)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-4) class Span(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-5) value: int [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-6) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-7)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-8) class Defaults(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-4-9) a: tuple[Span, str]` * * * Custom Base Class with `customBasePath`[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#custom-base-class-with-custombasepath "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- You can specify custom base classes directly in your JSON Schema using the `customBasePath` extension. This allows you to define base classes at the schema level without using CLI options. ### Single Base Class[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#single-base-class "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-1) { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-5) "customBasePath": "myapp.models.UserBase", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-7) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-8) "email": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-9) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-10) "required": ["name", "email"] [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-5-11) }` **Generated Output:** `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-3) from myapp.models import UserBase [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-4) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-5)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-6) class User(UserBase): [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-6-8) email: str` ### Multiple Base Classes (Mixins)[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#multiple-base-classes-mixins "Permanent link") You can also specify multiple base classes as a list to implement mixin patterns: `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-1) { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-5) "customBasePath": ["mixins.AuditMixin", "mixins.TimestampMixin"], [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-7) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-8) "email": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-9) }, [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-10) "required": ["name", "email"] [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-7-11) }` **Generated Output:** `[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-3) from mixins import AuditMixin, TimestampMixin [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-4) [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-6) class User(AuditMixin, TimestampMixin): [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#__codelineno-8-8) email: str` Mixin Usage When using multiple base classes, the specified classes are used directly without adding `BaseModel`. Ensure your mixins inherit from `pydantic.BaseModel` if you need Pydantic model behavior. ### Priority Resolution[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#priority-resolution "Permanent link") When multiple base class configurations are present, they are resolved in this order: 1. **`--base-class-map`** (CLI option) - Highest priority 2. **`customBasePath`** (JSON Schema extension) 3. **`--base-class`** (CLI option) - Lowest priority (default for all models) This allows you to set a default base class with `--base-class`, override specific models in the schema with `customBasePath`, and further override at the CLI level with `--base-class-map`. * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/jsonschema/#see-also "Permanent link") ---------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete CLI options reference * ๐Ÿ”ง [CLI Reference: Typing Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/) - Type annotation options * ๐Ÿท๏ธ [CLI Reference: Field Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/) - Field naming and constraint options * ๐Ÿ“Š [Supported Data Types](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/) - JSON Schema data type support * ๐Ÿ—๏ธ [CLI Reference: Model Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/) - Base class and model customization options --- # Schema Version Support - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#schema-version-support) Schema Version Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#schema-version-support "Permanent link") ==================================================================================================================================== This document describes the JSON Schema and OpenAPI versions supported by datamodel-code-generator. Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#overview "Permanent link") -------------------------------------------------------------------------------------------------------- datamodel-code-generator supports multiple versions of JSON Schema and OpenAPI specifications. By default, the tool operates in **Lenient mode**, accepting all features regardless of version declarations. This ensures maximum compatibility with real-world schemas that often mix features from different versions. JSON Schema Version Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#json-schema-version-support "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------- ### Supported Versions[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#supported-versions "Permanent link") | Version | Spec URL | Notes | | --- | --- | --- | | Draft 4 | [json-schema.org/draft-04](https://json-schema.org/draft-04/json-schema-core) | `id`, `definitions` | | Draft 6 | [json-schema.org/draft-06](https://json-schema.org/draft-06/json-schema-release-notes) | `$id`, const, boolean schemas | | Draft 7 | [json-schema.org/draft-07](https://json-schema.org/draft-07/json-schema-release-notes) | if/then/else, readOnly/writeOnly | | 2019-09 | [json-schema.org/draft/2019-09](https://json-schema.org/draft/2019-09/release-notes) | `$defs`, `$anchor` | | 2020-12 | [json-schema.org/draft/2020-12](https://json-schema.org/draft/2020-12/release-notes) | `prefixItems`, null in type arrays | ### Feature Compatibility Matrix[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#feature-compatibility-matrix "Permanent link") | Feature | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 | | --- | --- | --- | --- | --- | --- | | **ID/Reference** | | | | | | | ID field | `id` | `$id` | `$id` | `$id` | `$id` | | Definitions key | `definitions` | `definitions` | `definitions` | `$defs`\* | `$defs` | | **Type Features** | | | | | | | Boolean schemas | \- | Yes | Yes | Yes | Yes | | Null in type array | \- | \- | \- | \- | Yes | | const | \- | Yes | Yes | Yes | Yes | | **Numeric Constraints** | | | | | | | exclusiveMinimum (number) | \- (boolean) | Yes | Yes | Yes | Yes | | exclusiveMaximum (number) | \- (boolean) | Yes | Yes | Yes | Yes | | **Array Features** | | | | | | | prefixItems | \- | \- | \- | \- | Yes | | items (as array/tuple) | Yes | Yes | Yes | Yes | \- (single only) | | contains | \- | Yes | Yes | Yes | Yes | | **Conditional** | | | | | | | if/then/else | \- | \- | Yes | Yes | Yes | | **Metadata** | | | | | | | readOnly | \- | \- | Yes | Yes | Yes | | writeOnly | \- | \- | Yes | Yes | Yes | \*2019-09 supports both `definitions` and `$defs` for backward compatibility. ### Version Detection[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#version-detection "Permanent link") datamodel-code-generator automatically detects the JSON Schema version: 1. **Explicit `$schema` field**: If present, the version is detected from the URL pattern 2. **Heuristics**: If no `$schema`, presence of `$defs` suggests 2020-12, `definitions` suggests Draft 7 3. **Fallback**: Draft 7 (most widely used) OpenAPI Version Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#openapi-version-support "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------- ### Supported Versions[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#supported-versions_1 "Permanent link") | Version | Spec URL | JSON Schema Base | | --- | --- | --- | | 3.0.x | [spec.openapis.org/oas/v3.0.3](https://spec.openapis.org/oas/v3.0.3) | Draft 5 (subset) | | 3.1.x | [spec.openapis.org/oas/v3.1.0](https://spec.openapis.org/oas/v3.1.0) | 2020-12 (full) | > **Note**: OpenAPI 2.0 (Swagger) support is limited. We recommend converting to OpenAPI 3.0+. ### Feature Compatibility Matrix[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#feature-compatibility-matrix_1 "Permanent link") | Feature | OAS 3.0 | OAS 3.1 | | --- | --- | --- | | **Schema Base** | JSON Schema Draft 5 (subset) | JSON Schema 2020-12 (full) | | **Definitions Path** | `#/components/schemas` | `#/components/schemas` | | **Nullable** | | | | `nullable: true` keyword | Yes | Deprecated | | Null in type array | \- | Yes | | Type as array | \- | Yes | | **Array Features** | | | | prefixItems | \- | Yes | | **Boolean Schemas** | \- | Yes | | **OpenAPI Specific** | | | | discriminator | Yes | Yes | | binary format | Yes | Yes | | password format | Yes | Yes | | webhooks | \- | Yes | ### Version Detection[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#version-detection_1 "Permanent link") datamodel-code-generator detects the OpenAPI version from the `openapi` field: * `openapi: "3.0.x"` -> OpenAPI 3.0 * `openapi: "3.1.x"` -> OpenAPI 3.1 * No `openapi` field -> Fallback to OpenAPI 3.1 ### Supported Features (from code)[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#supported-features-from-code "Permanent link") The following features are tracked in the codebase with their implementation status: #### JSON Schema Features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#json-schema-features "Permanent link") | Feature | Introduced | Status | Description | | --- | --- | --- | --- | | `Null in type array` | 2020-12 | โœ… Supported | Allows `type: ['string', 'null']` syntax for nullable types | | `$defs` | 2019-09 | โœ… Supported | Uses `$defs` instead of `definitions` for schema definitions | | `prefixItems` | 2020-12 | โœ… Supported | Tuple validation using `prefixItems` keyword | | `Boolean schemas` | Draft 6 | โœ… Supported | Allows `true` and `false` as valid schemas | | `$id` | Draft 6 | โœ… Supported | Schema identifier field (`id` in Draft 4, `$id` in Draft 6+) | | `definitions/$defs` | Draft 4 | โœ… Supported | Key for reusable schema definitions | | `exclusiveMinimum/Maximum as number` | Draft 6 | โœ… Supported | Numeric `exclusiveMinimum`/`exclusiveMaximum` (boolean in Draft 4) | | `readOnly/writeOnly` | Draft 7 | โœ… Supported | Field visibility hints for read-only and write-only properties | | `const` | Draft 6 | โœ… Supported | Single constant value constraint | | `propertyNames` | Draft 6 | โœ… Supported | Dict key type constraints via pattern, enum, or $ref | | `contains` | Draft 6 | โŒ Not Supported | Array contains at least one matching item | | `deprecated` | 2019-09 | โš ๏ธ Partial | Marks schema elements as deprecated | | `if/then/else` | Draft 7 | โŒ Not Supported | Conditional schema validation | | `contentMediaType/contentEncoding` | Draft 7 | โŒ Not Supported | Content type and encoding hints for strings | | `$anchor` | 2019-09 | โŒ Not Supported | Location-independent schema references | | `$vocabulary` | 2019-09 | โŒ Not Supported | Vocabulary declarations for meta-schemas | | `unevaluatedProperties` | 2019-09 | โŒ Not Supported | Additional properties not evaluated by subschemas | | `unevaluatedItems` | 2019-09 | โŒ Not Supported | Additional items not evaluated by subschemas | | `dependentRequired` | 2019-09 | โŒ Not Supported | Conditional property requirements | | `dependentSchemas` | 2019-09 | โŒ Not Supported | Conditional schema application based on property presence | | `$dynamicRef/$dynamicAnchor` | 2020-12 | โŒ Not Supported | Dynamic reference resolution across schemas | #### OpenAPI-Specific Features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#openapi-specific-features "Permanent link") | Feature | Introduced | Status | Description | | --- | --- | --- | --- | | `nullable` | OAS 3.0 | โœ… Supported | Uses `nullable: true` for nullable types (deprecated in 3.1) | | `discriminator` | OAS 3.0 | โœ… Supported | Polymorphism support via `discriminator` keyword | | `webhooks` | OAS 3.1 | โœ… Supported | Top-level webhooks object for incoming events | | `$ref with sibling keywords` | OAS 3.1 | โš ๏ธ Partial | $ref can coexist with description, summary (no allOf workaround) | | `xml` | OAS 3.0 | โŒ Not Supported | XML serialization metadata (name, namespace, prefix) | | `externalDocs` | OAS 3.0 | โŒ Not Supported | Reference to external documentation | | `links` | OAS 3.0 | โŒ Not Supported | Links between operations | | `callbacks` | OAS 3.0 | โŒ Not Supported | Callback definitions for webhooks | | `securitySchemes` | OAS 3.0 | โŒ Not Supported | API security mechanism definitions | Data Format Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#data-format-support "Permanent link") ------------------------------------------------------------------------------------------------------------------------------ ### Common Formats (JSON Schema + OpenAPI)[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#common-formats-json-schema-openapi "Permanent link") | Type | Format | Python Type | | --- | --- | --- | | integer | int32 | `int` | | integer | int64 | `int` | | number | float | `float` | | number | double | `float` | | number | decimal | `Decimal` | | string | date | `date` | | string | date-time | `datetime` | | string | time | `time` | | string | duration | `timedelta` | | string | email | `EmailStr` | | string | uri | `AnyUrl` | | string | uuid | `UUID` | | string | byte | `bytes` (base64) | | string | ipv4 | `IPv4Address` | | string | ipv6 | `IPv6Address` | | string | hostname | `str` | ### OpenAPI-Only Formats[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#openapi-only-formats "Permanent link") | Type | Format | Python Type | Notes | | --- | --- | --- | --- | | string | binary | `bytes` | File content | | string | password | `SecretStr` | Sensitive data | Limitations and Known Issues[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#limitations-and-known-issues "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------ ### JSON Schema - Unsupported Features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#json-schema-unsupported-features "Permanent link") | Feature | Introduced | Status | Notes | | --- | --- | --- | --- | | `$anchor` | 2019-09 | โŒ Not supported | Use `$ref` with `$id` instead | | `$dynamicRef` / `$dynamicAnchor` | 2020-12 | โŒ Not supported | Dynamic references | | `unevaluatedProperties` | 2019-09 | โŒ Not supported | Use `additionalProperties` instead | | `unevaluatedItems` | 2019-09 | โŒ Not supported | Use `additionalItems` instead | | `contentMediaType` | Draft 7 | โŒ Not supported | Content type hints ignored | | `contentEncoding` | Draft 7 | โŒ Not supported | Encoding hints ignored | | `contentSchema` | 2019-09 | โŒ Not supported | Nested content schema ignored | | `$vocabulary` | 2019-09 | โŒ Not supported | Vocabulary declarations ignored | | `$comment` | Draft 7 | โš ๏ธ Ignored | Comments not preserved in output | | `deprecated` | 2019-09 | โš ๏ธ Partial | Recognized but not enforced | | `examples` (array) | Draft 6 | โš ๏ธ Partial | Only first example used for Field default | | Recursive `$ref` | Draft 4+ | โš ๏ธ Partial | Supported with `ForwardRef`, may require manual adjustment | | `propertyNames` | Draft 6 | โœ… Supported | Dict key type constraints via pattern, enum, or $ref | | `dependentRequired` | 2019-09 | โŒ Not supported | Dependent requirements ignored | | `dependentSchemas` | 2019-09 | โŒ Not supported | Dependent schemas ignored | ### OpenAPI - Unsupported Features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#openapi-unsupported-features "Permanent link") | Feature | Introduced | Status | Notes | | --- | --- | --- | --- | | OpenAPI 2.0 (Swagger) | OAS 2.0 | โš ๏ธ Limited | Recommend converting to 3.0+ | | `$ref` sibling keywords | OAS 3.0 | โŒ Not supported | 3.0 spec limitation (fixed in 3.1) | | `links` | OAS 3.0 | โŒ Not supported | Runtime linking not applicable | | `callbacks` | OAS 3.0 | โŒ Not supported | Webhook callbacks ignored | | `webhooks` | OAS 3.1 | โŒ Not supported | Top-level webhooks ignored | | `security` definitions | OAS 2.0+ | โŒ Not supported | Security schemes not generated | | `servers` | OAS 3.0 | โŒ Not supported | Server configuration ignored | | `externalDocs` | OAS 2.0+ | โŒ Not supported | External documentation links ignored | | `xml` | OAS 2.0+ | โŒ Not supported | XML serialization hints ignored | | Request body `required` | OAS 3.0 | โš ๏ธ Partial | Affects field optionality | | Header/Cookie parameters | OAS 3.0 | โš ๏ธ Partial | Generated but not validated | ### GraphQL - Unsupported Features[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#graphql-unsupported-features "Permanent link") | Feature | Spec | Status | Notes | | --- | --- | --- | --- | | Directives | Core | โŒ Not supported | Custom directives ignored | | Subscriptions | Core | โŒ Not supported | Only Query/Mutation types | | Custom scalars | Core | โš ๏ธ Partial | Mapped to `Any` by default | | Interfaces inheritance | Core | โš ๏ธ Partial | Flattened to concrete types | | Federation directives | Apollo | โŒ Not supported | Apollo Federation not supported | | Input unions | Proposal | โŒ Not supported | Not yet in GraphQL spec | ### Legend[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#legend "Permanent link") * โœ… Fully supported * โš ๏ธ Partial support or limitations * โŒ Not supported ### Mixed Version Schemas[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#mixed-version-schemas "Permanent link") Real-world schemas often mix features from different versions. datamodel-code-generator handles this in **Lenient mode** (default): * Features from all versions are accepted * No warnings for version mismatches * Maximum compatibility with existing schemas In **Strict mode** (`--schema-version-mode strict`), warnings are emitted for version-incompatible features. See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/supported_formats/#see-also "Permanent link") -------------------------------------------------------------------------------------------------------- * [Supported Data Types](https://datamodel-code-generator.koxudaxi.dev/supported-data-types/) - Complete data type support * [JSON Schema Guide](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) - JSON Schema usage examples * [OpenAPI Guide](https://datamodel-code-generator.koxudaxi.dev/openapi/) - OpenAPI usage examples --- # Module Structure and Exports - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/module-exports/#module-structure-and-exports) Module Structure and Exports[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#module-structure-and-exports "Permanent link") ============================================================================================================================================= When generating models to a directory structure, datamodel-code-generator can automatically create `__init__.py` files with `__all__` exports. This page explains how to control this behavior. Quick Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#quick-overview "Permanent link") ----------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | `--all-exports-scope` | Control which modules get `__all__` exports | | `--all-exports-collision-strategy` | Handle name collisions in recursive exports | | `--treat-dot-as-module` | Convert dots in names to nested modules | * * * `--all-exports-scope`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#-all-exports-scope "Permanent link") ---------------------------------------------------------------------------------------------------------------------------- Controls the scope of `__all__` generation in `__init__.py` files. | Value | Description | | --- | --- | | `none` | No `__all__` generation (default) | | `local` | Export only the module's own definitions | | `recursive` | Export all definitions from child modules | ### Example: `none` (default)[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#example-none-default "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-0-1) datamodel-codegen --input schemas/ --output models/` `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-1-1) # models/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-1-2) # (empty or minimal imports)` ### Example: `local`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#example-local "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-2-1) datamodel-codegen --input schemas/ --output models/ --all-exports-scope local` `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-3-1) # models/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-3-2) from .user import User [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-3-3) from .order import Order [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-3-5) __all__ = ["User", "Order"]` ### Example: `recursive`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#example-recursive "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-4-1) datamodel-codegen --input schemas/ --output models/ --all-exports-scope recursive` `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-1) # models/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-2) from .user import User [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-3) from .order import Order [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-4) from .common.status import Status [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-5) from .common.types import ID, Timestamp [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-5-7) __all__ = ["User", "Order", "Status", "ID", "Timestamp"]` * * * `--all-exports-collision-strategy`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#-all-exports-collision-strategy "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------ When using `--all-exports-scope recursive`, name collisions can occur if multiple modules define the same class name. This option controls how to handle them. | Value | Description | | --- | --- | | `minimal-prefix` | Add minimum module path prefix to disambiguate | | `full-prefix` | Use complete module path for all exports | ### The Problem[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#the-problem "Permanent link") `` [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-6-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-6-2) โ”œโ”€โ”€ user/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-6-3) โ”‚ โ””โ”€โ”€ types.py # defines `ID` [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-6-4) โ””โ”€โ”€ order/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-6-5) โ””โ”€โ”€ types.py # also defines `ID` `` Both modules define `ID`, causing a collision when exporting recursively. ### Solution: `minimal-prefix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#solution-minimal-prefix "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-7-1) datamodel-codegen --input schemas/ --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-7-2) --all-exports-scope recursive \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-7-3) --all-exports-collision-strategy minimal-prefix` `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-8-1) # models/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-8-2) from .user.types import ID as user_ID [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-8-3) from .order.types import ID as order_ID [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-8-5) __all__ = ["user_ID", "order_ID"]` Only colliding names get prefixed. ### Solution: `full-prefix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#solution-full-prefix "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-9-1) datamodel-codegen --input schemas/ --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-9-2) --all-exports-scope recursive \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-9-3) --all-exports-collision-strategy full-prefix` `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-10-1) # models/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-10-2) from .user.types import ID as user_types_ID [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-10-3) from .order.types import ID as order_types_ID [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-10-4)[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-10-5) __all__ = ["user_types_ID", "order_types_ID"]` All names use the full module path prefix. * * * `--treat-dot-as-module`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#-treat-dot-as-module "Permanent link") -------------------------------------------------------------------------------------------------------------------------------- Converts dots in schema names to nested module directories. ### Without `--treat-dot-as-module`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#without-treat-dot-as-module "Permanent link") Schema with `title: "api.v1.User"` generates: `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-11-1) # models.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-11-2) class ApiV1User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-11-3) ...` ### With `--treat-dot-as-module`[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#with-treat-dot-as-module "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-12-1) datamodel-codegen --input schema.json --output models/ --treat-dot-as-module` Schema with `title: "api.v1.User"` generates: `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-2) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-3) โ””โ”€โ”€ api/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-4) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-5) โ””โ”€โ”€ v1/ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-6) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-13-7) โ””โ”€โ”€ user.py # contains class User` This is useful for: - Organizing large schemas by namespace - Mirroring API versioning structure - Keeping related models together * * * Common Patterns[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#common-patterns "Permanent link") ------------------------------------------------------------------------------------------------------------------- ### Pattern 1: Flat output with local exports[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#pattern-1-flat-output-with-local-exports "Permanent link") Best for small to medium projects with a single output file or simple structure. `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-14-1) datamodel-codegen --input schema.yaml --output models/ --all-exports-scope local` ### Pattern 2: Hierarchical with recursive exports[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#pattern-2-hierarchical-with-recursive-exports "Permanent link") Best for large projects with many schemas organized by domain. `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-15-1) datamodel-codegen --input schemas/ --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-15-2) --all-exports-scope recursive \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-15-3) --all-exports-collision-strategy minimal-prefix \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-15-4) --treat-dot-as-module` ### Pattern 3: OpenAPI with module structure[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#pattern-3-openapi-with-module-structure "Permanent link") Best for OpenAPI schemas with versioned endpoints. `[](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-16-1) datamodel-codegen --input openapi.yaml --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-16-2) --treat-dot-as-module \ [](https://datamodel-code-generator.koxudaxi.dev/module-exports/#__codelineno-16-3) --all-exports-scope recursive` * * * Troubleshooting[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#troubleshooting "Permanent link") ------------------------------------------------------------------------------------------------------------------- ### Import errors after generation[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#import-errors-after-generation "Permanent link") If you see `ImportError: cannot import name 'X'`: 1. Check if `__all__` is generated correctly 2. Verify the module structure matches your imports 3. Try `--all-exports-scope local` first, then `recursive` ### Name collisions[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#name-collisions "Permanent link") If you see duplicate class names: 1. Use `--all-exports-collision-strategy minimal-prefix` 2. Or use `--all-exports-collision-strategy full-prefix` for maximum clarity 3. Consider restructuring your schemas to avoid collisions ### Circular imports[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#circular-imports "Permanent link") If you encounter circular import errors: 1. Check the generated `__init__.py` files 2. Consider using `--all-exports-scope local` instead of `recursive` 3. Use lazy imports in your application code * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/module-exports/#see-also "Permanent link") ----------------------------------------------------------------------------------------------------- * [CLI Reference: `--all-exports-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-scope) * [CLI Reference: `--all-exports-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#all-exports-collision-strategy) * [CLI Reference: `--treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module) * [Model Reuse and Deduplication](https://datamodel-code-generator.koxudaxi.dev/model-reuse/) --- # ๐Ÿ“˜ Generate from OpenAPI - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/openapi/#generate-from-openapi) ๐Ÿ“˜ Generate from OpenAPI[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#generate-from-openapi "Permanent link") =========================================================================================================================== Generate Pydantic models from OpenAPI 3 schema definitions. ๐Ÿš€ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#quick-start "Permanent link") ------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-0-1) datamodel-codegen --input api.yaml --input-file-type openapi --output model.py` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#example "Permanent link") ----------------------------------------------------------------------------------------------- api.yaml `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-2) info: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-5) license: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-11) get: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-27) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-28) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-29) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-30) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-31) default: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-32) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-33) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-34) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-35) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-36) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-37) post: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-38) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-39) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-40) tags: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-41) - pets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-42) responses: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-43) '201': [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-44) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-45) default: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-46) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-47) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-48) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-49) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-50) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-51) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-52) get: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-53) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-54) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-55) tags: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-56) - pets [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-57) parameters: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-58) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-59) in: path [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-60) required: true [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-61) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-62) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-63) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-64) responses: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-65) '200': [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-66) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-67) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-68) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-69) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-70) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-71) default: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-72) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-73) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-74) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-75) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-76) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-77) components: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-78) schemas: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-79) Pet: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-80) required: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-81) - id [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-82) - name [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-83) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-84) id: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-85) type: integer [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-86) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-87) name: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-88) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-89) tag: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-90) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-91) Pets: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-92) type: array [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-93) items: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-94) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-95) Error: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-96) required: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-97) - code [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-98) - message [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-99) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-100) code: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-101) type: integer [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-102) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-103) message: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-1-104) type: string` **โœจ Generated model.py:** `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-3)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-5)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-6) from pydantic import BaseModel, RootModel [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-7) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-8)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-9) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-10) id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-12) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-13) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-14)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-15) class Pets(RootModel[list[Pet]]): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-16) root: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-17) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-18)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-19) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-20) code: int [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-2-21) message: str` * * * ๐Ÿ“– readOnly / writeOnly Properties[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#readonly-writeonly-properties "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------- OpenAPI 3.x supports `readOnly` and `writeOnly` property annotations: * ๐Ÿ“ค **readOnly**: Property is only returned in responses (e.g., `id`, `created_at`) * ๐Ÿ“ฅ **writeOnly**: Property is only sent in requests (e.g., `password`) ### โš™๏ธ Option: `--read-only-write-only-model-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#option-read-only-write-only-model-type "Permanent link") This option generates separate Request/Response models based on these annotations. | Value | Description | | --- | --- | | (not set) | Default. No special handling (backward compatible) | | `request-response` | Generate only Request/Response models (no base model) | | `all` | Generate base model + Request + Response models | ### ๐Ÿ“‹ Example Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#example-schema "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-2) info: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-3) title: User API [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-4) version: "1.0" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-5) paths: {} [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-6) components: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-7) schemas: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-8) User: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-9) type: object [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-10) required: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-11) - id [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-12) - name [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-13) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-14) id: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-15) type: integer [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-16) readOnly: true # Server-generated, not in requests [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-17) name: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-18) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-19) password: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-20) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-21) writeOnly: true # Client-only, not in responses [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-22) created_at: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-23) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-24) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-3-25) readOnly: true` ### โœจ Generated Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#generated-output "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-4-1) datamodel-codegen --input user.yaml --input-file-type openapi \ [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-4-2) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-4-3) --read-only-write-only-model-type all` `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-1) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-2) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-3) from datetime import datetime [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-5) # ๐Ÿ“ฅ Request model: excludes readOnly fields (id, created_at) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-6) class UserRequest(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-8) password: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-10) # ๐Ÿ“ค Response model: excludes writeOnly fields (password) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-11) class UserResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-12) id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-13) name: str [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-14) created_at: Optional[datetime] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-15)[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-16) # ๐Ÿ“ฆ Base model: contains all fields [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-17) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-18) id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-19) name: str [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-20) password: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-5-21) created_at: Optional[datetime] = None` ### ๐ŸŽฏ Usage Patterns[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#usage-patterns "Permanent link") | Use Case | Recommended Option | Generated Models | | --- | --- | --- | | API client validation | `request-response` | `UserRequest`, `UserResponse` | | Database ORM mapping | (not set) | `User` | | Both client & ORM | `all` | `User`, `UserRequest`, `UserResponse` | ### ๐Ÿ”— Behavior with allOf Inheritance[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#behavior-with-allof-inheritance "Permanent link") When using `allOf` with `$ref`, fields from all referenced schemas are flattened into Request/Response models: `[](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-1) components: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-2) schemas: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-3) Timestamps: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-4) type: object [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-5) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-6) created_at: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-7) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-8) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-9) readOnly: true [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-10) [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-11) User: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-12) allOf: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-13) - $ref: "#/components/schemas/Timestamps" [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-14) - type: object [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-15) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-16) name: [](https://datamodel-code-generator.koxudaxi.dev/openapi/#__codelineno-6-17) type: string` Generated `UserRequest` will exclude `created_at` (readOnly from Timestamps). ### โš ๏ธ Collision Handling[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#collision-handling "Permanent link") If a schema named `UserRequest` or `UserResponse` already exists, the generated model will be named `UserRequestModel` or `UserResponseModel` to avoid conflicts. ### ๐Ÿ“ค Supported Output Formats[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#supported-output-formats "Permanent link") This option works with all output formats: * `pydantic.BaseModel` / `pydantic_v2.BaseModel` * `dataclasses.dataclass` * `typing.TypedDict` * `msgspec.Struct` ### ๐Ÿ”— Supported $ref Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#supported-ref-types "Permanent link") readOnly/writeOnly resolution works with local and file reference types: | Reference Type | Example | Support | | --- | --- | --- | | Local | `#/components/schemas/User` | โœ… Supported | | File | `./common.yaml#/User` | โœ… Supported | * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi/#see-also "Permanent link") ------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: OpenAPI-only Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/) - All OpenAPI-specific CLI options * โš™๏ธ [CLI Reference: Base Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/) - Input/output configuration options --- # Output Model Types - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#output-model-types) Output Model Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#output-model-types "Permanent link") =================================================================================================================================================== datamodel-code-generator supports multiple output model types. This page compares them to help you choose the right one for your project. Quick Comparison[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#quick-comparison "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- | Model Type | Validation | Serialization | Performance | Use Case | | --- | --- | --- | --- | --- | | **Pydantic v2** | Runtime | Built-in | Fast | New projects, APIs, data validation | | **Pydantic v2 dataclass** | Runtime | Built-in | Fast | Pydantic validation with dataclass syntax | | **Pydantic v1** | Runtime | Built-in | Moderate | Legacy compatibility | | **dataclasses** | None | Manual | Fastest | Simple data containers, no validation needed | | **TypedDict** | Static only | Dict-compatible | N/A | Type hints for dicts, JSON APIs | | **msgspec** | Runtime | Built-in | Fastest | High-performance serialization | * * * Pydantic v2 (Recommended)[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#pydantic-v2-recommended "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type pydantic_v2.BaseModel`** Pydantic v2 is recommended for new projects. It offers better performance and a modern API. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-0-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-1) from pydantic import BaseModel, Field, RootModel [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-3) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-4) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-5) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-6) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-7)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-8) class Pets(RootModel[list[Pet]]): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-1-9) root: list[Pet]` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#when-to-use "Permanent link") * New projects without Pydantic v1 dependencies * APIs requiring data validation * Projects needing JSON Schema generation from models * * * Pydantic v2 dataclass[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#pydantic-v2-dataclass "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type pydantic_v2.dataclass`** Pydantic v2 dataclass combines the familiar dataclass syntax with Pydantic's validation capabilities. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-2-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.dataclass --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-1) from pydantic.dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-2) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-3)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-4) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-5) class Pet: [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-6) id: int [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-3-8) tag: Optional[str] = None` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#when-to-use_1 "Permanent link") * Want to use dataclass syntax with Pydantic validation * Migrating from dataclasses but need validation * Prefer decorator-based class definition * * * Pydantic v1[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#pydantic-v1 "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type pydantic.BaseModel`** (default) Pydantic v1 is the default for backward compatibility with existing codebases. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-4-1) datamodel-codegen --input schema.json --output-model-type pydantic.BaseModel --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-1) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-2)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-3) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-4) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-5) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-6) tag: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-7)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-8) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-5-9) __root__: List[Pet]` ### Migration from v1 to v2[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#migration-from-v1-to-v2 "Permanent link") Key differences when migrating: | v1 | v2 | Notes | | --- | --- | --- | | `__root__` | `RootModel` | Custom root types now use `RootModel` class | | `const` | Removed | Use `Literal` types instead | | `min_items` | `min_length` | | | `max_items` | `max_length` | | | `unique_items` | Removed | List replaced by `set` type | | `allow_mutation` | `frozen` | Inverse value | | `regex` | `pattern` | | | `pydantic.Config` | `pydantic.ConfigDict` | | See [Pydantic v2 Migration Guide](https://docs.pydantic.dev/2.0/migration/) for details. * * * dataclasses[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#dataclasses "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type dataclasses.dataclass`** Python's built-in dataclasses for simple data containers without runtime validation. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-6-1) datamodel-codegen --input schema.json --output-model-type dataclasses.dataclass --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-1) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-2) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-3)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-4) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-5) class Pet: [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-6) id: int [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-7-8) tag: Optional[str] = None` ### Options for dataclasses[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#options-for-dataclasses "Permanent link") | Option | Description | | --- | --- | | `--frozen-dataclasses` | Generate immutable dataclasses (`frozen=True`) | | `--keyword-only` | Require keyword arguments (`kw_only=True`, Python 3.10+) | | `--dataclass-arguments` | Custom decorator arguments as JSON | `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-8-1) # Frozen, keyword-only dataclasses [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-8-2) datamodel-codegen --input schema.json --output-model-type dataclasses.dataclass \ [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-8-3) --frozen-dataclasses --keyword-only --target-python-version 3.10` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#when-to-use_2 "Permanent link") * Simple data structures without validation needs * Performance-critical code where validation overhead matters * Interoperability with code expecting dataclasses * * * TypedDict[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#typeddict "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type typing.TypedDict`** TypedDict provides static type checking for dictionary structures. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-9-1) datamodel-codegen --input schema.json --output-model-type typing.TypedDict --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-1) from typing import TypedDict, NotRequired [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-2)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-3) class Pet(TypedDict): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-4) id: int [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-5) name: str [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-10-6) tag: NotRequired[str]` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#when-to-use_3 "Permanent link") * Working with JSON APIs where data remains as dicts * Static type checking without runtime overhead * Gradual typing of existing dict-based code * * * msgspec[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#msgspec "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- **Use `--output-model-type msgspec.Struct`** [msgspec](https://github.com/jcrist/msgspec) offers high-performance serialization with validation. `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-11-1) pip install 'datamodel-code-generator[msgspec]' [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-11-2) datamodel-codegen --input schema.json --output-model-type msgspec.Struct --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-1) from msgspec import Struct, field [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-2) from typing import Union, UnsetType [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-3) from msgspec import UNSET [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-4)[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-5) class Pet(Struct): [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-6) id: int [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-12-8) tag: Union[str, UnsetType] = UNSET` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#when-to-use_4 "Permanent link") * High-performance JSON/MessagePack serialization * Memory-efficient data structures * APIs with strict performance requirements * * * Choosing the Right Type[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#choosing-the-right-type "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-1) graph TD [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-2) A[Need runtime validation?] -->|Yes| B[Need best performance?] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-3) A -->|No| C[Need type hints for dicts?] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-4) B -->|Yes| D[msgspec.Struct] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-5) B -->|No| E[Pydantic v1 dependency?] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-6) E -->|Yes| F[pydantic.BaseModel] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-7) E -->|No| G[Prefer dataclass syntax?] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-8) G -->|Yes| H[pydantic_v2.dataclass] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-9) G -->|No| I[pydantic_v2.BaseModel] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-10) C -->|Yes| J[typing.TypedDict] [](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#__codelineno-13-11) C -->|No| K[dataclasses.dataclass]` ### Decision Guide[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#decision-guide "Permanent link") 1. **API with validation** โ†’ Pydantic v2 2. **Validation with dataclass syntax** โ†’ Pydantic v2 dataclass 3. **Legacy Pydantic v1 project** โ†’ Pydantic v1 4. **High-performance serialization** โ†’ msgspec 5. **Simple data containers** โ†’ dataclasses 6. **Dict-based JSON handling** โ†’ TypedDict * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------------------------------- * [CLI Reference: `--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) * [CLI Reference: Model Customization](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/) * [Pydantic Documentation](https://docs.pydantic.dev/) * [msgspec Documentation](https://jcristharif.com/msgspec/) --- # ๐ŸŽจ Custom Code Formatters - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#custom-code-formatters) ๐ŸŽจ Custom Code Formatters[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#custom-code-formatters "Permanent link") ======================================================================================================================================= Create your own custom code formatters for specialized formatting needs. ๐Ÿš€ Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#usage "Permanent link") ----------------------------------------------------------------------------------------------------- Pass the module path containing your formatter class: `[](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-0-1) datamodel-codegen --input {your_input_file} --output {your_output_file} --custom-formatters "{path_to_your_module}.your_module"` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#example "Permanent link") --------------------------------------------------------------------------------------------------------- ### 1๏ธโƒฃ Create your formatter[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#1-create-your-formatter "Permanent link") ### your\_module.py[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#your_modulepy "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-1) from datamodel_code_generator.format import CustomCodeFormatter [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-3) class CodeFormatter(CustomCodeFormatter): [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-4) def apply(self, code: str) -> str: [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-5) # Apply your custom formatting here [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-6) # For example, add a custom header comment: [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-7) header = "# This code was formatted by custom formatter\n" [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-1-8) return header + code` ### 2๏ธโƒฃ Use your formatter[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#2-use-your-formatter "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-2-1) datamodel-codegen --input schema.json --output model.py --custom-formatters "mypackage.your_module"` ๐Ÿ”ง Passing Arguments[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#passing-arguments "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- You can pass keyword arguments to your custom formatter using `--custom-formatters-kwargs`: `[](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-3-1) datamodel-codegen --input schema.json --output model.py \ [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-3-2) --custom-formatters "mypackage.your_module" \ [](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#__codelineno-3-3) --custom-formatters-kwargs '{"line_length": 100}'` * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/#see-also "Permanent link") ----------------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--custom-formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters) - Detailed CLI option documentation * ๐Ÿ”ง [CLI Reference: `--custom-formatters-kwargs`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs) - Pass arguments to custom formatters * ๐Ÿ–Œ๏ธ [Formatting](https://datamodel-code-generator.koxudaxi.dev/formatting/) - Built-in code formatting with black and isort --- # ๐Ÿ Generate from Python Models - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/python-model/#python-model) ๐Ÿ Generate from Python Models[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#python-model "Permanent link") ============================================================================================================================= Generate code from existing Python types: Pydantic models, dataclasses, TypedDict, or dict schemas. This is useful for converting between model types or generating from programmatically-defined schemas. ๐Ÿš€ Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#quick-start "Permanent link") ------------------------------------------------------------------------------------------------------------ `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-0-1) datamodel-codegen --input-model ./mymodule.py:User --output model.py` Format[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#format "Permanent link") ----------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-1-1) --input-model :` Simply specify the **file path** and **object name** separated by `:`. ### Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#format-example "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-2-1) myproject/ [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-2-2) โ”œโ”€โ”€ src/ [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-2-3) โ”‚ โ””โ”€โ”€ models/ [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-2-4) โ”‚ โ””โ”€โ”€ user.py # class User(BaseModel): ... [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-2-5) โ””โ”€โ”€ schemas.py # USER_SCHEMA = {...}` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-1) # From file path (recommended - easy to copy-paste) [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-2) datamodel-codegen --input-model src/models/user.py:User --output model.py [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-3) datamodel-codegen --input-model ./schemas.py:USER_SCHEMA --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-5) # Windows paths also work [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-3-6) datamodel-codegen --input-model src\models\user.py:User` Copy-paste friendly Just copy the file path from your editor or file explorer, add `:ClassName`, and you're done! ### Module format (alternative)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#module-format "Permanent link") You can also use Python module notation with dots: `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-4-1) datamodel-codegen --input-model src.models.user:User [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-4-2) datamodel-codegen --input-model schemas:USER_SCHEMA --input-file-type jsonschema` Current directory is auto-added to `sys.path` No `PYTHONPATH` configuration needed. File and package name conflict If both `mymodule.py` and `mymodule/` directory exist, use `./` prefix: `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-5-1) datamodel-codegen --input-model ./mymodule.py:Model` * * * Supported Input Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#supported-input-types "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- | Type | Description | Requires | | --- | --- | --- | | Pydantic BaseModel | Pydantic v2 models with `model_json_schema()` | Pydantic v2 | | dataclass | Standard library `@dataclass` | Pydantic v2 (for TypeAdapter) | | Pydantic dataclass | `@pydantic.dataclasses.dataclass` | Pydantic v2 | | TypedDict | `typing.TypedDict` subclasses | Pydantic v2 (for TypeAdapter) | | dict | Dict containing JSON Schema or OpenAPI spec | \- | Pydantic v2 Required All Python type inputs (except raw dict) require Pydantic v2 runtime to convert to JSON Schema. * * * ๐Ÿ“ Examples[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#examples "Permanent link") ------------------------------------------------------------------------------------------------------ ### Pydantic BaseModel[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#pydantic-basemodel "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-6-1) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-6-3) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-6-4) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-6-5) age: int` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-7-1) datamodel-codegen --input-model ./mymodule.py:User --output model.py` **โœจ Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-3) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-4) [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-6) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-8-8) age: int` ### Convert Pydantic to TypedDict[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#convert-pydantic-to-typeddict "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-9-1) datamodel-codegen --input-model ./mymodule.py:User --output-model-type typing.TypedDict --output model.py` **โœจ Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-3) from typing import TypedDict [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-4) [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-5)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-6) class User(TypedDict): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-7) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-10-8) age: int` ### Standard dataclass[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#dataclass "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-1) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-3) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-4) class User: [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-5) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-11-6) age: int` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-12-1) datamodel-codegen --input-model ./mymodule.py:User --output model.py` ### TypedDict[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#typeddict "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-13-1) from typing import TypedDict [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-13-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-13-3) class User(TypedDict): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-13-4) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-13-5) age: int` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-14-1) datamodel-codegen --input-model ./mymodule.py:User --output model.py` ### Dict Schema (JSON Schema)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#dict-jsonschema "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-1) USER_SCHEMA = { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-3) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-4) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-5) "age": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-6) }, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-7) "required": ["name", "age"], [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-15-8) }` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-16-1) datamodel-codegen --input-model ./mymodule.py:USER_SCHEMA --input-file-type jsonschema --output model.py` Dict requires --input-file-type When using a dict schema, you must specify `--input-file-type` (e.g., `jsonschema`, `openapi`). ### Dict Schema (OpenAPI)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#dict-openapi "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-1) OPENAPI_SPEC = { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-2) "openapi": "3.0.0", [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-3) "info": {"title": "API", "version": "1.0.0"}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-4) "paths": {}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-5) "components": { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-6) "schemas": { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-7) "User": { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-8) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-9) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-10) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-11) "age": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-12) }, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-13) } [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-14) } [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-15) }, [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-17-16) }` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-18-1) datamodel-codegen --input-model ./mymodule.py:OPENAPI_SPEC --input-file-type openapi --output model.py` * * * Custom Python Types with x-python-type[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#x-python-type "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------- When using `x-python-type` in JSON Schema (via `WithJsonSchema` in Pydantic), the generator automatically resolves and generates the required imports. ### Automatic Import Resolution[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#import-resolution "Permanent link") The generator supports many common Python types out of the box: | Module | Supported Types | | --- | --- | | `typing` | `Any`, `Union`, `Optional`, `Literal`, `Final`, `ClassVar`, `Annotated`, `TypeVar`, `TypeAlias`, `Never`, `NoReturn`, `Self`, `LiteralString`, `TypeGuard`, `Type` | | `collections` | `defaultdict`, `OrderedDict`, `Counter`, `deque`, `ChainMap` | | `collections.abc` | `Callable`, `Iterable`, `Iterator`, `Generator`, `Awaitable`, `Coroutine`, `AsyncIterable`, `AsyncIterator`, `AsyncGenerator`, `Mapping`, `MutableMapping`, `Sequence`, `MutableSequence`, `Set`, `MutableSet`, `Collection`, `Reversible` | | `pathlib` | `Path`, `PurePath` | | `decimal` | `Decimal` | | `uuid` | `UUID` | | `datetime` | `datetime`, `date`, `time`, `timedelta` | | `enum` | `Enum`, `IntEnum`, `StrEnum`, `Flag`, `IntFlag` | | `re` | `Pattern`, `Match` | For types not in this list, the generator dynamically searches common modules to resolve imports. ### Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#x-python-type-example "Permanent link") **mymodule.py** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-1) from collections import defaultdict [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-2) from typing import Any, Annotated [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-3) from pydantic import BaseModel, Field, WithJsonSchema [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-4)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-5) class Config(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-6) data: Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-7) defaultdict[str, Annotated[dict[str, Any], Field(default_factory=dict)]], [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-8) WithJsonSchema({'type': 'object', 'x-python-type': 'defaultdict[str, dict[str, Any]]'}) [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-19-9) ] | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-20-1) datamodel-codegen --input-model ./mymodule.py:Config --output-model-type typing.TypedDict` **โœจ Generated output** `[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-2)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-3) from collections import defaultdict [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-4) from typing import Any, TypedDict [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-5)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-6) from typing_extensions import NotRequired [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-7) [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-8)[](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-9) class Config(TypedDict): [](https://datamodel-code-generator.koxudaxi.dev/python-model/#__codelineno-21-10) data: NotRequired[defaultdict[str, dict[str, Any]] | None]` Fully Qualified Paths You can also use fully qualified paths in `x-python-type` (e.g., `collections.defaultdict`), which are always resolved correctly regardless of the static mapping. * * * Mutual Exclusion[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#mutual-exclusion "Permanent link") ------------------------------------------------------------------------------------------------------------------- `--input-model` cannot be used with: * `--input` (file input) * `--url` (URL input) * `--watch` (file watching) * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-model/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------ * ๐Ÿ–ฅ๏ธ [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete CLI options reference * ๐Ÿ“ [CLI Reference: Base Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/#input-model) - `--input-model` option details * ๐Ÿ“‹ [Generate from JSON Schema](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) - JSON Schema input documentation --- # ๐Ÿ–Œ๏ธ Code Formatting - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/formatting/#code-formatting) ๐Ÿ–Œ๏ธ Code Formatting[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#code-formatting "Permanent link") =================================================================================================================== Generated code is automatically formatted using code formatters. By default, `black` and `isort` are used to produce consistent, well-formatted output. ๐ŸŽฏ Default Behavior[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#default-behavior "Permanent link") -------------------------------------------------------------------------------------------------------------------- Future Change In a future version, the default formatters will change from `black` and `isort` to `ruff`. To prepare for this change, consider switching to ruff now using `--formatters ruff-format ruff-check`. **CLI users**: To suppress this warning, use `--disable-warnings` or explicitly specify `--formatters black isort`. **Library users**: Explicitly pass `formatters=[Formatter.BLACK, Formatter.ISORT]` to suppress this warning. `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-0-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-0-2) --input schema.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-0-3) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-0-4) --output model.py` This runs the following formatters in order: 1. **isort** - Sorts and organizes imports 2. **black** - Formats code style ๐Ÿ› ๏ธ Available Formatters[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#available-formatters "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- | Formatter | Description | | --- | --- | | `black` | Code formatting (PEP 8 style) | | `isort` | Import sorting | | `ruff-check` | Linting with auto-fix | | `ruff-format` | Fast code formatting (black alternative) | ### โšก Using ruff instead of black[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#using-ruff-instead-of-black "Permanent link") [Ruff](https://github.com/astral-sh/ruff) is a fast Python linter and formatter. To use it: Installation Required ruff is an optional dependency. Install it with: `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-1-1) pip install 'datamodel-code-generator[ruff]'` `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-1) # Use ruff for both linting and formatting [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-2) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-3) --formatters ruff-check ruff-format \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-4) --input schema.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-5) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-6) --output model.py [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-7)[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-8) # Use ruff-format as a black replacement [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-9) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-10) --formatters isort ruff-format \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-11) --input schema.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-12) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-2-13) --output model.py` ### ๐Ÿšซ Disable formatting[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#disable-formatting "Permanent link") `datamodel-codegen` requires at least one formatter when using the CLI `--formatters` option. To disable built-in formatting entirely, configure it via `pyproject.toml`: pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-3-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-3-2) formatters = []` โš™๏ธ Configuration via pyproject.toml[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#configuration-via-pyprojecttoml "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------- Formatters read their configuration from `pyproject.toml`. The tool searches for `pyproject.toml` in: 1. The output file's directory 2. Parent directories (up to the git repository root) ### ๐Ÿ“ Example Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#example-configuration "Permanent link") pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-1) [tool.black] [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-2) line-length = 100 [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-3) skip-string-normalization = true [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-4)[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-5) [tool.isort] [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-6) profile = "black" [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-7) line_length = 100 [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-8)[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-9) [tool.ruff] [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-10) line-length = 100 [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-11)[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-12) [tool.ruff.format] [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-4-13) quote-style = "single"` ๐Ÿ’ฌ String Quotes[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#string-quotes "Permanent link") -------------------------------------------------------------------------------------------------------------- By default, string quote style is determined by your formatter configuration. To force double quotes regardless of configuration: `[](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-5-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-5-2) --use-double-quotes \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-5-3) --input schema.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-5-4) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/formatting/#__codelineno-5-5) --output model.py` This overrides `skip_string_normalization` in black config. ๐ŸŽจ Custom Formatters[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#custom-formatters "Permanent link") ---------------------------------------------------------------------------------------------------------------------- You can create custom formatters for specialized formatting needs. See [Custom Formatters](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/) for details. * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/formatting/#see-also "Permanent link") ---------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) - Specify code formatters * ๐Ÿ’ฌ [CLI Reference: `--use-double-quotes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes) - Force double quotes * ๐ŸŽจ [Custom Formatters](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/) - Create your own formatters * โš™๏ธ [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) - Configure datamodel-codegen options --- # Model Reuse and Deduplication - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#model-reuse-and-deduplication) Model Reuse and Deduplication[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#model-reuse-and-deduplication "Permanent link") ============================================================================================================================================ When generating models from schemas, you may encounter duplicate model definitions. datamodel-code-generator provides options to deduplicate models and share them across multiple files, improving output structure, reducing diff sizes, and enhancing performance. Quick Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#quick-overview "Permanent link") -------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | `--reuse-model` | Deduplicate identical model/enum definitions | | `--reuse-scope` | Control scope of deduplication (`root` or `tree`) | | `--shared-module-name` | Name for shared module in multi-file output | | `--collapse-root-models` | Inline root models instead of creating wrappers | | `--use-type-alias` | Create TypeAlias for reusable field types (see [Reducing Duplicate Field Types](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#reducing-duplicate-field-types)
) | * * * `--reuse-model`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#-reuse-model "Permanent link") ------------------------------------------------------------------------------------------------------------- The `--reuse-model` flag detects identical enum or model definitions and generates a single shared definition instead of duplicates. ### Without `--reuse-model`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#without-reuse-model "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-0-1) datamodel-codegen --input schema.json --output model.py` `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-1) # Duplicate enums for animal and pet fields [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-2) class Animal(Enum): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-3) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-4) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-5)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-6) class Pet(Enum): # Duplicate! [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-7) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-8) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-9)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-10) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-11) animal: Optional[Animal] = None [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-1-12) pet: Optional[Pet] = None` ### With `--reuse-model`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#with-reuse-model "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-2-1) datamodel-codegen --input schema.json --output model.py --reuse-model` `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-1) # Single shared enum [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-2) class Animal(Enum): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-3) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-4) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-5)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-6) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-7) animal: Optional[Animal] = None [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-3-8) pet: Optional[Animal] = None # Reuses Animal` ### Benefits[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#benefits "Permanent link") * **Smaller output** - Less generated code * **Cleaner diffs** - Changes to shared types only appear once * **Better performance** - Faster generation for large schemas * **Type consistency** - Same types are truly the same * * * `--reuse-scope`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#-reuse-scope "Permanent link") ------------------------------------------------------------------------------------------------------------- Controls the scope for model reuse detection when processing multiple input files. | Value | Description | | --- | --- | | `root` | Detect duplicates only within each input file (default) | | `tree` | Detect duplicates across all input files | ### Single-file input[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#single-file-input "Permanent link") For single-file input, `--reuse-scope` has no effect. Use `--reuse-model` alone. ### Multi-file input with `tree` scope[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#multi-file-input-with-tree-scope "Permanent link") When generating from multiple schema files to a directory: `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-4-1) datamodel-codegen --input schemas/ --output models/ --reuse-model --reuse-scope tree` **Input files:** `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-5-1) schemas/ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-5-2) โ”œโ”€โ”€ user.json # defines SharedModel [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-5-3) โ””โ”€โ”€ order.json # also defines identical SharedModel` **Output with `--reuse-scope tree`:** `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-6-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-6-2) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-6-3) โ”œโ”€โ”€ user.py # imports from shared [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-6-4) โ”œโ”€โ”€ order.py # imports from shared [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-6-5) โ””โ”€โ”€ shared.py # SharedModel defined once` `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-1) # models/user.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-2) from .shared import SharedModel [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-3)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-4) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-5) data: Optional[SharedModel] = None [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-6)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-7) # models/shared.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-8) class SharedModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-9) id: Optional[int] = None [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-7-10) name: Optional[str] = None` * * * `--shared-module-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#-shared-module-name "Permanent link") --------------------------------------------------------------------------------------------------------------------------- Customize the name of the shared module when using `--reuse-scope tree`. `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-8-1) datamodel-codegen --input schemas/ --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-8-2) --reuse-model --reuse-scope tree --shared-module-name common` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-9-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-9-2) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-9-3) โ”œโ”€โ”€ user.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-9-4) โ”œโ”€โ”€ order.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-9-5) โ””โ”€โ”€ common.py # Instead of shared.py` * * * `--collapse-root-models`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#-collapse-root-models "Permanent link") ------------------------------------------------------------------------------------------------------------------------------- Inline root model definitions instead of creating separate wrapper classes. ### Without `--collapse-root-models`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#without-collapse-root-models "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-10-1) class UserId(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-10-2) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-10-3)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-10-4) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-10-5) id: UserId` ### With `--collapse-root-models`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#with-collapse-root-models "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-11-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-11-2) id: str # Inlined` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#when-to-use "Permanent link") * Simpler output when wrapper classes aren't needed * Reducing the number of generated classes * When root models are just type aliases * * * Combining Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#combining-options "Permanent link") -------------------------------------------------------------------------------------------------------------------- ### Recommended for large multi-file projects[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#recommended-for-large-multi-file-projects "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-2) --input schemas/ \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-3) --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-4) --reuse-model \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-5) --reuse-scope tree \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-6) --shared-module-name common \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-12-7) --collapse-root-models` This produces: - Deduplicated models across all files - Shared types in a `common.py` module - Inlined simple root models - Minimal, clean output ### Recommended for single-file projects[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#recommended-for-single-file-projects "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-13-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-13-2) --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-13-3) --output model.py \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-13-4) --reuse-model \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-13-5) --collapse-root-models` * * * Performance Impact[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#performance-impact "Permanent link") ---------------------------------------------------------------------------------------------------------------------- For large schemas with many models: | Scenario | Without reuse | With reuse | | --- | --- | --- | | 100 schemas, 50% duplicates | 100 models | ~50 models | | Generation time | Baseline | Faster (less to generate) | | Output size | Large | Smaller | | Git diff on type change | Multiple files | Single location | Performance tip For very large schemas, combine `--reuse-model` with `--disable-warnings` to speed up generation: `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-14-1) datamodel-codegen --reuse-model --disable-warnings --input large-schema.json` * * * Output Structure Comparison[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#output-structure-comparison "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------- ### Without deduplication[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#without-deduplication "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-15-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-15-2) โ”œโ”€โ”€ user.py # UserStatus enum [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-15-3) โ”œโ”€โ”€ order.py # OrderStatus enum (duplicate of UserStatus!) [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-15-4) โ””โ”€โ”€ product.py # ProductStatus enum (duplicate!)` ### With `--reuse-model --reuse-scope tree`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#with-reuse-model-reuse-scope-tree "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-1) models/ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-2) โ”œโ”€โ”€ __init__.py [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-3) โ”œโ”€โ”€ user.py # imports Status from shared [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-4) โ”œโ”€โ”€ order.py # imports Status from shared [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-5) โ”œโ”€โ”€ product.py # imports Status from shared [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-16-6) โ””โ”€โ”€ shared.py # Status enum defined once` * * * Reducing Duplicate Field Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#reducing-duplicate-field-types "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------- When multiple classes share the same field type with identical constraints or metadata, you can reduce duplication by defining the type once in `$defs` and referencing it with `$ref`. Combined with `--use-type-alias`, this creates a single TypeAlias that's reused across all classes. ### Problem: Duplicate Annotated Fields[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#problem-duplicate-annotated-fields "Permanent link") Without using `$ref`, each class gets its own inline field definition: `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-17-1) class ClassA(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-17-2) place_name: Annotated[str, Field(alias='placeName')] # Duplicate! [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-17-3)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-17-4) class ClassB(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-17-5) place_name: Annotated[str, Field(alias='placeName')] # Duplicate!` ### Solution: Use `$defs` with `--use-type-alias`[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#solution-use-defs-with-use-type-alias "Permanent link") **Step 1: Define the shared type in `$defs`** `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-1) { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-2) "$defs": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-3) "PlaceName": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-4) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-5) "title": "PlaceName", [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-6) "description": "A place name" [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-7) }, [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-8) "ClassA": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-9) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-10) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-11) "place_name": { "$ref": "#/$defs/PlaceName" } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-12) } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-13) }, [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-14) "ClassB": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-15) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-16) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-17) "place_name": { "$ref": "#/$defs/PlaceName" } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-18) } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-19) } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-20) } [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-18-21) }` **Step 2: Generate with `--use-type-alias`** `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-19-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-19-2) --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-19-3) --output model.py \ [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-19-4) --use-type-alias` ### Result: Single TypeAlias reused across classes[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#result-single-typealias-reused-across-classes "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-1) PlaceName = TypeAliasType( [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-2) "PlaceName", [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-3) Annotated[str, Field(..., description='A place name', title='PlaceName')], [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-4) ) [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-5) [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-6)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-7) class ClassA(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-8) place_name: PlaceName # Reuses the TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-9) [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-10)[](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-11) class ClassB(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#__codelineno-20-12) place_name: PlaceName # Reuses the TypeAlias` ### Benefits[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#benefits_1 "Permanent link") * **Single source of truth** - Field type is defined once * **Easier maintenance** - Change the type in one place * **Cleaner generated code** - No redundant annotations * **Type safety** - All fields share the exact same type ### When to Use This Pattern[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#when-to-use-this-pattern "Permanent link") This pattern is ideal when: * Multiple classes share fields with the same constraints (e.g., `minLength`, `pattern`) * Fields have identical metadata (e.g., `description`, `examples`) * You want to ensure type consistency across your schema * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/model-reuse/#see-also "Permanent link") -------------------------------------------------------------------------------------------------- * [CLI Reference: `--reuse-model`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-model) * [CLI Reference: `--reuse-scope`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#reuse-scope) * [CLI Reference: `--collapse-root-models`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#collapse-root-models) * [CLI Reference: `--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) * [Root Models and Type Aliases](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/) * [FAQ: Performance](https://datamodel-code-generator.koxudaxi.dev/faq/#-performance) --- # Custom Class Decorators - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#custom-class-decorators) Custom Class Decorators[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#custom-class-decorators "Permanent link") ===================================================================================================================================== The `--class-decorators` option adds custom decorators to all generated model classes. This is useful for integrating with serialization libraries like `dataclasses_json`, or adding custom behavior to your models. Why use this?[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#why-use-this "Permanent link") ---------------------------------------------------------------------------------------------------------------- When using `dataclasses.dataclass` output with `--snake-case-field`, Python field names are snake\_case but the original JSON keys may be camelCase. Libraries like `dataclasses_json` can handle this conversion automatically via decorators. Example: Using dataclasses\_json[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#example-using-dataclasses_json "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Convert a JSON Schema with camelCase properties to dataclasses with snake\_case fields that serialize back to camelCase. **schema.json** `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-1) { [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-5) "firstName": { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-6) "lastName": { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-7) "emailAddress": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-8) }, [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-9) "required": ["firstName", "lastName"] [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-0-10) }` ### Without `--class-decorators`[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#without-class-decorators "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-1-1) datamodel-codegen --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-1-2) --output-model-type dataclasses.dataclass \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-1-3) --snake-case-field` **Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-2)[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-3) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-4) [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-5)[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-6) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-7) class User: [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-8) first_name: str [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-9) last_name: str [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-2-10) email_address: str | None = None` The field names are snake\_case, but there's no way to map them back to the original camelCase JSON keys. * * * ### With `--class-decorators`[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#with-class-decorators "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-3-1) datamodel-codegen --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-3-2) --output-model-type dataclasses.dataclass \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-3-3) --snake-case-field \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-3-4) --class-decorators "@dataclass_json(letter_case=LetterCase.CAMEL)" \ [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-3-5) --additional-imports "dataclasses_json.dataclass_json,dataclasses_json.LetterCase"` **Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-2)[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-3) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-4)[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-5) from dataclasses_json import LetterCase, dataclass_json [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-6) [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-7)[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-8) @dataclass_json(letter_case=LetterCase.CAMEL) [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-9) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-10) class User: [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-11) first_name: str [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-12) last_name: str [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-4-13) email_address: str | None = None` Now serialization automatically converts between snake\_case and camelCase: `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-5-1) user = User(first_name="John", last_name="Doe") [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-5-2) print(user.to_json()) [](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-5-3) # {"firstName": "John", "lastName": "Doe", "emailAddress": null}` Usage Notes[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#usage-notes "Permanent link") ------------------------------------------------------------------------------------------------------------- * **Multiple decorators**: Use comma separation for multiple decorators: `[](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#__codelineno-6-1) --class-decorators "@decorator1,@decorator2"` * **@ prefix is optional**: Both `@dataclass_json` and `dataclass_json` work - the `@` is added automatically if missing. * **Combine with `--additional-imports`**: Always add the required imports for your decorators using `--additional-imports`. Other Use Cases[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#other-use-cases "Permanent link") --------------------------------------------------------------------------------------------------------------------- The `--class-decorators` option works with any output model type: * **Pydantic models**: Add custom validators or behavior * **TypedDict**: Add runtime type-checking decorators * **msgspec.Struct**: Add custom serialization hooks See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------- * [CLI Reference: `--class-decorators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators) - Detailed CLI option documentation * [CLI Reference: `--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) - Adding custom imports Related Issues[ยถ](https://datamodel-code-generator.koxudaxi.dev/class-decorators/#related-issues "Permanent link") ------------------------------------------------------------------------------------------------------------------- * [#2358](https://github.com/koxudaxi/datamodel-code-generator/issues/2358) - Feature request for dataclasses\_json support --- # ๐Ÿ”’ Field Constraints - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#field-constraints) ๐Ÿ”’ Field Constraints[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#field-constraints "Permanent link") ============================================================================================================================= The `--field-constraints` option converts all `con*` annotations (like `conint`, `constr`) to `Field` constraint options. ๐Ÿค” Why use this?[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#why-use-this "Permanent link") -------------------------------------------------------------------------------------------------------------------- Mypy may show errors for `con*` annotations on fields. The `--field-constraints` option resolves this problem by using standard `Field()` constraints instead. ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#example "Permanent link") --------------------------------------------------------------------------------------------------------- Convert simple JSON Schema `model.json` to pydantic model `model.py`: **model.json** `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-1) { [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-3) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-4) "name": { [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-5) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-6) "maxLength": 64 [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-7) } [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-8) }, [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-9) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-0-10) }` ### โŒ Without `--field-constraints` option[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#without-field-constraints-option "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-1-1) datamodel-codegen --input model.json --input-file-type jsonschema > model.py` **Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-3) # timestamp: 2020-07-20T15:37:56+00:00 [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-7) from pydantic import BaseModel, constr [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-10) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-2-11) name: constr(max_length=64)` **๐Ÿ”ด Run mypy...** `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-3-1) $ mypy model.py [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-3-2) model.py:3: error: Invalid type comment or annotation [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-3-3) model.py:3: note: Suggestion: use constr[...] instead of constr(...) [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-3-4) Found 1 error in 1 file (checked 1 source file)` mypy shows errors! ๐Ÿ˜ฑ * * * ### โœ… With `--field-constraints` option[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#with-field-constraints-option "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-4-1) datamodel-codegen --input model.json --input-file-type jsonschema --field-constraints > model.py` **Generated model.py** `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-3) # timestamp: 2020-07-20T15:47:21+00:00 [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-8) [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-10) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-5-11) name: str = Field(..., max_length=64)` **๐ŸŸข Run mypy...** `[](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-6-1) $ mypy model.py [](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#__codelineno-6-2) Success: no issues found in 1 source file` No errors! ๐ŸŽ‰ * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#see-also "Permanent link") ----------------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) - Detailed CLI option documentation with examples ๐Ÿ”— Related Issues[ยถ](https://datamodel-code-generator.koxudaxi.dev/field-constraints/#related-issues "Permanent link") ----------------------------------------------------------------------------------------------------------------------- * [pydantic/pydantic#156](https://github.com/samuelcolvin/pydantic/issues/156) --- # ๐Ÿ“ฆ Root Models and Type Aliases - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#root-models-and-type-aliases) ๐Ÿ“ฆ Root Models and Type Aliases[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#root-models-and-type-aliases "Permanent link") =========================================================================================================================================================== When a schema defines a simple type (not an object with properties), `datamodel-code-generator` creates a root model. If you don't want to introduce a new level of attribute access (`.root`) or want to use generated types as plain Python types in non-Pydantic code, you can use the `--use-type-alias` flag to generate type aliases instead of root models. โš ๏ธ Notes and Limitations[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#notes-and-limitations "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------- **This functionality is experimental!** Here are a few known issues: * ๐Ÿ“Œ RootModel and type aliases do not fully support field-specific metadata (default, alias, etc). See [Named Type Aliases](https://docs.pydantic.dev/latest/concepts/types/#named-type-aliases) for details. * ๐Ÿšซ Type aliases do not support some RootModel features (e.g. `model_config`) * ๐Ÿ“„ A RootModel or type alias is also generated for the main schema, allowing you to define a single type alias from a schema file (e.g. `model.json` containing `{"title": "MyString", "type": "string"}`) * โŒ Type aliases cannot be combined with `Annotated` for Pydantic v1 ๐Ÿ“Š Type Alias Behavior by Output Type and Python Version[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#type-alias-behavior-by-output-type-and-python-version "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The type of type alias generated depends on the output model type and target Python version: | Output Type | Python 3.12+ | Python 3.10-3.11 | | --- | --- | --- | | **Pydantic v2** | `type` statement | `TypeAliasType` (typing\_extensions) | | **Pydantic v1** | `TypeAlias` | `TypeAlias` | | **TypedDict** | `type` statement | `TypeAlias` | | **dataclasses** | `type` statement | `TypeAlias` | | **msgspec** | `type` statement | `TypeAlias` | ### ๐Ÿค” Why the difference?[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#why-the-difference "Permanent link") * **Pydantic v2** requires `TypeAliasType` because it cannot properly handle `TypeAlias` annotations * **Other output types** (TypedDict, dataclasses, msgspec) use `TypeAlias` for better compatibility with libraries that may not expect `TypeAliasType` objects * **Python 3.12+** uses the native `type` statement for all output types ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#example "Permanent link") ----------------------------------------------------------------------------------------------------------------- ### model.json[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#modeljson "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-1) { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-4) "UserId": { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-5) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-6) }, [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-7) "Status": { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-8) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-9) {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-10) {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-11) ] [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-12) }, [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-13) "User": { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-14) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-15) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-16) "id": {"$ref": "#/definitions/UserId"}, [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-17) "status": {"$ref": "#/definitions/Status"} [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-18) } [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-19) } [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-20) } [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-0-21) }` ### ๐Ÿ”น Pydantic v1[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#pydantic-v1 "Permanent link") #### Generating RootModel[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generating-rootmodel "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-1-1) datamodel-codegen --input model.json --input-file-type jsonschema --output model.py` ### โœจ Generated model.py (Pydantic v1)[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generated-modelpy-pydantic-v1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-3)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-5)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-6) from typing import Any, Optional, Union [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-7)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-8) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-9) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-10)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-11) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-12) __root__: Any [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-13) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-14)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-15) class UserId(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-16) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-17) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-18)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-19) class Status(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-20) __root__: Union[str, int] [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-21) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-22)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-23) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-24) id: Optional[UserId] = None [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-2-25) status: Optional[Status] = None` #### Generating TypeAlias annotation[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generating-typealias-annotation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-3-1) datamodel-codegen --input model.json --input-file-type jsonschema --use-type-alias --output model.py` ### โœจ Generated model.py (Python 3.10+)[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generated-modelpy-python-310 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-3)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-5)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-6) from typing import Any, Optional, TypeAlias, Union [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-7)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-8) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-9)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-10) Model: TypeAlias = Any [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-11) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-12)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-13) UserId: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-14) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-15)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-16) Status: TypeAlias = Union[str, int] [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-17) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-18)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-19) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-20) id: Optional[UserId] = None [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-4-21) status: Optional[Status] = None` ### ๐Ÿ”ธ Pydantic v2[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#pydantic-v2 "Permanent link") #### Generating RootModel[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generating-rootmodel_1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-5-1) datamodel-codegen --input model.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --output model.py` ### โœจ Generated model.py (Pydantic v2)[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generated-modelpy-pydantic-v2 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-3)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-5)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-6) from typing import Any, Optional, Union [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-7)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-8) from pydantic import BaseModel, RootModel [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-9) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-10)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-11) class Model(RootModel[Any]): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-12) root: Any [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-13) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-14)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-15) class UserId(RootModel[str]): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-16) root: str [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-17) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-18)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-19) class Status(RootModel[Union[str, int]]): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-20) root: Union[str, int] [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-21) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-22)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-23) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-24) id: Optional[UserId] = None [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-6-25) status: Optional[Status] = None` #### Generating type statement (Python 3.12+)[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generating-type-statement-python-312 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-7-1) datamodel-codegen --input model.json --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel --use-type-alias --target-python-version 3.12 --output model.py` ### โœจ Generated model.py (Python 3.12+ type statement)[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#generated-modelpy-python-312-type-statement "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-2) # filename: model.json [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-3)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-6) from typing import Any, Optional, Union [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-7)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-8) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-9)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-10) type Model = Any [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-11) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-12)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-13) type UserId = str [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-14) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-15)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-16) type Status = Union[str, int] [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-17) [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-18)[](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-19) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-20) id: Optional[UserId] = None [](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#__codelineno-8-21) status: Optional[Status] = None` * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) - Detailed CLI option documentation * ๐ŸŽฏ [CLI Reference: `--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) - Control Python version-specific syntax --- # ๐ŸŽจ Custom Templates - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/custom_template/#custom-templates) ๐ŸŽจ Custom Templates[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#custom-templates "Permanent link") ========================================================================================================================= One of the powerful features of datamodel-code-generator is the ability to use custom templates with the `--custom-template-dir` option. This allows you to provide a directory containing Jinja2 templates for customizing the generated code. ๐Ÿš€ Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#usage "Permanent link") --------------------------------------------------------------------------------------------------- Pass the directory path containing your custom templates: `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-0-1) datamodel-codegen --input {your_input_file} --output {your_output_file} --custom-template-dir {your_custom_template_directory}` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#example "Permanent link") ------------------------------------------------------------------------------------------------------- Let's say you want to generate a custom Python data model from a JSON Schema file called `person.json`. You want the generated data model to include a custom comment at the top of the file. ### 1๏ธโƒฃ Create the template directory[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#1-create-the-template-directory "Permanent link") Create a directory structure matching the output model type: `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-1-1) custom_templates/ [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-1-2) โ””โ”€โ”€ pydantic/ [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-1-3) โ””โ”€โ”€ BaseModel.jinja2` ### 2๏ธโƒฃ Create the template[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#2-create-the-template "Permanent link") **custom\_templates/pydantic/BaseModel.jinja2** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-1) # This is a custom comment generated with custom_template!! [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-2)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-3) class {{ class_name }}({{ base_class }}): [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-4) {%- for field in fields %} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-5) {{ field.name }}: {{ field.type_hint }} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-2-6) {%- endfor -%}` This custom template includes the custom comment at the top and replicates the default rendering behavior of the `BaseModel.jinja2` template. ### 3๏ธโƒฃ Run the generator[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#3-run-the-generator "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-3-1) datamodel-codegen --input person.json --output person.py --custom-template-dir custom_templates` ### โœจ Generated Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#generated-output "Permanent link") **person.py** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-2) # filename: person.json [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-3) # timestamp: 2023-04-09T05:36:24+00:00 [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-4)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-6)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-7) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-8)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-10)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-11) # This is a custom comment generated with custom_template!! [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-12) [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-13)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-14) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-15) name: Optional[str] [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-4-16) age: Optional[int]` ๐Ÿ“š Template Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#template-reference "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- You can create more complex custom templates by copying [the default templates](https://github.com/koxudaxi/datamodel-code-generator/tree/main/src/datamodel_code_generator/model/template) . Use them as a reference for understanding the structure and available variables, and customize the code generation process according to your specific requirements. * * * ๐Ÿ”ง Schema Extensions[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#schema-extensions "Permanent link") --------------------------------------------------------------------------------------------------------------------------- OpenAPI and JSON Schema allow custom extension fields prefixed with `x-`. These schema extensions are automatically passed to templates via the `extensions` variable, enabling dynamic code generation based on your custom schema metadata. ### Example: Database Model Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#example-database-model-configuration "Permanent link") Suppose you want to add a `__collection__` class attribute based on a custom `x-database-model` extension in your OpenAPI schema: **api.yaml** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-2) info: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-4) title: My API [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-5) paths: {} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-6) components: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-7) schemas: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-8) User: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-9) type: object [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-10) x-database-model: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-11) collection: users [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-12) indexes: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-13) - email [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-14) properties: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-15) id: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-16) type: string [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-17) email: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-18) type: string [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-19) required: [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-20) - id [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-5-21) - email` **custom\_templates/pydantic\_v2/BaseModel.jinja2** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-1) class {{ class_name }}({{ base_class }}): [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-2) {%- if extensions is defined and extensions.get('x-database-model') %} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-3) __collection__ = "{{ extensions['x-database-model']['collection'] }}" [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-4) {%- endif %} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-5) {%- for field in fields %} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-6) {{ field.name }}: {{ field.type_hint }} [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-6-7) {%- endfor %}` **Run the generator** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-7-1) datamodel-codegen --input api.yaml --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-7-2) --custom-template-dir custom_templates \ [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-7-3) --output-model-type pydantic_v2.BaseModel` **Generated Output** `[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-3) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-4) [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-5)[](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-6) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-7) __collection__ = "users" [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-8) id: str [](https://datamodel-code-generator.koxudaxi.dev/custom_template/#__codelineno-8-9) email: str` ### Available Extensions[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#available-extensions "Permanent link") Any field starting with `x-` in your schema will be available in the `extensions` dictionary: | Schema Field | Template Access | | --- | --- | | `x-database-model` | `extensions['x-database-model']` | | `x-custom-flag` | `extensions['x-custom-flag']` | | `x-my-extension` | `extensions['x-my-extension']` | ### Use Cases[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#use-cases "Permanent link") * **Database mapping**: Add collection names, indexes, or ORM configurations * **Validation rules**: Include custom validation logic based on schema metadata * **Documentation**: Generate custom docstrings or comments from schema extensions * **Framework integration**: Add framework-specific decorators or attributes * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/custom_template/#see-also "Permanent link") --------------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--custom-template-dir`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir) - Detailed CLI option documentation * ๐Ÿ“Š [CLI Reference: `--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) - Pass custom variables to templates --- # Field Validators - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/validators/#field-validators) Field Validators[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#field-validators "Permanent link") ================================================================================================================= The `--validators` option allows you to add custom field validators to generated Pydantic v2 models. This enables you to inject validation logic into generated code without manually editing it. Basic Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#basic-usage "Permanent link") ------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-0-1) datamodel-codegen --input schema.json --output model.py \ [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-0-2) --validators validators.json \ [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-0-3) --output-model-type pydantic_v2.BaseModel` Validators File Format[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#validators-file-format "Permanent link") ----------------------------------------------------------------------------------------------------------------------------- The validators file is a JSON file that maps model names to their validator definitions. ### Structure[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#structure "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-2) "ModelName": { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-3) "validators": [ [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-4) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-5) "field": "field_name", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-6) "function": "module.path.to.validator_function", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-7) "mode": "after" [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-8) } [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-9) ] [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-10) } [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-1-11) }` ### Fields[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#fields "Permanent link") | Field | Description | Required | | --- | --- | --- | | `field` | Single field name to validate | One of `field` or `fields` | | `fields` | List of field names (for multi-field validators) | One of `field` or `fields` | | `function` | Fully qualified path to the validator function | Yes | | `mode` | Validator mode: `before`, `after`, `wrap`, or `plain` | No (default: `after`) | Validator Modes[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#validator-modes "Permanent link") --------------------------------------------------------------------------------------------------------------- Pydantic v2 supports different validator modes, each with its own signature: ### `before` / `after` Mode[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#before-after-mode "Permanent link") Standard validators that run before or after Pydantic's own validation: `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-2-1) def validate_name(v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-2-2) if not v: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-2-3) raise ValueError("Name cannot be empty") [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-2-4) return v.strip()` ### `wrap` Mode[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#wrap-mode "Permanent link") Wrap validators receive a handler to call the next validator in the chain: `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-1) from pydantic import ValidationInfo, ValidatorFunctionWrapHandler [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-2)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-3) def wrap_validate_name( [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-4) v: Any, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-5) handler: ValidatorFunctionWrapHandler, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-6) info: ValidationInfo [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-7) ) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-8) # Pre-processing [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-9) v = v.strip() if isinstance(v, str) else v [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-10) # Call next validator [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-11) result = handler(v) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-12) # Post-processing [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-3-13) return result.upper()` ### `plain` Mode[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#plain-mode "Permanent link") Plain validators replace Pydantic's validation entirely: `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-4-1) def plain_validate_name(v: Any) -> str: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-4-2) if not isinstance(v, str): [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-4-3) raise TypeError("Expected string") [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-4-4) return v` Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#example "Permanent link") ----------------------------------------------------------------------------------------------- ### Input Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#input-schema "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-1) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-5) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-6) "email": {"type": "string", "format": "email"}, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-7) "age": {"type": "integer", "minimum": 0} [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-8) }, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-9) "required": ["name", "email"] [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-5-10) }` ### Validators File[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#validators-file "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-1) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-2) "User": { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-3) "validators": [ [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-4) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-5) "field": "name", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-6) "function": "myapp.validators.validate_name", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-7) "mode": "before" [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-8) }, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-9) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-10) "field": "email", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-11) "function": "myapp.validators.validate_email", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-12) "mode": "after" [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-13) }, [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-14) { [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-15) "fields": ["name", "email"], [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-16) "function": "myapp.validators.validate_contact_info", [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-17) "mode": "after" [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-18) } [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-19) ] [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-20) } [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-6-21) }` ### Validator Functions (myapp/validators.py)[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#validator-functions-myappvalidatorspy "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-1) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-2) from pydantic import ValidationInfo [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-3)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-4) def validate_name(v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-5) if isinstance(v, str): [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-6) return v.strip() [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-7) return v [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-8)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-9) def validate_email(v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-10) if isinstance(v, str) and not v.endswith("@example.com"): [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-11) # Custom email domain validation [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-12) pass [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-13) return v [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-14)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-15) def validate_contact_info(v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-16) # This runs for both name and email fields [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-7-17) return v` ### Generated Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#generated-output "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-3) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-5) from myapp.validators import validate_contact_info, validate_email, validate_name [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-6) from pydantic import BaseModel, EmailStr, ValidationInfo, conint, field_validator [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-7) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-8)[](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-9) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-10) name: str [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-11) email: EmailStr [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-12) age: conint(ge=0) | None = None [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-13) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-14) @field_validator('name', mode='before') [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-15) @classmethod [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-16) def validate_name_validator(cls, v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-17) return validate_name(v, info) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-18) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-19) @field_validator('email', mode='after') [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-20) @classmethod [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-21) def validate_email_validator(cls, v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-22) return validate_email(v, info) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-23) [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-24) @field_validator('name', 'email', mode='after') [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-25) @classmethod [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-26) def validate_contact_info_validator(cls, v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/validators/#__codelineno-8-27) return validate_contact_info(v, info)` Notes[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#notes "Permanent link") ------------------------------------------------------------------------------------------- * This feature only supports Pydantic v2 (`--output-model-type pydantic_v2.BaseModel`) * The `ModelName` in the validators file must match the generated Python class name * Validator functions are imported automatically based on the `function` path * When the same validator function is used multiple times, an incrementing suffix (`_1`, `_2`, etc.) is added to ensure method name uniqueness * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/validators/#see-also "Permanent link") ------------------------------------------------------------------------------------------------- * [CLI Reference: `--validators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/) - CLI option documentation * [Pydantic v2 Validators Documentation](https://docs.pydantic.dev/latest/concepts/validators/) - Official Pydantic documentation --- # ๐ŸŽจ Template Customization - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#template-customization) ๐ŸŽจ Template Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#template-customization "Permanent link") ========================================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#options "Permanent link") ---------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) | Add custom imports to generated output files. | | [`--class-decorators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators) | Add custom decorators to generated model classes. | | [`--custom-file-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header) | Add custom header text to the generated file. | | [`--custom-file-header-path`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header-path) | Add custom header content from file to generated code. | | [`--custom-formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters) | Apply custom Python code formatters to generated output. | | [`--custom-formatters-kwargs`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs) | Pass custom arguments to custom formatters via JSON file. | | [`--custom-template-dir`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir) | Use custom Jinja2 templates for model generation. | | [`--disable-appending-item-suffix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-appending-item-suffix) | Disable appending 'Item' suffix to array item types. | | [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) | Disable timestamp in generated file header for reproducible ... | | [`--enable-command-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-command-header) | Include command-line options in file header for reproducibil... | | [`--enable-version-header`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-version-header) | Include tool version information in file header. | | [`--extra-template-data`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data) | Pass custom template variables from JSON file for code gener... | | [`--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) | Specify code formatters to apply to generated output. | | [`--no-treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#no-treat-dot-as-module) | Keep dots in schema names as underscores for flat output. | | [`--treat-dot-as-module`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module) | Treat dots in schema names as module separators. | | [`--use-double-quotes`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes) | Use double quotes for string literals in generated code. | | [`--use-exact-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports) | Import exact types instead of modules. | | [`--validators`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#validators) | Add custom field validators to generated Pydantic v2 models.... | | [`--wrap-string-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#wrap-string-literal) | Wrap long string literals across multiple lines. | * * * `--additional-imports`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------- Add custom imports to generated output files. The `--additional-imports` flag allows you to specify custom imports as a comma-delimited list that will be added to the generated output file. This is useful when using custom types defined in external modules (e.g., "datetime.datetime,datetime.date,mymodule.myclass.MyCustomPythonClass"). **See also:** [Custom Class Decorators](https://datamodel-code-generator.koxudaxi.dev/class-decorators/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-0-1) datamodel-codegen --input schema.json --additional-imports datetime.datetime,datetime.date,mymodule.myclass.MyCustomPythonClass # (1)!` 1. `--additional-imports` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-1) scalar Date [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-3) "DateTime (ISO8601, example: 2020-01-01T10:11:12+00:00)" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-4) scalar DateTime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-6) scalar MyCustomClass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-8) type A { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-9) a: Date! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-10) b: DateTime! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-11) c: MyCustomClass! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-1-12) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-2) # filename: additional-imports.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-7) from datetime import date, datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-8) from typing import Literal, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-10) from mymodule.myclass import MyCustomPythonClass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-11) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-13) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-15) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-16) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-17) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-18)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-19) Date: TypeAlias = date [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-22) DateTime: TypeAlias = datetime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-23) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-24) DateTime (ISO8601, example: 2020-01-01T10:11:12+00:00) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-25) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-28) MyCustomClass: TypeAlias = MyCustomPythonClass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-31) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-32) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-33) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-34) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-37) class A(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-38) a: Date [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-39) b: DateTime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-40) c: MyCustomClass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-2-41) typename__: Literal['A'] | None = Field('A', alias='__typename')`` * * * `--class-decorators`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#class-decorators "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- Add custom decorators to generated model classes. The `--class-decorators` option adds custom decorators to all generated model classes. This is useful for integrating with serialization libraries like `dataclasses_json`. Use with `--additional-imports` to add the required imports for the decorators. The `@` prefix is optional and will be added automatically if missing. **Related:** [`--additional-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#additional-imports) , [`--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) **See also:** [Custom Class Decorators](https://datamodel-code-generator.koxudaxi.dev/class-decorators/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-3-1) datamodel-codegen --input schema.json --output-model-type dataclasses.dataclass --class-decorators @dataclass_json --additional-imports dataclasses_json.dataclass_json # (1)!` 1. `--class-decorators` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-4) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-9) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-10) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-12) "email": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-13) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-14) "format": "email" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-17) "required": ["name", "age"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-4-18) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-2) # filename: simple_frozen_test.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-7) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-9) from dataclasses_json import dataclass_json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-12) @dataclass_json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-13) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-14) class User: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-15) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-16) age: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-5-17) email: str | None = None` * * * `--custom-file-header`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------- Add custom header text to the generated file. The `--custom-file-header` flag replaces the default "generated by datamodel-codegen" header with custom text. This is useful for adding copyright notices, license headers, or other metadata to generated files. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-6-1) datamodel-codegen --input schema.json --custom-file-header "# Copyright 2024 MyCompany" # (1)!` 1. `--custom-file-header` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-6) "first-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-9) "last-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-12) "email_address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-16) "required": ["first-name", "last-name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-7-17) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-1) # Copyright 2024 MyCompany [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-3) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-5) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-6) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-8) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-9) first_name: str = Field(..., alias='first-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-10) last_name: str = Field(..., alias='last-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-8-11) email_address: str | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-2) # filename: no_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-11) first_name: str = Field(..., alias='first-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-12) last_name: str = Field(..., alias='last-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-9-13) email_address: str | None = None` * * * `--custom-file-header-path`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-file-header-path "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- Add custom header content from file to generated code. The `--custom-file-header-path` flag allows you to specify a file containing custom header content (like copyright notices, linting directives, or module docstrings) to be inserted at the top of generated Python files. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-10-1) datamodel-codegen --input schema.json --custom-file-header-path custom_file_header.txt # (1)!` 1. `--custom-file-header-path` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-11-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-1) # multiline custom ; [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-2) # header ; [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-3) # file ; [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-44) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-45) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-46) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-47) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-48) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-49) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-50) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-51) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-53) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-54) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-58) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-59) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-62) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-63) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-66) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-12-67) event: Event | None = None` * * * `--custom-formatters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------- Apply custom Python code formatters to generated output. The `--custom-formatters` flag allows you to specify custom Python functions that will be applied to format the generated code. The formatter is specified as a module path (e.g., "mymodule.formatter\_function"). This is useful for adding custom comments, modifying code structure, or applying project-specific formatting rules beyond what black/isort provide. **See also:** [Custom Code Formatters](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-13-1) datamodel-codegen --input schema.json --custom-formatters tests.data.python.custom_formatters.add_comment # (1)!` 1. `--custom-formatters` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-1) scalar Long [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-3) type A { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-4) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-5) duration: Long! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-14-6) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-2) # filename: custom-scalar-types.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-5) # a comment [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-6) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-8) from typing import Literal, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-12) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-14) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-15) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-18) ID: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-20) The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-21) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-24) Long: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-27) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-28) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-29) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-30) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-33) class A(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-34) duration: Long [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-35) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-15-36) typename__: Literal['A'] | None = Field('A', alias='__typename')`` * * * `--custom-formatters-kwargs`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-formatters-kwargs "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------- Pass custom arguments to custom formatters via JSON file. The `--custom-formatters-kwargs` flag accepts a path to a JSON file containing custom configuration for custom formatters (used with --custom-formatters). The file should contain a JSON object mapping formatter names to their kwargs. Note: This option is primarily used with --custom-formatters to pass configuration to user-defined formatter modules. **See also:** [Custom Code Formatters](https://datamodel-code-generator.koxudaxi.dev/custom-formatters/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-16-1) datamodel-codegen --input schema.json --custom-formatters-kwargs formatter_kwargs.json # (1)!` 1. `--custom-formatters-kwargs` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-17-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-18-13) tag: str | None = None` * * * `--custom-template-dir`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#custom-template-dir "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Use custom Jinja2 templates for model generation. The `--custom-template-dir` option allows you to specify a directory containing custom Jinja2 templates to override the default templates used for generating data models. This enables full customization of the generated code structure and formatting. Use with `--extra-template-data` to pass additional data to the templates. **See also:** [Custom Templates](https://datamodel-code-generator.koxudaxi.dev/custom_template/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-19-1) datamodel-codegen --input schema.json --custom-template-dir templates --extra-template-data openapi/extra_data.json # (1)!` 1. `--custom-template-dir` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-20-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-10) class Pet(BaseModel): # 1 2, 1 2, this is just a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-44) apiKey: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-45) apiVersionNumber: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-46) apiUrl: AnyUrl | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-47) apiDocumentationUrl: AnyUrl | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-48) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-49)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-50) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-51) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-52) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-53)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-54) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-55) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-58) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-21-59) event: Event | None = None` * * * `--disable-appending-item-suffix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-appending-item-suffix "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Disable appending 'Item' suffix to array item types. The `--disable-appending-item-suffix` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-22-1) datamodel-codegen --input schema.json --disable-appending-item-suffix --field-constraints # (1)!` 1. `--disable-appending-item-suffix` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-24) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-25) maximum: 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-26) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-27) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-28) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-29) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-30) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-31) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-32) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-33) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-34) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-35) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-36) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-37) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-38) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-39) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-40) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-41) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-42) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-43) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-44) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-45) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-46) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-47) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-48) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-49) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-50) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-51) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-52) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-53) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-54) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-55) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-56) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-57) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-58) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-59) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-60) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-61) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-62) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-63) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-64) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-65) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-66) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-67) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-68) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-69) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-70) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-71) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-72) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-73) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-74) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-75) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-76) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-77) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-78) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-79) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-80) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-81) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-82) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-83) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-84) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-85) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-86) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-87) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-88) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-89) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-90) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-91) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-92) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-93) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-94) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-95) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-96) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-97) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-98) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-99) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-100) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-101) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-102) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-103) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-104) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-105) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-106) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-107) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-108) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-109) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-110) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-111) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-112) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-113) maximum: 9223372036854775807 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-114) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-115) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-116) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-117) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-118) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-119) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-120) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-121) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-122) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-123) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-124) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-125) minItems: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-126) uniqueItems: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-127) UID: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-129) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-130) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-131) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-132) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-133) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-134) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-135) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-136) - uid [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-137) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-138) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-139) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-140) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-141) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-142) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-144) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-145) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-146) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-147) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-148) uid: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-149) $ref: '#/components/schemas/UID' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-150) phones: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-153) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-154) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-155) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-156) fax: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-157) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-158) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-160) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-161) height: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-162) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-163) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-164) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-165) minimum: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-166) maximum: 300 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-167) weight: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-168) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-169) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-170) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-171) minimum: 1.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-172) maximum: 1000.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-173) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-174) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-175) minimum: 0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-176) maximum: 200.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-177) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-178) rating: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-179) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-180) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-181) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-182) maximum: 5 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-183) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-184) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-185) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-186) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-187) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-188) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-189) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-190) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-191) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-192) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-193) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-194) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-195) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-196) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-197) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-198) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-200) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-201) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-202) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-203) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-204) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-205) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-206) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-207) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-208) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-209) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-210) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-211) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-212) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-213) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-214) minLength: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-215) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-216) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-217) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-218) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-219) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-220) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-225) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-226) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-228) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-23-229) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-2) # filename: api_constrained.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-11) id: int = Field(..., ge=0, le=9223372036854775807) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-12) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-13) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-17) __root__: list[Pet] = Field(..., max_items=10, min_items=1, unique_items=True) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-20) class UID(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-21) __root__: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-24) class Phone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-25) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-28) class Fax(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-29) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-32) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-33) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-34) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-35) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-36) uid: UID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-37) phones: list[Phone] | None = Field(None, max_items=10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-38) fax: list[Fax] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-39) height: int | float | None = Field(None, ge=1.0, le=300.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-40) weight: float | int | None = Field(None, ge=1.0, le=1000.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-41) age: int | None = Field(None, gt=0, le=200) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-42) rating: float | None = Field(None, gt=0.0, le=5.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-43) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-44)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-45) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-46) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-47) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-48)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-49) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-50) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-51) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-52)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-53) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-54) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-56)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-57) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-58) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-59) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-62) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-63) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-64) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-65) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-66) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-67) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-68) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-69) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-70) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-71) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-72) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-73) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-74) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-77) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-78) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-79) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-81) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-82) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-83) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-84)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-85) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-24-86) event: Event | None = None` * * * `--disable-timestamp`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------- Disable timestamp in generated file header for reproducible output. The `--disable-timestamp` flag configures the code generation behavior. **See also:** [CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-25-1) datamodel-codegen --input schema.json --disable-timestamp # (1)!` 1. `--disable-timestamp` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-3) "title": "Info", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-6) "hostName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-8) "format": "hostname" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-10) "arn": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-11) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-12) "pattern": "(^arn:([^:]*):([^:]*):([^:]*):(|\\*|[\\d]{12}):(.+)$)|^\\*$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-14) "tel": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-15) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-16) "pattern": "^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-18) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-20) "pattern": "[^\\x08\\f\\n\\r\\t\\\\a+.?'\"|()]+$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-21) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-22) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-26-23) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-2) # filename: pattern.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-6) from pydantic import BaseModel, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-7) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-9) class Info(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-10) hostName: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-11) constr( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-12) regex=r'^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]{0,61}[A-Za-z0-9])\Z' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-13) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-14) | None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-15) ) = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-16) arn: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-17) constr(regex=r'(^arn:([^:]*):([^:]*):([^:]*):(|\*|[\d]{12}):(.+)$)|^\*$') | None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-18) ) = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-19) tel: constr(regex=r'^(\([0-9]{3}\))?[0-9]{3}-[0-9]{4}$') | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-27-20) comment: constr(regex=r'[^\x08\f\n\r\t\\a+.?\'"|()]+$') | None = None` * * * `--enable-command-header`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-command-header "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------- Include command-line options in file header for reproducibility. The `--enable-command-header` flag adds the full command-line used to generate the file to the header, making it easy to reproduce the generation. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-28-1) datamodel-codegen --input schema.json --enable-command-header # (1)!` 1. `--enable-command-header` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-29-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-4) # command: datamodel-codegen [COMMAND] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-6) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-8) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-9) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-11) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-12) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-13) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-14) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-17) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-18) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-21) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-22) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-23) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-24) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-27) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-28) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-31) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-32) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-35) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-36) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-37) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-38)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-39) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-40) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-41) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-42) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-43)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-44) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-45) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-46) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-47) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-48) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-49) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-50) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-51) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-52) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-53) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-54) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-55) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-56) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-57) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-58)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-59) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-60) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-61) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-63) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-64) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-65) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-66)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-67) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-30-68) event: Event | None = None` * * * `--enable-version-header`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#enable-version-header "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------- Include tool version information in file header. The `--enable-version-header` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-31-1) datamodel-codegen --input schema.json --enable-version-header # (1)!` 1. `--enable-version-header` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-32-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-4) # version: 0.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-6) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-8) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-9) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-11) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-12) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-13) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-14) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-17) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-18) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-21) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-22) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-23) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-24) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-27) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-28) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-31) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-32) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-35) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-36) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-37) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-38)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-39) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-40) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-41) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-42) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-43)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-44) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-45) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-46) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-47) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-48) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-49) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-50) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-51) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-52) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-53) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-54) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-55) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-56) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-57) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-58)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-59) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-60) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-61) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-63) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-64) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-65) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-66)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-67) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-33-68) event: Event | None = None` * * * `--extra-template-data`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#extra-template-data "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Pass custom template variables from JSON file for code generation. The `--extra-template-data` flag allows you to provide additional variables (from a JSON file) that can be used in custom templates to configure generated model settings like Config classes, enabling customization beyond standard options. **See also:** [Custom Templates](https://datamodel-code-generator.koxudaxi.dev/custom_template/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-34-1) datamodel-codegen --input schema.json --extra-template-data openapi/extra_data.json # (1)!` 1. `--extra-template-data` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-35-179) $ref: '#/components/schemas/Event'` **Output:** Pydantic v1Pydantic v2 `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-10) class Pet(BaseModel): # 1 2, 1 2, this is just a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-11) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-12) arbitrary_types_allowed = True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-14) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-15) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-16) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-17) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-18)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-19) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-20) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-23) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-24) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-25) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-26) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-29) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-30) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-33) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-34) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-37) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-38) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-41) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-42) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-43) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-46) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-47) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-48) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-49) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-50) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-51) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-53) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-54) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-56) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-57) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-58) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-59) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-60)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-61) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-62) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-63) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-64)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-65) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-66) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-67) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-68)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-69) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-36-70) event: Event | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-7) from pydantic import AnyUrl, BaseModel, ConfigDict, Field, RootModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-10) class Pet(BaseModel): # 1 2, 1 2, this is just a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-11) model_config = ConfigDict( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-12) arbitrary_types_allowed=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-13) coerce_numbers_to_str=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-14) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-15) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-16) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-17) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-20) class Pets(RootModel[list[Pet]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-21) root: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-24) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-25) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-26) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-27) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-30) class Users(RootModel[list[User]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-31) root: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-34) class Id(RootModel[str]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-35) root: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-38) class Rules(RootModel[list[str]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-39) root: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-40) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-41)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-42) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-43) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-44) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-45) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-46)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-47) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-48) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-49) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-50) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-51) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-52) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-53) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-54) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-55) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-56) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-57) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-58) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-59) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-62) class Apis(RootModel[list[Api]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-63) root: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-66) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-67) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-68) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-69)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-70) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-37-71) event: Event | None = None` * * * `--formatters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------- Specify code formatters to apply to generated output. The `--formatters` flag specifies which code formatters to apply to the generated Python code. Available formatters are: black, isort, ruff, yapf, autopep8, autoflake. Default is \[black, isort\]. Use this to customize formatting or disable formatters entirely. **See also:** [CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) , [Code Formatting](https://datamodel-code-generator.koxudaxi.dev/formatting/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-38-1) datamodel-codegen --input schema.json --formatters isort # (1)!` 1. `--formatters` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-39-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-40-13) tag: str | None = None` * * * `--no-treat-dot-as-module`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#no-treat-dot-as-module "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Keep dots in schema names as underscores for flat output. The `--no-treat-dot-as-module` flag prevents splitting dotted schema names. **See also:** [Module Structure and Exports](https://datamodel-code-generator.koxudaxi.dev/module-exports/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-41-1) datamodel-codegen --input schema.json --no-treat-dot-as-module # (1)!` 1. `--no-treat-dot-as-module` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-1) # model.schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-2) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-3) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-4) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-7) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-8) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-10) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-11) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-12) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-14) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-42-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-1) # __init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-2) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-3) # filename: treat_dot_as_module_single [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-4) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-6) # model_schema.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-7) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-8) # filename: model.schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-9) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-11) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-13) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-16) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-17) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-43-18) age: int | None = None` * * * `--treat-dot-as-module`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#treat-dot-as-module "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Treat dots in schema names as module separators. The `--treat-dot-as-module` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-44-1) datamodel-codegen --input schema.json --treat-dot-as-module # (1)!` 1. `--treat-dot-as-module` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-1) # model.schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-2) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-3) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-4) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-7) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-8) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-10) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-11) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-12) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-14) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-45-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-1) # __init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-2) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-3) # filename: treat_dot_as_module_single [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-4) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-6) # model/__init__.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-7) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-8) # filename: treat_dot_as_module_single [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-9) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-11) # model/schema.py [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-12) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-13) # filename: model.schema.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-14) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-16) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-18) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-21) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-46-23) age: int | None = None` * * * `--use-double-quotes`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-double-quotes "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------- Use double quotes for string literals in generated code. The --use-double-quotes option formats all string literals in the generated Python code with double quotes instead of the default single quotes. This helps maintain consistency with codebases that prefer double-quote formatting. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-47-1) datamodel-codegen --input schema.json --use-double-quotes # (1)!` 1. `--use-double-quotes` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-2) "$id": "https://example.com/schemas/MapState.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-3) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-4) "title": "MapState", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-5) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-6) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-7) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-8) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-9) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-10) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-11) "latitude": {"type": "number", "minimum": -90, "maximum": 90}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-12) "longitude": {"type": "number", "minimum": -180, "maximum": 180}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-13) "zoom": {"type": "number", "minimum": 0, "maximum": 25, "default": 0}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-14) "bearing": {"type": "number"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-15) "pitch": {"type": "number", "minimum": 0, "exclusiveMaximum": 90}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-16) "dragRotate": {"type": "boolean"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-17) "mapSplitMode": {"type": "string", "const": "SINGLE_MAP"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-18) "isSplit": {"type": "boolean", "const": false, "default": false} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-19) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-20) "required": ["latitude", "longitude", "pitch", "mapSplitMode"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-22) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-23) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-24) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-25) "latitude": {"$ref": "#/allOf/0/anyOf/0/properties/latitude"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-26) "longitude": {"$ref": "#/allOf/0/anyOf/0/properties/longitude"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-27) "zoom": {"$ref": "#/allOf/0/anyOf/0/properties/zoom"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-28) "bearing": {"$ref": "#/allOf/0/anyOf/0/properties/bearing"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-29) "pitch": {"$ref": "#/allOf/0/anyOf/0/properties/pitch"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-30) "dragRotate": {"$ref": "#/allOf/0/anyOf/0/properties/dragRotate"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-31) "mapSplitMode": {"type": "string", "const": "SWIPE_COMPARE"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-32) "isSplit": {"type": "boolean", "const": true, "default": true} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-33) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-34) "required": ["latitude", "longitude", "pitch", "mapSplitMode"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-36) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-37) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-38) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-39) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-40) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-41) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-42) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-43) "mapViewMode": {"type": "string", "const": "MODE_2D"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-44) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-45) "required": ["mapViewMode"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-46) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-47) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-48) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-49) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-50) "mapViewMode": {"type": "string", "const": "MODE_3D"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-51) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-52) "required": ["mapViewMode"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-53) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-54) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-55) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-56) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-48-57) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-2) # filename: all_of_any_of_base_class_ref.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-7) from typing import Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-9) from pydantic import BaseModel, Field, confloat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-12) class MapState1(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-13) map_view_mode: Literal["MODE_2D"] = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-14) "MODE_2D", alias="mapViewMode", const=True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-15) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-18) class MapState2(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-19) latitude: Latitude [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-20) longitude: Longitude [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-21) zoom: Zoom | None = Field(default_factory=lambda: Zoom.parse_obj(0)) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-22) bearing: Bearing | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-23) pitch: Pitch [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-24) drag_rotate: DragRotate | None = Field(None, alias="dragRotate") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-25) map_split_mode: Literal["SWIPE_COMPARE"] = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-26) "SWIPE_COMPARE", alias="mapSplitMode", const=True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-27) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-28) is_split: Literal[True] = Field(True, alias="isSplit", const=True) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-31) class MapState3(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-32) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-35) class MapState4(MapState1, MapState3): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-36) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-37) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-38)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-39) class MapState5(MapState2, MapState3): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-40) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-43) class MapState6(MapState4): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-44) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-45) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-46)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-47) class MapState7(MapState5): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-48) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-49) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-50)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-51) class MapState(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-52) __root__: MapState4 | MapState5 | MapState6 | MapState7 = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-53) ..., title="MapState" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-54) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-56)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-57) class Bearing(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-58) __root__: float [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-59) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-60)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-61) class DragRotate(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-62) __root__: bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-63) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-64)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-65) class Latitude(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-66) __root__: confloat(ge=-90.0, le=90.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-67) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-68)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-69) class Longitude(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-70) __root__: confloat(ge=-180.0, le=180.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-71) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-72)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-73) class Pitch(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-74) __root__: confloat(ge=0.0, lt=90.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-77) class Zoom(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-49-78) __root__: confloat(ge=0.0, le=25.0) = 0` * * * `--use-exact-imports`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#use-exact-imports "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------- Import exact types instead of modules. The `--use-exact-imports` flag changes import style from module imports to exact type imports. For example, instead of `from . import foo` then `foo.Bar`, it generates `from .foo import Bar`. This can make the generated code more explicit and easier to read. Note: This option primarily affects modular output where imports between modules are generated. For single-file output, the difference is minimal. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-50-1) datamodel-codegen --input schema.json --use-exact-imports # (1)!` 1. `--use-exact-imports` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-3) "title": "Pet", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-6) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-7) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-9) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-12) "tag": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-51-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-2) # filename: pet_simple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-11) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-12) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-52-13) tag: str | None = None` * * * `--validators`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#validators "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------- Add custom field validators to generated Pydantic v2 models. The `--validators` option takes a JSON file defining validators per model. Each validator specifies the field(s) to validate, the validation function to import, and optionally the mode (before/after/wrap/plain). This allows injecting custom validation logic into generated models. **See also:** [Field Validators](https://datamodel-code-generator.koxudaxi.dev/validators/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-53-1) datamodel-codegen --input schema.json --validators tests/data/jsonschema/field_validators_config.json --output-model-type pydantic_v2.BaseModel --disable-timestamp # (1)!` 1. `--validators` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-9) "email": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-10) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-11) "format": "email" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-13) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-14) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-15) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-16) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-18) "required": ["name", "email"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-54-19) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-2) # filename: field_validators.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-6) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-8) from myapp.validators import validate_email, validate_name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-9) from pydantic import BaseModel, EmailStr, ValidationInfo, conint, field_validator [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-12) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-13) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-14) email: EmailStr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-15) age: conint(ge=0) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-17) @field_validator('name', mode='before') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-18) @classmethod [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-19) def validate_name_validator(cls, v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-20) return validate_name(v, info) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-22) @field_validator('email', mode='after') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-23) @classmethod [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-24) def validate_email_validator(cls, v: Any, info: ValidationInfo) -> Any: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-55-25) return validate_email(v, info)` * * * `--wrap-string-literal`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#wrap-string-literal "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Wrap long string literals across multiple lines. The `--wrap-string-literal` flag breaks long string literals (like descriptions) across multiple lines for better readability, instead of having very long single-line strings in the generated code. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-56-1) datamodel-codegen --input schema.json --wrap-string-literal # (1)!` 1. `--wrap-string-literal` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-3) "title": "LongDescription", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-6) "summary": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-8) "description": "summary for object" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-10) "description": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-11) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-12) "description": "datamodel-code-generator. This code generator creates pydantic model from an openapi file and others." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-14) "multi_line": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-15) "description": "datamodel-code-generator\nThis code generator creates pydantic model from an openapi file and others.\n\n\nSupported source types\nOpenAPI 3 (YAML/JSON, OpenAPI Data Type)\nJSON Schema (JSON Schema Core/JSON Schema Validation)\nJSON/YAML/CSV Data (it will be converted to JSON Schema)\nPython dictionary (it will be converted to JSON Schema)", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-16) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-17) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-18) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-57-19) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-2) # filename: long_description.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-10) class LongDescription(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-11) summary: str | None = Field(None, description='summary for object') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-12) description: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-13) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-14) description=( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-15) 'datamodel-code-generator. This code generator creates pydantic model from' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-16) ' an openapi file and others.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-17) ), [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-18) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-19) multi_line: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-20) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-21) description=( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-22) 'datamodel-code-generator\nThis code generator creates pydantic model from' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-23) ' an openapi file and others.\n\n\nSupported source types\nOpenAPI 3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-24) ' (YAML/JSON, OpenAPI Data Type)\nJSON Schema (JSON Schema Core/JSON Schema' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-25) ' Validation)\nJSON/YAML/CSV Data (it will be converted to JSON' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-26) ' Schema)\nPython dictionary (it will be converted to JSON Schema)' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-27) ), [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#__codelineno-58-28) )` * * * --- # โš™๏ธ pyproject.toml Configuration - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#pyprojecttoml-configuration) โš™๏ธ pyproject.toml Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#pyprojecttoml-configuration "Permanent link") =============================================================================================================================================== datamodel-code-generator can be configured using `pyproject.toml`. The tool automatically searches for `pyproject.toml` in the current directory and parent directories (stopping at the git repository root). ๐Ÿš€ Basic Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#basic-usage "Permanent link") -------------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-2) input = "schema.yaml" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-3) output = "models.py" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-4) target-python-version = "3.11" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-5) snake-case-field = true [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-0-6) field-constraints = true` All CLI options can be used in `pyproject.toml` by converting them to kebab-case (e.g., `--snake-case-field` becomes `snake-case-field`). ๐Ÿ“‹ Named Profiles[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#named-profiles "Permanent link") -------------------------------------------------------------------------------------------------------------------- You can define multiple named profiles for different use cases within a single project: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-2) target-python-version = "3.10" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-3) snake-case-field = true [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-4)[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-5) [tool.datamodel-codegen.profiles.api] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-6) input = "schemas/api.yaml" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-7) output = "src/models/api.py" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-8) target-python-version = "3.11" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-9)[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-10) [tool.datamodel-codegen.profiles.database] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-11) input = "schemas/db.json" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-12) output = "src/models/db.py" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-1-13) input-file-type = "jsonschema"` Base settings in `[tool.datamodel-codegen]` are used when no profile is specified, and also serve as defaults for profiles. Use a profile with the `--profile` option: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-2-1) datamodel-codegen --profile api [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-2-2) datamodel-codegen --profile database` ๐ŸŽฏ Configuration Priority[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#configuration-priority "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------ Settings are applied in the following priority order (highest to lowest): 1. **๐Ÿ–ฅ๏ธ CLI arguments** - Always take precedence 2. **๐Ÿ“‹ Profile settings** - From `[tool.datamodel-codegen.profiles.]` 3. **โš™๏ธ Base settings** - From `[tool.datamodel-codegen]` 4. **๐Ÿ”ง Default values** - Built-in defaults ๐Ÿ”€ Merge Rules[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#merge-rules "Permanent link") -------------------------------------------------------------------------------------------------------------- When using profiles, settings are merged using **shallow merge**: * Profile values **completely replace** base values (no deep merging) * Settings not specified in the profile are inherited from the base configuration * Lists and dictionaries are replaced entirely, not merged ### ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#example "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-2) strict-types = ["str", "int"] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-3) http-headers = ["Authorization: Bearer token"] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-5) [tool.datamodel-codegen.profiles.api] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-3-6) strict-types = ["bytes"]` When using `--profile api`: * `strict-types` becomes `["bytes"]` (completely replaces base, not merged) * `http-headers` is inherited from base as `["Authorization: Bearer token"]` ๐Ÿšซ Ignoring pyproject.toml[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#ignoring-pyprojecttoml "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------- To ignore all `pyproject.toml` configuration and use only CLI arguments: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-4-1) datamodel-codegen --ignore-pyproject --input schema.yaml --output models.py` ๐Ÿ”ง Generating Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#generating-configuration "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------- Generate a `pyproject.toml` configuration section from CLI arguments: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-5-1) datamodel-codegen --input schema.yaml --output models.py --snake-case-field --generate-pyproject-config` **โœจ Output:** `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-6-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-6-2) input = "schema.yaml" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-6-3) output = "models.py" [](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-6-4) snake-case-field = true` Generate CLI command from existing `pyproject.toml`: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-7-1) datamodel-codegen --generate-cli-command` With a specific profile: `[](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#__codelineno-8-1) datamodel-codegen --profile api --generate-cli-command` * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#see-also "Permanent link") -------------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--ignore-pyproject`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#ignore-pyproject) - Ignore pyproject.toml configuration * ๐Ÿ”ง [CLI Reference: `--generate-pyproject-config`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-pyproject-config) - Generate pyproject.toml from CLI arguments * ๐Ÿ–ฅ๏ธ [CLI Reference: `--generate-cli-command`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#generate-cli-command) - Generate CLI command from pyproject.toml --- # ๐Ÿท๏ธ Field Aliases - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/aliases/#field-aliases) ๐Ÿท๏ธ Field Aliases[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#field-aliases "Permanent link") ============================================================================================================ The `--aliases` option allows you to rename fields in the generated models. This is useful when you want to use different Python field names than those defined in the schema while preserving the original names as serialization aliases. ๐Ÿš€ Basic Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#basic-usage "Permanent link") ------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-0-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-0-2) --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-0-3) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-0-4) --output model.py \ [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-0-5) --aliases aliases.json` ๐Ÿ“‹ Alias File Format[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#alias-file-format "Permanent link") ------------------------------------------------------------------------------------------------------------------- The alias file is a JSON file that maps original field names to their Python aliases. ### ๐Ÿ“ Flat Format (Traditional)[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#flat-format-traditional "Permanent link") The simplest format applies aliases to all fields with the matching name, regardless of which class they belong to: `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-1-2) "id": "id_", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-1-3) "type": "type_", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-1-4) "class": "class_" [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-1-5) }` This will rename all fields named `id` to `id_`, all fields named `type` to `type_`, etc. ### ๐ŸŽฏ Scoped Format (Class-Specific)[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#scoped-format-class-specific "Permanent link") When you have the same field name in multiple classes but want different aliases for each, use the scoped format with `ClassName.field`: `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-2-1) { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-2-2) "User.name": "user_name", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-2-3) "Address.name": "address_name", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-2-4) "name": "default_name" [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-2-5) }` **โšก Priority**: Scoped aliases take priority over flat aliases. In the example above: * `User.name` will be renamed to `user_name` * `Address.name` will be renamed to `address_name` * Any other class with a `name` field will use `default_name` ๐Ÿ“ Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#example "Permanent link") ----------------------------------------------------------------------------------------------- ### ๐Ÿ“ฅ Input Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#input-schema "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-1) { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-3) "title": "Root", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-5) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-6) "user": { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-7) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-8) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-9) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-10) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-11) "id": {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-12) } [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-13) }, [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-14) "address": { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-15) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-16) "title": "Address", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-17) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-18) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-19) "city": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-20) } [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-21) } [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-22) } [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-3-23) }` ### ๐Ÿท๏ธ Alias File[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#alias-file "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-4-1) { [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-4-2) "Root.name": "root_name", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-4-3) "User.name": "user_name", [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-4-4) "Address.name": "address_name" [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-4-5) }` ### โœจ Generated Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#generated-output "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-1) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-2)[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-3) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-4) user_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-5) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-7) class Address(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-8) address_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-9) city: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-10)[](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-11) class Root(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-12) root_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-13) user: User | None = None [](https://datamodel-code-generator.koxudaxi.dev/aliases/#__codelineno-5-14) address: Address | None = None` ๐Ÿ“Œ Notes[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#notes "Permanent link") ------------------------------------------------------------------------------------------- * The `ClassName` in scoped format must match the generated Python class name (after title conversion) * When using `--use-title-as-name`, the class name is derived from the `title` property in the schema * Aliases are applied during code generation, so the original field names are preserved as Pydantic `alias` values for proper serialization/deserialization * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/aliases/#see-also "Permanent link") ------------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference: `--aliases`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases) - Detailed CLI option documentation with examples --- # Python Version Compatibility - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#python-version-compatibility) Python Version Compatibility[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#python-version-compatibility "Permanent link") =========================================================================================================================================================== datamodel-code-generator can generate code compatible with different Python versions. This page explains how to control type annotation syntax and imports for your target environment. Quick Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#quick-overview "Permanent link") ------------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | `--target-python-version` | Set the minimum Python version for generated code | | `--use-union-operator` | Use `X \\| Y` instead of `Union[X, Y]` | | `--use-standard-collections` | Use `list`, `dict` instead of `List`, `Dict` | | `--use-annotated` | Use `Annotated` for field metadata | | `--use-generic-container-types` | Use `Sequence`, `Mapping` instead of `list`, `dict` | | `--disable-future-imports` | Don't add `from __future__ import annotations` | * * * `--target-python-version`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-target-python-version "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------- Sets the minimum Python version for the generated code. This automatically adjusts type annotation syntax. | Version | Union Syntax | Collection Syntax | Notes | | --- | --- | --- | --- | | 3.10 | `X \\| Y` | `list[T]`, `dict[K, V]` | Union operator available | | 3.11 | `X \\| Y` | `list[T]`, `dict[K, V]` | `Self` type available | | 3.12+ | `X \\| Y` | `list[T]`, `dict[K, V]` | `type` statement available | ### Example: Python 3.10+[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#example-python-310 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-0-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-0-2) --target-python-version 3.10` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-1-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-1-2) id: int [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-1-3) tags: list[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-1-4) metadata: str | int | None = None` * * * `--use-union-operator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-use-union-operator "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------- Uses the `|` operator for union types instead of `Union[X, Y]`. ### Without `--use-union-operator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#without-use-union-operator "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-2-1) from typing import Union, Optional [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-2-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-2-3) class Item(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-2-4) value: Union[str, int] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-2-5) label: Optional[str] = None # Same as Union[str, None]` ### With `--use-union-operator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#with-use-union-operator "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-3-1) datamodel-codegen --input schema.json --output models.py --use-union-operator` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-4-1) class Item(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-4-2) value: str | int [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-4-3) label: str | None = None` ### Compatibility Note[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#compatibility-note "Permanent link") The union operator `|` requires: - Python 3.10+ at runtime, OR - `from __future__ import annotations` (Python 3.7+) for postponed evaluation * * * `--use-standard-collections`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-use-standard-collections "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------- Uses built-in collection types instead of `typing` module generics. ### Without `--use-standard-collections`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#without-use-standard-collections "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-1) from typing import List, Dict, Set, Tuple [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-3) class Data(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-4) items: List[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-5) mapping: Dict[str, int] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-6) unique: Set[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-5-7) pair: Tuple[str, int]` ### With `--use-standard-collections`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#with-use-standard-collections "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-6-1) datamodel-codegen --input schema.json --output models.py --use-standard-collections` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-7-1) class Data(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-7-2) items: list[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-7-3) mapping: dict[str, int] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-7-4) unique: set[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-7-5) pair: tuple[str, int]` ### Compatibility Note[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#compatibility-note_1 "Permanent link") Built-in generic syntax requires: - Python 3.10+ at runtime, OR - `from __future__ import annotations` * * * `--use-annotated`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-use-annotated "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------- Uses `typing.Annotated` to attach metadata to types, which is the modern approach for Pydantic v2. ### Without `--use-annotated`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#without-use-annotated "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-8-1) from pydantic import Field [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-8-3) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-8-4) name: str = Field(..., min_length=1, max_length=100) [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-8-5) age: int = Field(..., ge=0, le=150)` ### With `--use-annotated`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#with-use-annotated "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-9-1) datamodel-codegen --input schema.json --output models.py --use-annotated` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-1) from typing import Annotated [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-2) from pydantic import Field [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-3)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-4) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-5) name: Annotated[str, Field(min_length=1, max_length=100)] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-10-6) age: Annotated[int, Field(ge=0, le=150)]` ### Benefits[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#benefits "Permanent link") * Cleaner separation of type and constraints * Better IDE support * More compatible with other tools that understand `Annotated` * Required types are more explicit * * * `--use-generic-container-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-use-generic-container-types "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------------- Uses abstract container types (`Sequence`, `Mapping`, `FrozenSet`) instead of concrete types (`list`, `dict`, `set`). `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-11-1) datamodel-codegen --input schema.json --output models.py --use-generic-container-types` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-12-1) from typing import Mapping, Sequence [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-12-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-12-3) class Data(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-12-4) items: Sequence[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-12-5) mapping: Mapping[str, int]` If `--use-standard-collections` is also set, imports from `collections.abc` instead of `typing`. This is useful when: - You want to use abstract types for better type flexibility - Maintaining compatibility with interfaces that accept any sequence/mapping * * * `--disable-future-imports`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#-disable-future-imports "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------- Prevents adding `from __future__ import annotations` to generated files. ### Default behavior (with future imports)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#default-behavior-with-future-imports "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-13-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-13-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-13-3) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-13-4) friends: list[User] # Forward reference works due to PEP 563` ### With `--disable-future-imports`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#with-disable-future-imports "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-14-1) datamodel-codegen --input schema.json --output models.py --disable-future-imports` `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-1) from typing import List, TYPE_CHECKING [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-2)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-3) if TYPE_CHECKING: [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-4) from typing import ForwardRef [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-5)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-6) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-15-7) friends: List["User"] # String forward reference` ### When to disable[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#when-to-disable "Permanent link") * Compatibility with runtime annotation inspection * Libraries that don't support `__future__.annotations` * Pydantic v1 in some configurations * When using `get_type_hints()` at runtime * * * Common Patterns[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#common-patterns "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- ### Pattern 1: Modern Python (3.10+)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#pattern-1-modern-python-310 "Permanent link") For projects targeting Python 3.10 or later: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-16-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-16-2) --target-python-version 3.10 \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-16-3) --use-union-operator \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-16-4) --use-standard-collections \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-16-5) --use-annotated` Output: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-1) from typing import Annotated [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-2) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-3)[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-4) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-5) id: int [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-6) name: Annotated[str, Field(min_length=1)] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-7) tags: list[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-17-8) metadata: dict[str, str] | None = None` ### Pattern 2: Minimum Supported Python (3.10)[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#pattern-2-minimum-supported-python-310 "Permanent link") For projects targeting Python 3.10 (minimum supported version): `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-18-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-18-2) --target-python-version 3.10` Output: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-19-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-19-2) id: int [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-19-3) name: str [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-19-4) tags: list[str] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-19-5) metadata: dict[str, str] | None = None` ### Pattern 3: Maximum compatibility[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#pattern-3-maximum-compatibility "Permanent link") For libraries that need to work across multiple Python versions (3.10+): `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-20-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-20-2) --target-python-version 3.10` The generator will use modern Python 3.10+ syntax including union operators and built-in generic types. ### Pattern 4: CI/CD consistency[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#pattern-4-cicd-consistency "Permanent link") Pin the Python version in `pyproject.toml` to ensure consistent output: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-21-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-21-2) target-python-version = "3.10" [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-21-3) use-union-operator = true [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-21-4) use-standard-collections = true [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-21-5) use-annotated = true` * * * Version Feature Matrix[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#version-feature-matrix "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- | Feature | 3.10 | 3.11 | 3.12+ | | --- | --- | --- | --- | | `list[T]` syntax | native | native | native | | `X \\| Y` union | native | native | native | | `Annotated` | native | native | native | | `TypeAlias` | native | native | native | | `Self` | `typing_extensions` | native | native | | `type` statement | N/A | N/A | native | * * * Troubleshooting[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#troubleshooting "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- ### TypeError: 'type' object is not subscriptable[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#typeerror-type-object-is-not-subscriptable "Permanent link") This occurs when using `list[T]` syntax on older Python versions without `__future__` imports. **Solution:** Ensure you are running Python 3.10+ or use `from __future__ import annotations`. ### Pydantic validation fails with forward references[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#pydantic-validation-fails-with-forward-references "Permanent link") This can happen when `__future__.annotations` interacts poorly with Pydantic's type resolution. **Solution:** Try `--disable-future-imports` or update to Pydantic v2. ### Python 3.13 DeprecationWarning with `typing._eval_type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#python-313-deprecationwarning-with-typing_eval_type "Permanent link") When running on Python 3.13+ with `from __future__ import annotations`, you may see: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-22-1) DeprecationWarning: Failing to pass a value to the 'type_params' parameter [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-22-2) of 'typing._eval_type' is deprecated...` This occurs because Python 3.13 deprecated calling `typing._eval_type()` without the `type_params` parameter. Libraries that evaluate forward references (like older Pydantic versions) trigger this warning. **Solutions:** 1. **Upgrade Pydantic** (recommended): 2. Pydantic v1: Upgrade to version 1.10.18 or later 3. Pydantic v2: Upgrade to the latest version 4. **Use `--disable-future-imports`** as a workaround: `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-23-1) datamodel-codegen --input schema.json --output models.py --disable-future-imports` 5. **Suppress the warning** in pytest (temporary fix): `[](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-1) # pyproject.toml [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-2) [tool.pytest.ini_options] [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-3) filterwarnings = [ [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-4) # For Pydantic v2's v1 compatibility layer (pydantic.v1) [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-5) "ignore::DeprecationWarning:pydantic.v1.typing", [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-6) # For standalone Pydantic v1 [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-7) "ignore::DeprecationWarning:pydantic.typing", [](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#__codelineno-24-8) ]` Note Python 3.14+ will use native deferred annotations (PEP 649), and the generator will no longer add `from __future__ import annotations` for those versions. ### IDE shows type errors[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#ide-shows-type-errors "Permanent link") Some IDEs don't fully understand `from __future__ import annotations`. **Solution:** Configure your IDE's Python version or use explicit type syntax matching your runtime version. * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------------------- * [CLI Reference: `--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) * [CLI Reference: `--use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator) * [CLI Reference: `--use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections) * [CLI Reference: `--use-annotated`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated) * [Output Model Types](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/) * [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) * [CI/CD Integration](https://datamodel-code-generator.koxudaxi.dev/ci-cd/) --- # OpenAPI-Specific Options - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-specific-options) OpenAPI-Specific Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-specific-options "Permanent link") ====================================================================================================================================== When working with OpenAPI specifications, datamodel-code-generator provides several options to control how schemas, operations, and special properties are handled. This page explains when and how to use each option. Quick Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#quick-overview "Permanent link") ------------------------------------------------------------------------------------------------------------------ | Option | Description | | --- | --- | | `--openapi-scopes` | Select which parts of the spec to generate models from | | `--include-path-parameters` | Include path parameters in generated models | | `--use-operation-id-as-name` | Name models using operation IDs | | `--read-only-write-only-model-type` | Generate separate models for read/write contexts | | `--validation` | Enable OpenAPI validation constraints (deprecated) | * * * `--openapi-scopes`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#-openapi-scopes "Permanent link") ----------------------------------------------------------------------------------------------------------------------- Controls which sections of the OpenAPI specification to generate models from. | Scope | Description | | --- | --- | | `schemas` | Generate from `#/components/schemas` (default) | | `parameters` | Generate from `#/components/parameters` | | `paths` | Generate from path operation parameters | ### Default behavior (schemas only)[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#default-behavior-schemas-only "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-0-1) datamodel-codegen --input openapi.yaml --output models.py` Generates models only from `#/components/schemas`. ### Include parameters[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#include-parameters "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-1-1) datamodel-codegen --input openapi.yaml --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-1-2) --openapi-scopes schemas parameters` Also generates models from `#/components/parameters`. ### Include path-level definitions[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#include-path-level-definitions "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-2-1) datamodel-codegen --input openapi.yaml --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-2-2) --openapi-scopes schemas parameters paths` Generates models from all sources, including inline path operation parameters. ### When to use each scope[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#when-to-use-each-scope "Permanent link") | Use Case | Recommended Scopes | | --- | --- | | Basic model generation | `schemas` (default) | | Reusable parameter types | `schemas parameters` | | Complete API coverage | `schemas parameters paths` | * * * `--include-path-parameters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#-include-path-parameters "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------- Includes path parameters as fields in generated models. ### OpenAPI Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-example "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-1) paths: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-2) /users/{user_id}/orders/{order_id}: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-3) get: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-4) operationId: getOrder [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-5) parameters: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-6) - name: user_id [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-7) in: path [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-8) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-9) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-10) - name: order_id [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-11) in: path [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-12) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-3-13) type: integer` ### Without `--include-path-parameters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#without-include-path-parameters "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-4-1) class GetOrderResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-4-2) # Only response body fields [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-4-3) items: list[Item] [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-4-4) total: float` ### With `--include-path-parameters`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#with-include-path-parameters "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-5-1) datamodel-codegen --input openapi.yaml --output models.py --include-path-parameters` `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-6-1) class GetOrderResponse(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-6-2) user_id: str [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-6-3) order_id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-6-4) items: list[Item] [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-6-5) total: float` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#when-to-use "Permanent link") * Building request validation models that include URL parameters * Creating unified request/response types for API clients * Generating models for frameworks that expect all parameters in one object * * * `--use-operation-id-as-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#-use-operation-id-as-name "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------- Uses the `operationId` from OpenAPI operations to name generated models instead of deriving names from paths. ### OpenAPI Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-example_1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-1) paths: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-2) /users/{id}: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-3) get: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-4) operationId: getUserById [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-5) responses: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-6) '200': [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-7) content: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-8) application/json: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-9) schema: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-10) type: object [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-11) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-12) id: { type: integer } [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-7-13) name: { type: string }` ### Without `--use-operation-id-as-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#without-use-operation-id-as-name "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-8-1) class UsersIdGetResponse(BaseModel): # Derived from path [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-8-2) id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-8-3) name: str` ### With `--use-operation-id-as-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#with-use-operation-id-as-name "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-9-1) datamodel-codegen --input openapi.yaml --output models.py --use-operation-id-as-name` `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-10-1) class GetUserByIdResponse(BaseModel): # Uses operationId [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-10-2) id: int [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-10-3) name: str` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#when-to-use_1 "Permanent link") * When `operationId` values are well-designed and descriptive * For consistency with generated API clients (e.g., OpenAPI Generator) * When path-derived names are too verbose or unclear * * * `--read-only-write-only-model-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#-read-only-write-only-model-type "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------- Generates separate model variants for properties marked as `readOnly` or `writeOnly` in OpenAPI. ### OpenAPI Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-example_2 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-1) components: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-2) schemas: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-3) User: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-4) type: object [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-5) properties: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-6) id: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-7) type: integer [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-8) readOnly: true # Only in responses [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-9) password: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-10) type: string [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-11) writeOnly: true # Only in requests [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-12) name: [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-11-13) type: string # In both` ### Without `--read-only-write-only-model-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#without-read-only-write-only-model-type "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-12-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-12-2) id: Optional[int] = None # Both included [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-12-3) password: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-12-4) name: Optional[str] = None` ### With `--read-only-write-only-model-type`[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#with-read-only-write-only-model-type "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-13-1) datamodel-codegen --input openapi.yaml --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-13-2) --read-only-write-only-model-type all` `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-2) """Base model with all fields.""" [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-3) id: Optional[int] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-4) password: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-5) name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-6)[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-7) class UserRead(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-8) """For responses - excludes writeOnly fields.""" [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-9) id: Optional[int] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-10) name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-11)[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-12) class UserWrite(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-13) """For requests - excludes readOnly fields.""" [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-14) password: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-14-15) name: Optional[str] = None` ### Values[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#values "Permanent link") | Value | Description | | --- | --- | | `all` | Generate both Read and Write variants | | `read` | Generate only Read variants | | `write` | Generate only Write variants | ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#when-to-use_2 "Permanent link") * APIs with distinct request/response schemas * Strict type checking for API clients * When `readOnly`/`writeOnly` properties are heavily used * * * `--validation` (Deprecated)[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#-validation-deprecated "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------- Deprecated Use `--field-constraints` instead. The `--validation` option is maintained for backward compatibility. Enables validation constraints from OpenAPI schemas. `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-15-1) # Deprecated [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-15-2) datamodel-codegen --input openapi.yaml --output models.py --validation [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-15-3)[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-15-4) # Recommended [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-15-5) datamodel-codegen --input openapi.yaml --output models.py --field-constraints` See [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) for details. * * * Common Patterns[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#common-patterns "Permanent link") -------------------------------------------------------------------------------------------------------------------- ### Pattern 1: Basic API models[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#pattern-1-basic-api-models "Permanent link") For simple APIs where you only need schema models: `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-16-1) datamodel-codegen --input openapi.yaml --output models.py` ### Pattern 2: Full API client models[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#pattern-2-full-api-client-models "Permanent link") For generating complete models for an API client: `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-17-1) datamodel-codegen --input openapi.yaml --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-17-2) --openapi-scopes schemas parameters paths \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-17-3) --use-operation-id-as-name \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-17-4) --include-path-parameters` ### Pattern 3: Strict request/response separation[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#pattern-3-strict-requestresponse-separation "Permanent link") For APIs with distinct input/output shapes: `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-18-1) datamodel-codegen --input openapi.yaml --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-18-2) --read-only-write-only-model-type all \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-18-3) --field-constraints` ### Pattern 4: Versioned API structure[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#pattern-4-versioned-api-structure "Permanent link") For large APIs with versioned endpoints: `[](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-19-1) datamodel-codegen --input openapi.yaml --output models/ \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-19-2) --treat-dot-as-module \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-19-3) --use-operation-id-as-name \ [](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#__codelineno-19-4) --all-exports-scope recursive` * * * OpenAPI Version Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#openapi-version-support "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------ | OpenAPI Version | Support | | --- | --- | | 3.0.x | Full support | | 3.1.x | Full support | | 2.0 (Swagger) | Partial support | * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/openapi-options/#see-also "Permanent link") ------------------------------------------------------------------------------------------------------ * [CLI Reference: OpenAPI-only Options](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/) * [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) * [Module Structure and Exports](https://datamodel-code-generator.koxudaxi.dev/module-exports/) * [OpenAPI Input Format](https://datamodel-code-generator.koxudaxi.dev/openapi/) --- # One-liner Usage - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/oneliner/#one-liner-usage) One-liner Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#one-liner-usage "Permanent link") ============================================================================================================= This guide covers how to use datamodel-code-generator with pipes and clipboard tools for quick, one-time code generation without permanent installation. Note The package name is `datamodel-code-generator`, and the CLI command is `datamodel-codegen`. * * * One-liner Execution with uvx/pipx[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#one-liner-execution-with-uvxpipx "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------ You don't need to install datamodel-code-generator permanently. Use `uvx` or `pipx run` to execute it directly. ### Using uvx (Recommended)[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#using-uvx-recommended "Permanent link") [uvx](https://docs.astral.sh/uv/guides/tools/) runs Python tools without installation: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-1) # Basic usage [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-2) uvx datamodel-codegen --input schema.json --output model.py [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-4) # With extras (e.g., HTTP support) [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-5) uvx --from 'datamodel-code-generator[http]' datamodel-codegen --url https://example.com/api.yaml --output model.py [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-6)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-7) # With GraphQL support [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-0-8) uvx --from 'datamodel-code-generator[graphql]' datamodel-codegen --input schema.graphql --output model.py` ### Using pipx run[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#using-pipx-run "Permanent link") [pipx](https://pipx.pypa.io/) also supports one-shot execution: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-1-1) pipx run datamodel-code-generator --input schema.json --output model.py` * * * Reading from stdin[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#reading-from-stdin "Permanent link") ------------------------------------------------------------------------------------------------------------------- datamodel-code-generator can read schema input from stdin, enabling powerful pipeline workflows: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-1) # Pipe JSON directly [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-2) echo '{"type": "object", "properties": {"name": {"type": "string"}}}' | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-3) uvx datamodel-codegen --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-5) # Pipe from another command [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-6) curl -s https://example.com/schema.json | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-2-7) uvx datamodel-codegen --input-file-type jsonschema --output model.py` * * * Clipboard Integration[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#clipboard-integration "Permanent link") ------------------------------------------------------------------------------------------------------------------------- Combine stdin support with clipboard tools to quickly generate models from copied schema definitions. ### macOS (pbpaste/pbcopy)[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#macos-pbpastepbcopy "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-1) # Generate from clipboard and print to stdout [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-2) pbpaste | uvx datamodel-codegen --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-4) # Generate from clipboard and save to file [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-5) pbpaste | uvx datamodel-codegen --input-file-type jsonschema --output model.py [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-6)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-7) # Generate from clipboard and copy result back to clipboard [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-3-8) pbpaste | uvx datamodel-codegen --input-file-type jsonschema | pbcopy` ### Linux (xclip/xsel)[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#linux-xclipxsel "Permanent link") xclipxsel `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-4-1) # Generate from clipboard and print to stdout [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-4-2) xclip -selection clipboard -o | uvx datamodel-codegen --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-4-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-4-4) # Generate and copy result to clipboard [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-4-5) xclip -selection clipboard -o | uvx datamodel-codegen --input-file-type jsonschema | xclip -selection clipboard` `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-5-1) # Generate from clipboard and print to stdout [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-5-2) xsel --clipboard --output | uvx datamodel-codegen --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-5-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-5-4) # Generate and copy result to clipboard [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-5-5) xsel --clipboard --output | uvx datamodel-codegen --input-file-type jsonschema | xsel --clipboard --input` Installing clipboard tools on Linux `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-1) # Debian/Ubuntu [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-2) sudo apt install xclip [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-3) # or [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-4) sudo apt install xsel [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-5)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-6) # Fedora [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-7) sudo dnf install xclip [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-8) # or [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-6-9) sudo dnf install xsel` ### Windows (clip/PowerShell)[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#windows-clippowershell "Permanent link") PowerShellCommand Prompt `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-7-1) # Generate from clipboard and print to stdout [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-7-2) Get-Clipboard | uvx datamodel-codegen --input-file-type jsonschema [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-7-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-7-4) # Generate and copy result to clipboard [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-7-5) Get-Clipboard | uvx datamodel-codegen --input-file-type jsonschema | Set-Clipboard` `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-8-1) REM Windows Command Prompt doesn't have a built-in paste command [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-8-2) REM Use PowerShell from cmd: [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-8-3) powershell -command "Get-Clipboard" | uvx datamodel-codegen --input-file-type jsonschema` Windows clip command The `clip` command on Windows only supports copying **to** the clipboard, not reading from it. Use PowerShell's `Get-Clipboard` and `Set-Clipboard` for full clipboard integration. * * * Practical Examples[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#practical-examples "Permanent link") ------------------------------------------------------------------------------------------------------------------- ### Quick model generation workflow[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#quick-model-generation-workflow "Permanent link") 1. Copy a JSON Schema from documentation or an API response 2. Run the generator from clipboard: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-1) # macOS [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-2) pbpaste | uvx datamodel-codegen --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-3)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-4) # Linux [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-5) xclip -selection clipboard -o | uvx datamodel-codegen --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-7) # Windows PowerShell [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-9-8) Get-Clipboard | uvx datamodel-codegen --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel` ### Generating from API documentation[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#generating-from-api-documentation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-10-1) # Fetch OpenAPI spec and generate models [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-10-2) curl -s https://petstore3.swagger.io/api/v3/openapi.json | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-10-3) uvx datamodel-codegen --input-file-type openapi --output-model-type pydantic_v2.BaseModel --output petstore.py` ### Generating from GitHub raw URLs[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#generating-from-github-raw-urls "Permanent link") You can directly fetch schemas from GitHub repositories using raw URLs: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-1) # Fetch JSON Schema from GitHub and generate models [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-2) curl -s https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-3) uvx datamodel-codegen --input-file-type jsonschema --output-model-type pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-4)[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-5) # Fetch OpenAPI spec from a GitHub repository [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-6) curl -s https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-11-7) uvx datamodel-codegen --input-file-type openapi --output-model-type pydantic_v2.BaseModel --output github_api.py` Using the --url option If you have the `http` extra installed, you can use `--url` directly without curl: `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-12-1) uvx --from 'datamodel-code-generator[http]' datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-12-2) --url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.0/schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-12-3) --input-file-type jsonschema \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-12-4) --output-model-type pydantic_v2.BaseModel` ### Using with jq for JSON manipulation[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#using-with-jq-for-json-manipulation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-13-1) # Extract a specific schema definition and generate a model [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-13-2) cat openapi.yaml | yq '.components.schemas.User' | \ [](https://datamodel-code-generator.koxudaxi.dev/oneliner/#__codelineno-13-3) uvx datamodel-codegen --input-file-type jsonschema` * * * Comparison: Installation Methods[ยถ](https://datamodel-code-generator.koxudaxi.dev/oneliner/#comparison-installation-methods "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------- | Method | Command | Use Case | | --- | --- | --- | | **uvx** | `uvx datamodel-codegen` | One-liner usage, no installation | | **pipx run** | `pipx run datamodel-code-generator` | One-liner usage, alternative to uvx | | **pipx install** | `pipx install datamodel-code-generator` | Global installation, frequent usage | | **uv add** | `uv add datamodel-code-generator` | Project dependency | | **pip install** | `pip install datamodel-code-generator` | Traditional installation | When to use each method * **uvx/pipx run**: Quick one-liner generation, testing different versions * **pipx install**: Frequent CLI usage across multiple projects * **uv add/pip install**: Project dependency, CI/CD pipelines, programmatic usage --- # Type Mappings and Custom Types - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#type-mappings-and-custom-types) Type Mappings and Custom Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#type-mappings-and-custom-types "Permanent link") ================================================================================================================================================ datamodel-code-generator allows you to customize how schema types are mapped to Python types. This is essential for projects with specific type requirements, datetime handling preferences, or third-party library integrations. Quick Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#quick-overview "Permanent link") ---------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | `--type-mappings` | Map schema types to custom Python types | | `--strict-types` | Use Pydantic strict types for validation | | `--output-datetime-class` | Choose datetime output type | | `--use-pendulum` | Use Pendulum library for datetime types | | `--use-decimal-for-multiple-of` | Use Decimal for multipleOf constraints | | `format: "email"` | Email validation (requires `email-validator`) | | `format: "ulid"` | ULID type support (requires `python-ulid`) | * * * `--type-mappings`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#-type-mappings "Permanent link") ------------------------------------------------------------------------------------------------------------------- Maps schema type+format combinations to other format names. This allows you to override how specific formats are interpreted. ### Format[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#format "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-0-1) --type-mappings = [= ...]` ### Basic Examples[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#basic-examples "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-1) # Map binary format to string (generates str instead of bytes) [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-2) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-3) --type-mappings "binary=string" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-4)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-5) # Map email format to string (generates str instead of EmailStr) [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-6) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-7) --type-mappings "string+email=string" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-8)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-9) # Multiple mappings [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-10) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-1-11) --type-mappings "string+email=string" "string+uuid=string"` ### Mapping Syntax[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#mapping-syntax "Permanent link") | Syntax | Description | Example | | --- | --- | --- | | `format=target` | Map format (assumes string type) | `binary=string` | | `type+format=target` | Map type with format | `string+email=string` | ### Avoiding Pydantic Optional Extras[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#avoiding-pydantic-optional-extras "Permanent link") Some Pydantic types require optional dependencies. Use `--type-mappings` to generate plain types instead: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-2-1) # Avoid pydantic[email] dependency (EmailStr requires email-validator) [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-2-2) --type-mappings "string+email=string" "string+idn-email=string" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-2-3)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-2-4) # Generate str instead of UUID for uuid format [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-2-5) --type-mappings "string+uuid=string"` ### Available Target Formats[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#available-target-formats "Permanent link") | Target | Generated Type | | --- | --- | | `string` | `str` | | `integer` | `int` | | `number` | `float` | | `boolean` | `bool` | | `binary` | `bytes` | | `date` | `datetime.date` | | `date-time` | `datetime.datetime` | | `uuid` | `UUID` | | `email` | `EmailStr` | | `uri` | `AnyUrl` | ### pyproject.toml Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#pyprojecttoml-configuration "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-2) type-mappings = [ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-3) "string+email=string", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-4) "string+idn-email=string", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-5) "binary=string", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-3-6) ]` * * * `--strict-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#-strict-types "Permanent link") ----------------------------------------------------------------------------------------------------------------- Generates Pydantic strict types that don't perform type coercion during validation. ### Available Strict Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#available-strict-types "Permanent link") | Value | Strict Type | Rejects | | --- | --- | --- | | `str` | `StrictStr` | Integers, floats | | `int` | `StrictInt` | Strings, floats | | `float` | `StrictFloat` | Strings, integers | | `bool` | `StrictBool` | Strings, integers | | `bytes` | `StrictBytes` | Strings | ### Without `--strict-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#without-strict-types "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-4-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-4-2) id: int # Accepts "123" and converts to 123 [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-4-3) name: str # Accepts 123 and converts to "123" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-4-4) active: bool # Accepts 1 and converts to True` ### With `--strict-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#with-strict-types "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-5-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-5-2) --strict-types str int bool` `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-1) from pydantic import StrictBool, StrictInt, StrictStr [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-3) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-4) id: StrictInt # Rejects "123", requires integer [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-5) name: StrictStr # Rejects 123, requires string [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-6-6) active: StrictBool # Rejects 1, requires boolean` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#when-to-use "Permanent link") * API validation where type coercion is undesirable * Data pipelines requiring exact types * Security-sensitive applications * Testing environments requiring strict type checking * * * `--output-datetime-class`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#-output-datetime-class "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------- Controls the Python type used for `date-time` formatted strings. | Value | Output Type | Description | | --- | --- | --- | | `datetime` | `datetime.datetime` | Standard library datetime (default) | | `AwareDatetime` | `pydantic.AwareDatetime` | Requires timezone info | | `NaiveDatetime` | `pydantic.NaiveDatetime` | Rejects timezone info | ### Default behavior[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#default-behavior "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-7-1) from datetime import datetime [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-7-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-7-3) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-7-4) created_at: datetime # Accepts both aware and naive` ### AwareDatetime (recommended for APIs)[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#awaredatetime-recommended-for-apis "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-8-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-8-2) --output-datetime-class AwareDatetime` `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-9-1) from pydantic import AwareDatetime [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-9-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-9-3) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-9-4) created_at: AwareDatetime # Requires timezone, e.g., 2024-01-01T00:00:00Z` ### NaiveDatetime[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#naivedatetime "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-10-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-10-2) --output-datetime-class NaiveDatetime` `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-11-1) from pydantic import NaiveDatetime [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-11-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-11-3) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-11-4) created_at: NaiveDatetime # Rejects timezone, e.g., 2024-01-01T00:00:00` ### When to use each[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#when-to-use-each "Permanent link") | Use Case | Recommended Class | | --- | --- | | REST APIs | `AwareDatetime` | | Database models | `datetime` or `NaiveDatetime` | | Logs with UTC timestamps | `AwareDatetime` | | Local time applications | `NaiveDatetime` | * * * `--use-pendulum`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#-use-pendulum "Permanent link") ----------------------------------------------------------------------------------------------------------------- Uses [Pendulum](https://pendulum.eustace.io/) library types instead of standard library datetime. `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-12-1) pip install pendulum [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-12-2) datamodel-codegen --input schema.json --output models.py --use-pendulum` ### Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#output "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-1) import pendulum [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-3) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-4) created_at: pendulum.DateTime [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-5) date: pendulum.Date [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-13-6) time: pendulum.Time` ### Benefits of Pendulum[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#benefits-of-pendulum "Permanent link") * Timezone handling is simpler and more intuitive * Human-friendly datetime manipulation * Better serialization defaults * Immutable by default ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#when-to-use_1 "Permanent link") * Projects already using Pendulum * Applications requiring complex datetime manipulation * When timezone handling is a priority * * * Email Format Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#email-format-support "Permanent link") ---------------------------------------------------------------------------------------------------------------------------- The generator supports the `email` and `idn-email` string formats, which generate Pydantic's `EmailStr` type. Required Dependency The `email` format requires the `email-validator` package to be installed: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-14-1) pip install email-validator` Or install Pydantic with the email extra: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-15-1) pip install pydantic[email]` ### Schema Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#schema-example "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-1) { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-3) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-4) "email": { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-5) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-6) "format": "email" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-7) } [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-8) } [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-16-9) }` ### Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#output_1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-17-1) from pydantic import BaseModel, EmailStr [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-17-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-17-3) class MyModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-17-4) email: EmailStr` ### Avoiding the Dependency[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#avoiding-the-dependency "Permanent link") If you don't want to install `email-validator`, you can map email formats to plain strings: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-18-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-18-2) --type-mappings "string+email=string" "string+idn-email=string"` This generates `str` instead of `EmailStr`. * * * ULID Format Support[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#ulid-format-support "Permanent link") -------------------------------------------------------------------------------------------------------------------------- The generator supports the `ulid` string format, which generates [`python-ulid`](https://github.com/mdomke/python-ulid) types. Required Dependency The `ulid` format requires the `python-ulid` package to be installed: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-19-1) pip install python-ulid` For Pydantic integration, use: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-20-1) pip install python-ulid[pydantic]` ### Schema Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#schema-example_1 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-1) { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-3) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-4) "id": { [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-5) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-6) "format": "ulid" [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-7) } [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-8) } [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-21-9) }` ### Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#output_2 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-22-1) from ulid import ULID [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-22-2) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-22-3)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-22-4) class MyModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-22-5) id: ULID` ### What is ULID?[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#what-is-ulid "Permanent link") ULID (Universally Unique Lexicographically Sortable Identifier) is an alternative to UUID that offers: * **Lexicographic sorting** - ULIDs sort naturally by creation time * **Compactness** - 26 characters vs 36 for UUID * **URL-safe** - Uses Crockford's Base32 encoding * **Timestamp encoded** - First 10 characters encode creation time ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#when-to-use_2 "Permanent link") * Distributed systems requiring time-ordered IDs * Applications where database index performance matters * When you need both uniqueness and sortability * * * `--use-decimal-for-multiple-of`[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#-use-decimal-for-multiple-of "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- Uses `Decimal` type for numbers with `multipleOf` constraints to avoid floating-point precision issues. ### The Problem[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#the-problem "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-23-1) properties: [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-23-2) price: [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-23-3) type: number [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-23-4) multipleOf: 0.01 # Currency precision` Without this option, floating-point arithmetic can cause validation issues: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-24-1) # 0.1 + 0.2 = 0.30000000000000004 in floating-point [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-24-2) price = 0.30000000000000004 # May fail multipleOf validation` ### Solution[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#solution "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-25-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-25-2) --use-decimal-for-multiple-of` `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-26-1) from decimal import Decimal [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-26-2)[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-26-3) class Product(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-26-4) price: Decimal # Exact decimal arithmetic` ### When to use[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#when-to-use_3 "Permanent link") * Financial applications * Scientific calculations requiring precision * Any schema with `multipleOf` constraints * * * Common Patterns[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#common-patterns "Permanent link") ------------------------------------------------------------------------------------------------------------------ ### Pattern 1: Minimal dependencies[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#pattern-1-minimal-dependencies "Permanent link") Avoid optional Pydantic dependencies by mapping special formats to plain types: `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-27-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-27-2) --type-mappings "string+email=string" "string+idn-email=string"` ### Pattern 2: Strict API validation[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#pattern-2-strict-api-validation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-28-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-28-2) --strict-types str int float bool \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-28-3) --output-datetime-class AwareDatetime \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-28-4) --field-constraints` ### Pattern 3: Financial application[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#pattern-3-financial-application "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-29-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-29-2) --use-decimal-for-multiple-of \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-29-3) --strict-types str int` ### Pattern 4: Pendulum datetime handling[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#pattern-4-pendulum-datetime-handling "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-30-1) datamodel-codegen --input schema.json --output models.py \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-30-2) --use-pendulum \ [](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#__codelineno-30-3) --strict-types str int` * * * Type Mapping Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#type-mapping-reference "Permanent link") -------------------------------------------------------------------------------------------------------------------------------- ### Common Format Mappings[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#common-format-mappings "Permanent link") | Schema Format | Default Type | With `--type-mappings "format=string"` | | --- | --- | --- | | `email` | `EmailStr` | `str` | | `idn-email` | `EmailStr` | `str` | | `uuid` | `UUID` | `str` | | `ulid` | `ULID` (requires `python-ulid`) | `str` | | `uri` | `AnyUrl` | `str` | | `binary` | `bytes` | `str` | Other type customization options For datetime types, use `--output-datetime-class` or `--use-pendulum` instead of `--type-mappings`. * * * See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/type-mappings/#see-also "Permanent link") ---------------------------------------------------------------------------------------------------- * [CLI Reference: `--type-mappings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings) * [CLI Reference: `--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) * [CLI Reference: `--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) * [CLI Reference: `--use-pendulum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum) * [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) * [Python Version Compatibility](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/) --- # ๐Ÿ Using datamodel-code-generator as a Module - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#using-datamodel-code-generator-as-a-module) ๐Ÿ Using datamodel-code-generator as a Module[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#using-datamodel-code-generator-as-a-module "Permanent link") ============================================================================================================================================================================= datamodel-code-generator is a CLI tool, but it can also be used as a Python module. ๐Ÿš€ How to Use[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#how-to-use "Permanent link") ------------------------------------------------------------------------------------------------------------- You can generate models with `datamodel_code_generator.generate` using parameters that match the [CLI arguments](https://datamodel-code-generator.koxudaxi.dev/) . ### ๐Ÿ“ฆ Installation[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#installation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-0-1) pip install 'datamodel-code-generator[http]'` ### ๐Ÿ“ Getting Generated Code as String[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#getting-generated-code-as-string "Permanent link") When the `output` parameter is omitted (or set to `None`), `generate()` returns the generated code directly as a string: Note `GenerateConfig` is only available in Pydantic v2 environments. For Pydantic v1, use `from datamodel_code_generator.config import GenerateConfig` and call `update_forward_refs()` before use. `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-1) from datamodel_code_generator import InputFileType, generate, GenerateConfig, DataModelType [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-3) json_schema: str = """{ [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-6) "number": {"type": "number"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-7) "street_name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-8) "street_type": {"type": "string", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-9) "enum": ["Street", "Avenue", "Boulevard"] [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-10) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-11) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-12) }""" [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-13)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-14) config = GenerateConfig( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-15) input_file_type=InputFileType.JsonSchema, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-16) input_filename="example.json", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-17) output_model_type=DataModelType.PydanticV2BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-18) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-19) result = generate(json_schema, config=config) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-1-20) print(result)` ### ๐Ÿ“ Multiple Module Output[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#multiple-module-output "Permanent link") When the schema generates multiple modules, `generate()` returns a `GeneratedModules` dictionary mapping module path tuples to generated code: `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-1) from datamodel_code_generator import InputFileType, generate, GenerateConfig, GeneratedModules [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-2)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-3) # Your OpenAPI specification (string, Path, or dict) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-4) openapi_spec: str = "..." # Replace with your actual OpenAPI spec [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-5)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-6) # Schema that generates multiple modules (e.g., with $ref to other files) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-7) config = GenerateConfig( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-8) input_file_type=InputFileType.OpenAPI, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-9) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-10) result: str | GeneratedModules = generate(openapi_spec, config=config) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-11)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-12) if isinstance(result, dict): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-13) for module_path, content in result.items(): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-14) print(f"Module: {'/'.join(module_path)}") [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-15) print(content) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-16) print("---") [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-17) else: [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-2-18) print(result)` ### ๐Ÿ“ Writing to Files[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#writing-to-files "Permanent link") To write generated code to the file system, provide a `Path` to the `output` parameter in the config: `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-1) from pathlib import Path [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-2) from tempfile import TemporaryDirectory [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-3) from datamodel_code_generator import InputFileType, generate, GenerateConfig, DataModelType [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-5) json_schema: str = """{ [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-6) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-7) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-8) "number": {"type": "number"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-9) "street_name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-10) "street_type": {"type": "string", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-11) "enum": ["Street", "Avenue", "Boulevard"] [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-12) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-13) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-14) }""" [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-15)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-16) with TemporaryDirectory() as temporary_directory_name: [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-17) temporary_directory = Path(temporary_directory_name) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-18) output = Path(temporary_directory / 'model.py') [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-19) config = GenerateConfig( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-20) input_file_type=InputFileType.JsonSchema, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-21) input_filename="example.json", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-22) output=output, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-23) # set up the output model types [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-24) output_model_type=DataModelType.PydanticV2BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-25) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-26) generate(json_schema, config=config) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-27) model: str = output.read_text() [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-3-28) print(model)` **โœจ Output:** `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-2) # filename: example.json [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-3) # timestamp: 2020-12-21T08:01:06+00:00 [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-4)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-6)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-8) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-9)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-10) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-11) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-12)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-13) class StreetType(Enum): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-14) Street = 'Street' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-15) Avenue = 'Avenue' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-16) Boulevard = 'Boulevard' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-17) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-18)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-19) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-20) number: Optional[float] = None [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-21) street_name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-4-22) street_type: Optional[StreetType] = None` * * * ๐Ÿ”ง Using the Parser Directly[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#using-the-parser-directly "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------- You can also call the parser directly for more control. Parser classes also support the `config` parameter similar to `generate()`. ### Using `config` Parameter (Recommended)[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#using-config-parameter-recommended "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-1) from datamodel_code_generator import DataModelType, PythonVersion [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-2) from datamodel_code_generator.config import JSONSchemaParserConfig [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-3) from datamodel_code_generator.model import get_data_model_types [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-4) from datamodel_code_generator.parser.jsonschema import JsonSchemaParser [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-5)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-6) json_schema: str = """{ [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-7) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-8) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-9) "number": {"type": "number"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-10) "street_name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-11) "street_type": {"type": "string", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-12) "enum": ["Street", "Avenue", "Boulevard"] [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-13) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-14) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-15) }""" [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-16)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-17) data_model_types = get_data_model_types( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-18) DataModelType.PydanticV2BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-19) target_python_version=PythonVersion.PY_311 [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-20) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-21) config = JSONSchemaParserConfig( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-22) data_model_type=data_model_types.data_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-23) data_model_root_type=data_model_types.root_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-24) data_model_field_type=data_model_types.field_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-25) data_type_manager_type=data_model_types.data_type_manager, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-26) dump_resolve_reference_action=data_model_types.dump_resolve_reference_action, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-27) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-28) parser = JsonSchemaParser(json_schema, config=config) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-29) result = parser.parse() [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-5-30) print(result)` ### Using Keyword Arguments (Backward Compatible)[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#using-keyword-arguments-backward-compatible "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-1) from datamodel_code_generator import DataModelType, PythonVersion [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-2) from datamodel_code_generator.model import get_data_model_types [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-3) from datamodel_code_generator.parser.jsonschema import JsonSchemaParser [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-4)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-5) json_schema: str = """{ [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-6) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-7) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-8) "number": {"type": "number"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-9) "street_name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-10) "street_type": {"type": "string", [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-11) "enum": ["Street", "Avenue", "Boulevard"] [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-12) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-13) } [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-14) }""" [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-15)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-16) data_model_types = get_data_model_types( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-17) DataModelType.PydanticV2BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-18) target_python_version=PythonVersion.PY_311 [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-19) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-20) parser = JsonSchemaParser( [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-21) json_schema, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-22) data_model_type=data_model_types.data_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-23) data_model_root_type=data_model_types.root_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-24) data_model_field_type=data_model_types.field_model, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-25) data_type_manager_type=data_model_types.data_type_manager, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-26) dump_resolve_reference_action=data_model_types.dump_resolve_reference_action, [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-27) ) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-28) result = parser.parse() [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-6-29) print(result)` ### Available Parser Config Classes[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#available-parser-config-classes "Permanent link") Each parser type has its own config class: | Parser | Config Class | | --- | --- | | `JsonSchemaParser` | `JSONSchemaParserConfig` | | `OpenAPIParser` | `OpenAPIParserConfig` | | `GraphQLParser` | `GraphQLParserConfig` | All config classes inherit from `ParserConfig` and include additional parser-specific options. **โœจ Output:** `[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-1) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-2)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-3) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-4) from typing import Optional [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-5)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-6) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-7) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-8)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-9) class StreetType(Enum): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-10) Street = 'Street' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-11) Avenue = 'Avenue' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-12) Boulevard = 'Boulevard' [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-13) [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-14)[](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-15) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-16) number: Optional[float] = None [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-17) street_name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#__codelineno-7-18) street_type: Optional[StreetType] = None` * * * ๐Ÿ“‹ Return Value Summary[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#return-value-summary "Permanent link") --------------------------------------------------------------------------------------------------------------------------------- | `output` Parameter | Single Module | Multiple Modules | | --- | --- | --- | | `None` (default) | `str` | `GeneratedModules` (dict) | | `Path` (file) | `None` | Error | | `Path` (directory) | `None` | `None` | ๐Ÿ“Œ **Note:** When `output` is a file path and multiple modules would be generated, `generate()` raises a `datamodel_code_generator.Error` exception. Use a directory path instead. * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/using_as_module/#see-also "Permanent link") --------------------------------------------------------------------------------------------------------- * [Dynamic Model Generation](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/) - Generate Python classes at runtime * [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete CLI options (same parameters as module) * [Generate from JSON Schema](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) - JSON Schema examples --- # ๐Ÿ› ๏ธ Development - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#development) ๐Ÿ› ๏ธ Development[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#development "Permanent link") ========================================================================================================================= Install the package in editable mode: `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-0-1) $ git clone [[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) :koxudaxi/datamodel-code-generator.git [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-0-2) $ pip install -e datamodel-code-generator` ๐Ÿค Contribute[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#contribute "Permanent link") ====================================================================================================================== We are waiting for your contributions to `datamodel-code-generator`. ๐Ÿ“ How to contribute[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#how-to-contribute "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------ `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-1) ## 1. Clone your fork repository [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-2) $ git clone [[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) :/datamodel-code-generator.git [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-3) $ cd datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-4)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-5) ## 2. Install [uv](https://docs.astral.sh/uv/getting-started/installation/) [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-6) $ curl -LsSf https://astral.sh/uv/install.sh | sh [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-7)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-8) ## 3. Install tox with uv [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-9) $ uv tool install --python-preference only-managed --python 3.13 tox --with tox-uv [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-10)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-11) ## 4. Create developer environment [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-12) $ tox run -e dev [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-13)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-14) .tox/dev is a Python environment you can use for development purposes [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-15)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-16) ## 5. Install pre-commit hooks [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-17) $ uv tool install prek [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-18) $ prek install [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-19)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-20) ## 6. Create new branch and rewrite code. [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-21) $ git checkout -b new-branch [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-22)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-23) ## 7. Run unittest under Python 3.13 (you should pass all test and coverage should be 100%) [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-24) $ tox run -e 3.13 [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-25)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-26) ## 8. Format and lint code (will print errors that cannot be automatically fixed) [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-27) $ tox run -e fix [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-28)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-29) ## 9. Check README help text is up to date [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-30) $ tox run -e readme [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-31)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-32) ## 10. Check CLI documentation is up to date [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-33) $ tox run -e cli-docs [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-34)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-1-35) ## 11. Commit and Push...` โž• Adding a New CLI Option[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#adding-a-new-cli-option "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- When adding a new CLI option to `datamodel-code-generator`, follow these steps: ### Step 1: Implement the option (Required)[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#step-1-implement-the-option-required "Permanent link") Add the option to `src/datamodel_code_generator/arguments.py`: `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-2-1) arg_parser.add_argument( [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-2-2) "--my-new-option", [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-2-3) help="Description of what this option does", [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-2-4) action="store_true", # or other action type [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-2-5) )` ### Step 2: Add a test with documentation marker (Required)[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#step-2-add-a-test-with-documentation-marker-required "Permanent link") Create a test that demonstrates the option and add the `@pytest.mark.cli_doc()` marker: `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-1) @pytest.mark.cli_doc( [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-2) options=["--my-new-option"], [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-3) input_schema="jsonschema/example.json", # Path relative to tests/data/ [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-4) cli_args=["--my-new-option"], [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-5) golden_output="jsonschema/example_with_my_option.py", # Expected output [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-6) ) [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-7) def test_my_new_option(output_file: Path) -> None: [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-8) """Short description of what the option does. [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-9) [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-10) This docstring becomes the documentation for the option. [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-11) Explain when and why users would use this option. [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-12) """ [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-13) run_main_and_assert( [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-14) input_path=JSON_SCHEMA_DATA_PATH / "example.json", [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-15) output_path=output_file, [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-16) extra_args=["--my-new-option"], [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-17) ... [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-3-18) )` ### Step 3: Categorize the option (Optional)[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#step-3-categorize-the-option-optional "Permanent link") By default, new options appear in "General Options". To place in a specific category, add to `src/datamodel_code_generator/cli_options.py`: `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-1) CLI_OPTION_META: dict[str, CLIOptionMeta] = { [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-2) ... [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-3) "--my-new-option": CLIOptionMeta( [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-4) name="--my-new-option", [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-5) category=OptionCategory.MODEL, # or FIELD, TYPING, TEMPLATE, etc. [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-6) ), [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-4-7) }` ### Step 4: Generate and verify documentation[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#step-4-generate-and-verify-documentation "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-1) # Regenerate CLI docs [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-2) $ pytest --collect-cli-docs -p no:xdist -q [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-3) $ python scripts/build_cli_docs.py [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-5) # Verify docs are correct [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-6) $ tox run -e cli-docs [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-7)[](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-8) # If you modified config.py, regenerate config TypedDicts [](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#__codelineno-5-9) $ tox run -e config-types` ### ๐Ÿ”ง Troubleshooting[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#troubleshooting "Permanent link") If `tox run -e cli-docs` fails: * **"No test found documenting option --xxx"**: Add `@pytest.mark.cli_doc(options=["--xxx"], ...)` to a test * **"File not found: ..."**: Check that `input_schema` and `golden_output` paths are correct * **"CLI docs are OUT OF DATE"**: Run `python scripts/build_cli_docs.py` to regenerate ๐Ÿ“– CLI Documentation Marker Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/development-contributing/#cli-documentation-marker-reference "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- The `cli_doc` marker supports: | Parameter | Required | Description | | --- | --- | --- | | `options` | Yes | List of CLI options this test documents | | `input_schema` | Yes | Input schema path (relative to `tests/data/`) | | `cli_args` | Yes | CLI arguments used in the test | | `golden_output` | Yes\* | Expected output file path | | `model_outputs` | No | Dict of model type โ†’ output file (for multi-model tabs) | | `version_outputs` | No | Dict of Python version โ†’ output file | | `comparison_output` | No | Baseline output without option (for before/after) | | `primary` | No | Set `True` if this is the main example for the option | \*Either `golden_output` or `model_outputs` is required. See existing tests in `tests/main/` for examples. --- # LLM Integration - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#llm-integration) LLM Integration[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#llm-integration "Permanent link") ==================================================================================================================== The `--generate-prompt` option generates a formatted prompt that you can use to consult Large Language Models (LLMs) about datamodel-code-generator CLI options. Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#overview "Permanent link") ------------------------------------------------------------------------------------------------------ When you're unsure which CLI options to use for your specific use case, you can generate a prompt containing all available options and their descriptions, then ask an LLM for recommendations. `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-0-1) datamodel-codegen --generate-prompt "How do I generate strict Pydantic v2 models?"` The generated prompt includes: * Your question (if provided) * Current CLI options you've specified * All options organized by category with descriptions * Full help text for reference CLI LLM Tools[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#cli-llm-tools "Permanent link") ---------------------------------------------------------------------------------------------------------------- Pipe the generated prompt directly to CLI-based LLM tools: ### Claude Code[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#claude-code "Permanent link") [Claude Code](https://docs.anthropic.com/en/docs/claude-code) is Anthropic's official CLI tool. Use `-p` flag for non-interactive (pipe) mode: `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-1-1) datamodel-codegen --generate-prompt "Best options for API response models?" | claude -p` ### OpenAI Codex CLI[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#openai-codex-cli "Permanent link") [Codex CLI](https://github.com/openai/codex) is OpenAI's CLI tool. Use `exec` subcommand for non-interactive mode: `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-2-1) datamodel-codegen --generate-prompt "How to handle nullable fields?" | codex exec` ### Other CLI Tools[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#other-cli-tools "Permanent link") Other popular LLM CLI tools that accept stdin: | Tool | Command | Repository | | --- | --- | --- | | llm | `\\| llm` | [simonw/llm](https://github.com/simonw/llm) | | aichat | `\\| aichat` | [sigoden/aichat](https://github.com/sigoden/aichat) | | sgpt | `\\| sgpt` | [TheR1D/shell\_gpt](https://github.com/TheR1D/shell_gpt) | | mods | `\\| mods` | [charmbracelet/mods](https://github.com/charmbracelet/mods) | Check each tool's documentation for specific usage and options. Web LLM Chat Services[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#web-llm-chat-services "Permanent link") -------------------------------------------------------------------------------------------------------------------------------- Copy the prompt to clipboard, then paste into your preferred web-based LLM chat: ### macOS[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#macos "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-3-1) datamodel-codegen --generate-prompt | pbcopy` ### Linux (X11)[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#linux-x11 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-4-1) datamodel-codegen --generate-prompt | xclip -selection clipboard` ### Linux (Wayland)[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#linux-wayland "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-5-1) datamodel-codegen --generate-prompt | wl-copy` ### Windows (PowerShell)[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#windows-powershell "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-6-1) datamodel-codegen --generate-prompt | Set-Clipboard` ### WSL2[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#wsl2 "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-7-1) datamodel-codegen --generate-prompt | clip.exe` Usage Examples[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#usage-examples "Permanent link") ------------------------------------------------------------------------------------------------------------------ ### Basic Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#basic-usage "Permanent link") Generate a prompt without a specific question: `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-8-1) datamodel-codegen --generate-prompt` ### With a Question[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#with-a-question "Permanent link") Include your specific question in the prompt: `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-9-1) datamodel-codegen --generate-prompt "What options should I use for GraphQL schema?"` ### With Current Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#with-current-options "Permanent link") Show your current configuration and ask for improvements: `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-10-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-10-2) --input schema.json \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-10-3) --output-model-type pydantic_v2.BaseModel \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-10-4) --use-annotated \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-10-5) --generate-prompt "Are there any other options I should consider?"` ### Pipe to Claude with Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#pipe-to-claude-with-options "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-11-1) datamodel-codegen \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-11-2) --input openapi.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-11-3) --output-model-type dataclasses.dataclass \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-11-4) --generate-prompt "How can I add JSON serialization support?" \ [](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#__codelineno-11-5) | claude -p` Tips[ยถ](https://datamodel-code-generator.koxudaxi.dev/llm-integration/#tips "Permanent link") ---------------------------------------------------------------------------------------------- 1. **Be specific** - Include a clear question to get more relevant recommendations 2. **Show context** - Add your current options so the LLM understands your setup 3. **Iterate** - Use the suggestions, then ask follow-up questions if needed --- # โ“ Frequently Asked Questions - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/faq/#frequently-asked-questions) โ“ Frequently Asked Questions[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#frequently-asked-questions "Permanent link") ================================================================================================================================ ๐Ÿ“‹ Schema Handling[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#schema-handling "Permanent link") ----------------------------------------------------------------------------------------------------------- ### ๐Ÿ”€ oneOf/anyOf generates unexpected Union types[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#oneofanyof-generates-unexpected-union-types "Permanent link") When using `oneOf` or `anyOf`, the generated models may not match your expectations. Use `--union-mode` to control how unions are generated: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-0-1) # Smart union (Pydantic v2 only) - validates against types in order [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-0-2) datamodel-codegen --union-mode smart --output-model-type pydantic_v2.BaseModel ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-0-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-0-4) # Left-to-right validation [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-0-5) datamodel-codegen --union-mode left_to_right ...` See [CLI Reference: `--union-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#union-mode) for details. ### ๐Ÿ”— allOf doesn't merge properties as expected[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#allof-doesnt-merge-properties-as-expected "Permanent link") Control how `allOf` schemas merge fields: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-1) # Merge only constraints (minItems, maxItems, pattern, etc.) - default [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-2) datamodel-codegen --allof-merge-mode constraints ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-4) # Merge constraints + annotations (default, examples) [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-5) datamodel-codegen --allof-merge-mode all ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-6)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-7) # Don't merge any fields [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-1-8) datamodel-codegen --allof-merge-mode none ...` See [CLI Reference: `--allof-merge-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode) for details. ๐Ÿ“Ž Related: [#399](https://github.com/koxudaxi/datamodel-code-generator/issues/399) ### ๐Ÿ“ How to generate from multiple schema files?[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#how-to-generate-from-multiple-schema-files "Permanent link") Use a directory as input, or use `$ref` to reference other files: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-2-1) # Generate from directory containing multiple schemas [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-2-2) datamodel-codegen --input schemas/ --output models/` For schemas with cross-file `$ref`, ensure you have the HTTP extra for remote refs: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-3-1) pip install 'datamodel-code-generator[http]'` ๐Ÿ“Ž Related: [#215](https://github.com/koxudaxi/datamodel-code-generator/issues/215) ### ๐Ÿ”ค YAML bool keywords (YES, NO, true, false) in string enums[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#yaml-bool-keywords-yes-no-true-false-in-string-enums "Permanent link") YAML 1.1 treats unquoted keywords like `YES`, `NO`, `on`, `off`, `true`, `false` as boolean values. This tool preserves them as strings to avoid unexpected conversions in schema contexts: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-4-1) # Input YAML [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-4-2) enum: [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-4-3) - YES [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-4-4) - NO [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-4-5) - NOT_APPLICABLE` `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-5-1) # Generated code (strings preserved) [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-5-2) class MyEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-5-3) YES = 'YES' [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-5-4) NO = 'NO' [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-5-5) NOT_APPLICABLE = 'NOT_APPLICABLE'` This matches the expected behavior when `type: string` is specified in your schema. If you need the previous behavior where YAML bool keywords were converted to Python booleans, please [open an issue](https://github.com/koxudaxi/datamodel-code-generator/issues) describing your use case. ๐Ÿ“Ž Related: [#1653](https://github.com/koxudaxi/datamodel-code-generator/issues/1653) , [#1766](https://github.com/koxudaxi/datamodel-code-generator/issues/1766) , [#2338](https://github.com/koxudaxi/datamodel-code-generator/issues/2338) * * * ๐Ÿ” Type Checking[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#type-checking "Permanent link") ------------------------------------------------------------------------------------------------------- ### โš ๏ธ mypy complains about Field constraints[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#mypy-complains-about-field-constraints "Permanent link") If mypy reports errors about `conint`, `constr`, or other constrained types, use `--field-constraints` or `--use-annotated`: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-6-1) # Use Field(..., ge=0) instead of conint(ge=0) [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-6-2) datamodel-codegen --field-constraints ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-6-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-6-4) # Use Annotated[int, Field(ge=0)] [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-6-5) datamodel-codegen --use-annotated ...` See [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) for more information. ### ๐Ÿค” Type checker doesn't understand generated types[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#type-checker-doesnt-understand-generated-types "Permanent link") Ensure you're using the correct target Python version: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-7-1) datamodel-codegen --target-python-version 3.11 ...` This affects type syntax generation (e.g., `list[str]` vs `List[str]`, `X | Y` vs `Union[X, Y]`). * * * ๐Ÿท๏ธ Field Naming[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#field-naming "Permanent link") ------------------------------------------------------------------------------------------------------ ### ๐Ÿšซ Property names conflict with Python reserved words[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#property-names-conflict-with-python-reserved-words "Permanent link") Properties like `class`, `from`, `import` are automatically renamed with a `field_` prefix. Control this behavior: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-8-1) # Custom prefix (default: "field") [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-8-2) datamodel-codegen --special-field-name-prefix my_prefix ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-8-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-8-4) # Remove special prefix entirely [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-8-5) datamodel-codegen --remove-special-field-name-prefix ...` ### ๐Ÿ”ฃ Field names have special characters[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#field-names-have-special-characters "Permanent link") JSON/YAML property names with spaces, dashes, or special characters are converted to valid Python identifiers. An alias is automatically generated to preserve the original name: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-9-1) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-9-2) my_field: str = Field(..., alias='my-field')` To disable aliases: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-10-1) datamodel-codegen --no-alias ...` See [Field Aliases](https://datamodel-code-generator.koxudaxi.dev/aliases/) for custom alias mappings. ### ๐Ÿ Want snake\_case field names from camelCase[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#want-snake_case-field-names-from-camelcase "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-11-1) datamodel-codegen --snake-case-field ...` This generates snake\_case field names with camelCase aliases: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-12-1) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-12-2) first_name: str = Field(..., alias='firstName')` * * * ๐Ÿ”„ Output Stability[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#output-stability "Permanent link") ------------------------------------------------------------------------------------------------------------- ### โฐ Generated output changes on every run[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#generated-output-changes-on-every-run "Permanent link") The timestamp in the header changes on each run. Disable it for reproducible output: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-13-1) datamodel-codegen --disable-timestamp ...` ### ๐ŸŒ Output differs between environments[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#output-differs-between-environments "Permanent link") Ensure consistent formatting across environments: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-14-1) # Explicitly set formatters [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-14-2) datamodel-codegen --formatters black isort ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-14-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-14-4) # Or disable formatting entirely for raw output [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-14-5) datamodel-codegen --formatters ...` Also ensure the same Python version and formatter configurations (`pyproject.toml`) are used. ### ๐Ÿค– CI fails because generated code is different[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#ci-fails-because-generated-code-is-different "Permanent link") Use `--check` mode in CI to verify generated files are up-to-date: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-15-1) datamodel-codegen --check --input schema.yaml --output models.py` This exits with code 1 if the output would differ, without modifying files. * * * โšก Performance[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#performance "Permanent link") -------------------------------------------------------------------------------------------------- ### ๐Ÿข Generation is slow for large schemas[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#generation-is-slow-for-large-schemas "Permanent link") For very large schemas with many models: 1. Use `--reuse-model` to deduplicate identical models 2. Consider splitting schemas into multiple files 3. Use `--disable-warnings` to reduce output `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-16-1) datamodel-codegen --reuse-model --disable-warnings ...` See [Model Reuse and Deduplication](https://datamodel-code-generator.koxudaxi.dev/model-reuse/) for details. * * * ๐Ÿ”ง Output Model Types[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#output-model-types "Permanent link") ----------------------------------------------------------------------------------------------------------------- ### ๐Ÿคท Which output model type should I use?[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#which-output-model-type-should-i-use "Permanent link") * **Pydantic v2** (`pydantic_v2.BaseModel`): โœจ Recommended for new projects. Better performance and modern API. * **Pydantic v1** (`pydantic.BaseModel`): ๐Ÿ”„ Default for backward compatibility with existing codebases. * **dataclasses**: Simple data containers without validation. * **TypedDict**: Type hints for dict structures. * **msgspec**: High-performance serialization. See [Output Model Types](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/) for a detailed comparison. `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-17-1) # For new projects [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-17-2) datamodel-codegen --output-model-type pydantic_v2.BaseModel ...` See [Pydantic v1 vs v2](https://datamodel-code-generator.koxudaxi.dev/what_is_the_difference_between_v1_and_v2/) for migration details. ๐Ÿ“Ž Related: [#803](https://github.com/koxudaxi/datamodel-code-generator/issues/803) ### ๐Ÿ’ฅ Generated code doesn't work with my Pydantic version[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#generated-code-doesnt-work-with-my-pydantic-version "Permanent link") Ensure the output model type matches your installed Pydantic version: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-1) # Check your Pydantic version [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-2) python -c "import pydantic; print(pydantic.VERSION)" [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-4) # Generate for Pydantic v2 [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-5) datamodel-codegen --output-model-type pydantic_v2.BaseModel ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-6)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-7) # Generate for Pydantic v1 [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-18-8) datamodel-codegen --output-model-type pydantic.BaseModel ...` * * * ๐ŸŒ Remote Schemas[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#remote-schemas "Permanent link") --------------------------------------------------------------------------------------------------------- ### ๐Ÿ“ก Cannot fetch schema from URL[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#cannot-fetch-schema-from-url "Permanent link") Install the HTTP extra: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-19-1) pip install 'datamodel-code-generator[http]'` For authenticated endpoints: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-20-1) datamodel-codegen --url https://api.example.com/schema.yaml \ [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-20-2) --http-headers "Authorization: Bearer TOKEN" \ [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-20-3) --output model.py` ### ๐Ÿ”’ SSL certificate errors[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#ssl-certificate-errors "Permanent link") For development/testing with self-signed certificates: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-21-1) datamodel-codegen --url https://... --http-ignore-tls --output model.py` โš ๏ธ Security Notice Only use `--http-ignore-tls` in trusted environments. * * * ๐Ÿ“˜ OpenAPI Specific[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#openapi-specific "Permanent link") ------------------------------------------------------------------------------------------------------------- ### ๐Ÿ“ How to handle readOnly/writeOnly properties?[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#how-to-handle-readonlywriteonly-properties "Permanent link") Use `--read-only-write-only-model-type` to generate separate Request/Response models: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-22-1) # Generate Request/Response models only [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-22-2) datamodel-codegen --read-only-write-only-model-type request-response ... [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-22-3)[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-22-4) # Generate Base + Request + Response models [](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-22-5) datamodel-codegen --read-only-write-only-model-type all ...` ๐Ÿ“Ž Related: [#727](https://github.com/koxudaxi/datamodel-code-generator/issues/727) ### โ“ Why are nullable fields not Optional?[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#why-are-nullable-fields-not-optional "Permanent link") Use `--strict-nullable` to treat nullable fields as truly optional: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-23-1) datamodel-codegen --strict-nullable ...` ๐Ÿ“Ž Related: [#327](https://github.com/koxudaxi/datamodel-code-generator/issues/327) * * * ๐Ÿ”ง Advanced[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#advanced "Permanent link") --------------------------------------------------------------------------------------------- ### ๐Ÿ“ฆ How to use TypeAlias instead of RootModel?[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#how-to-use-typealias-instead-of-rootmodel "Permanent link") Use `--use-type-alias` (experimental) to generate type aliases instead of root models: `[](https://datamodel-code-generator.koxudaxi.dev/faq/#__codelineno-24-1) datamodel-codegen --use-type-alias --output-model-type pydantic_v2.BaseModel ...` See [Root Models and Type Aliases](https://datamodel-code-generator.koxudaxi.dev/root-model-and-type-alias/) for details. ๐Ÿ“Ž Related: [#2505](https://github.com/koxudaxi/datamodel-code-generator/issues/2505) * * * ๐Ÿ“– See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/faq/#see-also "Permanent link") --------------------------------------------------------------------------------------------- * ๐Ÿ–ฅ๏ธ [CLI Reference](https://datamodel-code-generator.koxudaxi.dev/cli-reference/) - Complete option documentation * โš™๏ธ [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) - Configure options via file * ๐Ÿ› [GitHub Issues](https://github.com/koxudaxi/datamodel-code-generator/issues) - Report bugs or request features * ๐Ÿ’ฌ [Discussions](https://github.com/koxudaxi/datamodel-code-generator/discussions) - Ask questions and share ideas --- # Dynamic Model Generation - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#dynamic-model-generation) Dynamic Model Generation[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#dynamic-model-generation "Permanent link") =============================================================================================================================================== Generate real Python model classes from JSON Schema or OpenAPI at runtime without writing files. Overview[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#overview "Permanent link") --------------------------------------------------------------------------------------------------------------- While `generate()` produces source code as strings, `generate_dynamic_models()` creates actual Python classes that you can use immediately for validation and data processing. This is useful for: * Runtime schema validation without code generation step * Dynamic API clients that adapt to schema changes * Testing and prototyping * Plugin systems with dynamic schemas Quick Start[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#quick-start "Permanent link") --------------------------------------------------------------------------------------------------------------------- `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-1) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-3) schema = { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-6) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-7) "age": {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-8) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-9) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-10) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-11)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-12) models = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-13) User = models["Model"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-14)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-15) # Use the model for validation [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-16) user = User(name="Alice", age=30) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-17) print(user.model_dump()) # {'name': 'Alice', 'age': 30} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-18)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-19) # Validation errors are raised [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-20) try: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-21) User(age="not a number") # Missing required 'name', wrong type for 'age' [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-22) except Exception as e: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-0-23) print(e)` API Reference[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#api-reference "Permanent link") ------------------------------------------------------------------------------------------------------------------------- ### `generate_dynamic_models()`[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#generate_dynamic_models "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-1) def generate_dynamic_models( [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-2) input_: Mapping[str, Any], [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-3) *, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-4) config: GenerateConfig | None = None, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-5) cache_size: int = 128, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-1-6) ) -> dict[str, type]:` **Parameters:** | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `input_` | `Mapping[str, Any]` | required | JSON Schema or OpenAPI schema as dict | | `config` | `GenerateConfig \\| None` | `None` | Generation options (same as `generate()`) | | `cache_size` | `int` | `128` | Maximum cached schemas. Set to `0` to disable | **Returns:** `dict[str, type]` - Dictionary mapping class names to model classes. ### `clear_dynamic_models_cache()`[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#clear_dynamic_models_cache "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-2-1) def clear_dynamic_models_cache() -> int:` Clears the internal cache and returns the number of entries cleared. Examples[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#examples "Permanent link") --------------------------------------------------------------------------------------------------------------- ### JSON Schema with Nested Models[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#json-schema-with-nested-models "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-1) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-3) schema = { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-4) "$defs": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-5) "Address": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-6) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-7) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-8) "street": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-9) "city": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-10) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-11) "required": ["street", "city"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-12) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-13) "Person": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-14) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-15) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-16) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-17) "address": {"$ref": "#/$defs/Address"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-18) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-19) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-20) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-21) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-22) "$ref": "#/$defs/Person" [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-23) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-24)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-25) models = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-26)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-27) # Both models are available [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-28) Person = models["Person"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-29) Address = models["Address"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-30)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-31) person = Person( [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-32) name="Bob", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-33) address={"street": "123 Main St", "city": "NYC"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-34) ) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-35) print(person.model_dump()) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-3-36) # {'name': 'Bob', 'address': {'street': '123 Main St', 'city': 'NYC'}}` ### OpenAPI Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#openapi-schema "Permanent link") OpenAPI schemas are auto-detected: `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-1) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-3) openapi_schema = { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-4) "openapi": "3.0.0", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-5) "info": {"title": "User API", "version": "1.0.0"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-6) "paths": {}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-7) "components": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-8) "schemas": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-9) "User": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-10) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-11) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-12) "id": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-13) "email": {"type": "string", "format": "email"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-14) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-15) "required": ["id", "email"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-16) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-17) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-18) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-19) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-20)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-21) models = generate_dynamic_models(openapi_schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-22) User = models["User"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-23)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-4-24) user = User(id=1, email="[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) ")` ### With Custom Configuration[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#with-custom-configuration "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-1) from datamodel_code_generator import generate_dynamic_models, GenerateConfig, DataModelType [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-3) schema = {"type": "object", "properties": {"name": {"type": "string"}}} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-5) config = GenerateConfig( [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-6) class_name="Customer", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-7) output_model_type=DataModelType.PydanticV2BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-8) ) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-10) models = generate_dynamic_models(schema, config=config) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-5-11) Customer = models["Customer"]` ### Enum Models[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#enum-models "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-1) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-3) schema = { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-6) "status": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-8) "enum": ["pending", "approved", "rejected"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-9) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-10) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-11) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-12)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-13) models = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-14) Model = models["Model"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-15) Status = models["Status"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-16)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-17) # Enum validation [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-18) item = Model(status="approved") [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-19) print(item.status) # Status.approved [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-20) print(item.status.value) # 'approved' [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-21)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-22) # Invalid enum value raises error [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-23) try: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-24) Model(status="invalid") [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-25) except Exception as e: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-6-26) print(e)` ### Circular References[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#circular-references "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-1) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-3) schema = { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-4) "$defs": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-5) "Node": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-6) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-7) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-8) "value": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-9) "children": { [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-10) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-11) "items": {"$ref": "#/$defs/Node"} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-12) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-13) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-14) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-15) }, [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-16) "$ref": "#/$defs/Node" [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-17) } [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-18)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-19) models = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-20) Node = models["Node"] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-21)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-22) tree = Node( [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-23) value="root", [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-24) children=[ [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-25) Node(value="child1", children=[]), [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-26) Node(value="child2", children=[ [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-27) Node(value="grandchild", children=[]) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-28) ]) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-29) ] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-7-30) )` Caching[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#caching "Permanent link") ------------------------------------------------------------------------------------------------------------- Models are cached by schema content and configuration to avoid regeneration: `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-1) from datamodel_code_generator import generate_dynamic_models, clear_dynamic_models_cache [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-2)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-3) schema = {"type": "object", "properties": {"x": {"type": "integer"}}} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-5) # First call generates models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-6) models1 = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-7)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-8) # Second call returns cached models (same object) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-9) models2 = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-10) assert models1 is models2 # True [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-11)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-12) # Disable caching for specific call [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-13) models3 = generate_dynamic_models(schema, cache_size=0) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-14) assert models1 is not models3 # True [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-15)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-16) # Clear all cached models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-17) cleared = clear_dynamic_models_cache() [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-8-18) print(f"Cleared {cleared} cached schemas")` Thread Safety[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#thread-safety "Permanent link") ------------------------------------------------------------------------------------------------------------------------- `generate_dynamic_models()` is thread-safe. Multiple threads can safely call it concurrently: `[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-1) import threading [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-2) from datamodel_code_generator import generate_dynamic_models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-3)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-4) schema = {"type": "object", "properties": {"x": {"type": "integer"}}} [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-5) results = [] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-7) def worker(): [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-8) models = generate_dynamic_models(schema) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-9) results.append(models) [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-10)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-11) threads = [threading.Thread(target=worker) for _ in range(10)] [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-12) for t in threads: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-13) t.start() [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-14) for t in threads: [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-15) t.join() [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-16)[](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-17) # All threads get the same cached models [](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#__codelineno-9-18) assert all(r is results[0] for r in results)` Limitations[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#limitations "Permanent link") --------------------------------------------------------------------------------------------------------------------- | Limitation | Details | | --- | --- | | Pydantic v2 only | Pydantic v1 is not supported | | Not pickle-able | Use `model_dump()` to serialize instances | | Dict input only | Schema must be a `dict`, not a file path or string | Comparison with `generate()`[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#comparison-with-generate "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------- | Feature | `generate()` | `generate_dynamic_models()` | | --- | --- | --- | | Output | Source code string | Actual Python classes | | Use case | Code generation, file output | Runtime validation | | Caching | No | Yes (configurable) | | Thread-safe | Yes | Yes | | Pydantic v1 | Yes | No | See Also[ยถ](https://datamodel-code-generator.koxudaxi.dev/dynamic-model-generation/#see-also "Permanent link") --------------------------------------------------------------------------------------------------------------- * [Using as Module](https://datamodel-code-generator.koxudaxi.dev/using_as_module/) - `generate()` function reference * [JSON Schema](https://datamodel-code-generator.koxudaxi.dev/jsonschema/) - JSON Schema examples * [OpenAPI](https://datamodel-code-generator.koxudaxi.dev/openapi/) - OpenAPI examples --- # CI/CD Integration - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#cicd-integration) CI/CD Integration[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#cicd-integration "Permanent link") ============================================================================================================= This guide covers how to use datamodel-code-generator in CI/CD pipelines and development workflows to ensure generated code stays in sync with schemas. Note The package name is `datamodel-code-generator`, and the CLI command is `datamodel-codegen`. * * * Official GitHub Action[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#official-github-action "Permanent link") ------------------------------------------------------------------------------------------------------------------------ The official GitHub Action provides a simple way to validate generated models in your CI pipeline. ### Basic Usage[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#basic-usage "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-3) input: schema.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-5) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-0-6) output-model-type: pydantic_v2.BaseModel` By default, the action runs in **check mode** (`--check`), which validates that the existing output file matches what would be generated. If they differ, the action fails. ### Inputs[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#inputs "Permanent link") | Input | Required | Default | Description | | --- | --- | --- | --- | | `input` | Yes | \- | Input schema file or directory | | `output` | Yes | \- | Output file or directory | | `input-file-type` | Yes | \- | Input file type (`openapi`, `jsonschema`, `json`, `yaml`, `csv`, `graphql`) | | `output-model-type` | Yes | \- | Output model type (`pydantic_v2.BaseModel`, `pydantic.BaseModel`, `dataclasses.dataclass`, `typing.TypedDict`, `msgspec.Struct`) | | `check` | No | `true` | Validate that existing output is up to date (no generation) | | `working-directory` | No | `.` | Working directory (where `pyproject.toml` is located) | | `profile` | No | \- | Named profile from `pyproject.toml` | | `extra-args` | No | \- | Additional CLI arguments | | `version` | No | \- | Specific version to install (defaults to action's tag version) | | `extras` | No | \- | Optional extras to install (comma-separated: `graphql`, `http`, `validation`, `ruff`, `all`) | ### Example: Validate on Pull Request[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-validate-on-pull-request "Permanent link") .github/workflows/validate-models.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-1) name: Validate Generated Models [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-2)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-3) on: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-4) pull_request: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-5) paths: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-6) - 'schemas/**' [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-7) - 'src/models/**' [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-8)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-9) jobs: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-10) validate: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-11) runs-on: ubuntu-latest [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-12) steps: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-13) - uses: actions/checkout@v4 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-14) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-15) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-16) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-17) input: schemas/api.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-18) output: src/models/api.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-19) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-1-20) output-model-type: pydantic_v2.BaseModel` ### Example: Monorepo with Multiple Schemas[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-monorepo-with-multiple-schemas "Permanent link") .github/workflows/validate-models.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-1) jobs: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-2) validate: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-3) runs-on: ubuntu-latest [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-4) strategy: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-5) matrix: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-6) include: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-7) - working-directory: packages/api [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-8) input: schemas/openapi.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-9) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-10) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-11) - working-directory: packages/admin [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-12) input: schemas/schema.json [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-13) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-14) input-file-type: jsonschema [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-15) steps: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-16) - uses: actions/checkout@v4 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-17) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-18) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-19) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-20) input: ${{ matrix.input }} [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-21) output: ${{ matrix.output }} [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-22) input-file-type: ${{ matrix.input-file-type }} [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-23) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-2-24) working-directory: ${{ matrix.working-directory }}` ### Example: Using Profiles[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-using-profiles "Permanent link") `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-3) input: schemas/api.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-5) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-6) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-3-7) profile: api` ### Example: Generate Models (Instead of Validation)[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-generate-models-instead-of-validation "Permanent link") Set `check: 'false'` to actually generate the models: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-3) input: schema.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-5) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-6) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-4-7) check: 'false'` ### Example: GraphQL Schema[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-graphql-schema "Permanent link") For GraphQL schemas, use the `extras` input to install the required dependency: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-3) input: schema.graphql [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-5) input-file-type: graphql [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-6) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-5-7) extras: 'graphql'` ### Example: Multiple Extras[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-multiple-extras "Permanent link") You can install multiple extras with comma-separated values: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-3) input: schema.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-5) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-6) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-6-7) extras: 'http,validation,ruff'` ### Example: Additional CLI Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#example-additional-cli-options "Permanent link") Use `extra-args` for CLI options not covered by the inputs: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-1) - uses: koxudaxi/[[emailย protected]](https://datamodel-code-generator.koxudaxi.dev/cdn-cgi/l/email-protection) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-2) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-3) input: schema.yaml [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-4) output: src/models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-5) input-file-type: openapi [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-6) output-model-type: pydantic_v2.BaseModel [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-7-7) extra-args: '--snake-case-field --field-constraints'` Version Pinning Always pin the action to a specific version tag (e.g., `@0.44.0`) to ensure reproducible builds. The action installs the same version of `datamodel-code-generator` as the tag. * * * The `--check` Flag[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#the-check-flag "Permanent link") ------------------------------------------------------------------------------------------------------------ The `--check` flag verifies that generated code matches existing files without modifying them. If the output would differ, it exits with a non-zero status code. `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-8-1) datamodel-codegen --check` ### Success (Exit code 0)[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#success-exit-code-0 "Permanent link") When generated code matches the existing file, the command exits silently with code 0: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-9-1) $ datamodel-codegen --check [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-9-2) $ echo $? [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-9-3) 0` ### Failure (Exit code 1)[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#failure-exit-code-1 "Permanent link") When the schema has changed and the generated code would differ, a unified diff is shown and the command exits with code 1: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-1) $ datamodel-codegen --check [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-2) --- models.py [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-3) +++ models.py (expected) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-4) @@ -12,3 +12,4 @@ [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-5) name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-6) age: Optional[int] = None [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-7) email: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-8) + active: Optional[bool] = None [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-9) $ echo $? [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-10-10) 1` Best Practice: Use pyproject.toml Instead of passing many CLI options, configure all settings in `pyproject.toml`. This keeps CI commands simple, ensures consistency between local development and CI, and makes configuration easier to maintain. pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-11-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-11-2) input = "schemas/api.yaml" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-11-3) output = "src/models/api.py" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-11-4) output-model-type = "pydantic_v2.BaseModel" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-11-5) disable-timestamp = true` Then simply run: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-12-1) datamodel-codegen --check` For projects with multiple schemas, use [named profiles](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#named-profiles) to organize configurations by purpose. **Related:** [`--check`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/#check) , [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) , [pyproject.toml Configuration](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/) * * * GitHub Actions[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#github-actions "Permanent link") -------------------------------------------------------------------------------------------------------- ### Basic Example[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#basic-example "Permanent link") .github/workflows/ci.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-1) name: CI [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-2)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-3) on: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-4) push: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-5) branches: [main] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-6) pull_request: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-7)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-8) jobs: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-9) check-generated-code: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-10) runs-on: ubuntu-latest [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-11) steps: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-12) - uses: actions/checkout@v4 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-13) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-14) - name: Set up Python [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-15) uses: actions/setup-python@v6 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-16) with: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-17) python-version: "3.14" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-18) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-19) - name: Install dependencies [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-20) run: pip install datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-21) [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-22) - name: Verify generated models are up-to-date [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-13-23) run: datamodel-codegen --check` ### Using Profiles for Multiple Schemas[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#using-profiles-for-multiple-schemas "Permanent link") For projects with multiple schemas, use [named profiles](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#named-profiles) to organize configurations by purpose: pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-2) output-model-type = "pydantic_v2.BaseModel" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-3) disable-timestamp = true [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-4)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-5) [tool.datamodel-codegen.profiles.api] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-6) input = "schemas/openapi/api.yaml" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-7) output = "src/models/api.py" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-8)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-9) [tool.datamodel-codegen.profiles.events] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-10) input = "schemas/jsonschema/events.json" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-11) output = "src/models/events.py" [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-14-12) input-file-type = "jsonschema"` .github/workflows/ci.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-15-1) - name: Verify API models are up-to-date [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-15-2) run: datamodel-codegen --profile api --check [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-15-3)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-15-4) - name: Verify event models are up-to-date [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-15-5) run: datamodel-codegen --profile events --check` ### Using uv[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#using-uv "Permanent link") If your project uses [uv](https://github.com/astral-sh/uv) , you can run the CLI via `uv run`. This example installs the tool ephemerally (no need to add it to your project dependencies): .github/workflows/ci.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-16-1) - name: Install uv [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-16-2) uses: astral-sh/setup-uv@v4 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-16-3)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-16-4) - name: Verify generated models are up-to-date [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-16-5) run: uv run --with datamodel-code-generator datamodel-codegen --profile api --check` * * * Pre-commit Hook[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#pre-commit-hook "Permanent link") ---------------------------------------------------------------------------------------------------------- You can use datamodel-code-generator as a [pre-commit](https://pre-commit.com/) hook to automatically check or regenerate models before commits. Tip Pin `rev` to a released tag (e.g., `vX.Y.Z`) to keep generated output stable and reproducible across developer machines and CI. ### With pyproject.toml (Recommended)[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#with-pyprojecttoml-recommended "Permanent link") Configure settings in `pyproject.toml` and use a simple pre-commit hook: .pre-commit-config.yaml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-1) repos: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-2) - repo: https://github.com/koxudaxi/datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-3) rev: vX.Y.Z [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-4) hooks: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-5) - id: datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-6) args: [--check] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-17-7) files: ^schemas/` ### With Profiles[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#with-profiles "Permanent link") For projects with multiple schemas using [named profiles](https://datamodel-code-generator.koxudaxi.dev/pyproject_toml/#named-profiles) : .pre-commit-config.yaml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-1) repos: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-2) - repo: https://github.com/koxudaxi/datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-3) rev: vX.Y.Z [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-4) hooks: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-5) - id: datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-6) name: Check API models [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-7) args: [--profile, api, --check] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-8) files: ^schemas/openapi/ [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-9) - id: datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-10) name: Check event models [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-11) args: [--profile, events, --check] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-18-12) files: ^schemas/jsonschema/` ### Auto-regenerate Mode[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#auto-regenerate-mode "Permanent link") This configuration automatically regenerates models when schema files change: .pre-commit-config.yaml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-1) repos: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-2) - repo: https://github.com/koxudaxi/datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-3) rev: vX.Y.Z [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-4) hooks: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-5) - id: datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-19-6) files: ^schemas/` Installing the hook Ensure `pre-commit` is installed, then install the hooks: `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-20-1) pip install pre-commit [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-20-2) pre-commit install` * * * GitLab CI[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#gitlab-ci "Permanent link") ---------------------------------------------------------------------------------------------- .gitlab-ci.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-1) check-generated-code: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-2) image: python:3.14 [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-3) script: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-4) - pip install datamodel-code-generator [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-5) - datamodel-codegen --check [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-6) rules: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-7) - changes: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-8) - schemas/**/* [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-21-9) - src/models/**/*` * * * Makefile Integration[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#makefile-integration "Permanent link") -------------------------------------------------------------------------------------------------------------------- Add targets to your Makefile for easy generation and checking: Makefile `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-1) .PHONY: generate-models check-models [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-2)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-3) generate-models: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-4) datamodel-codegen [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-5)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-6) check-models: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-22-7) datamodel-codegen --check` Then use in CI: .github/workflows/ci.yml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-23-1) - name: Check generated models [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-23-2) run: make check-models` For projects with multiple profiles: Makefile `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-1) .PHONY: generate-all check-all [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-2)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-3) generate-all: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-4) datamodel-codegen --profile api [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-5) datamodel-codegen --profile events [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-6)[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-7) check-all: [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-8) datamodel-codegen --profile api --check [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-24-9) datamodel-codegen --profile events --check` * * * Troubleshooting[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#troubleshooting "Permanent link") ---------------------------------------------------------------------------------------------------------- ### Check fails due to formatting differences[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#check-fails-due-to-formatting-differences "Permanent link") Ensure you're using the same formatters in CI as locally. Configure formatters in `pyproject.toml`: pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-25-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-25-2) formatters = ["ruff"]` See [Formatting](https://datamodel-code-generator.koxudaxi.dev/formatting/) for details. **Related:** [`--formatters`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#formatters) ### Check fails due to timestamp[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#check-fails-due-to-timestamp "Permanent link") Always use `disable-timestamp = true` in `pyproject.toml`: pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-26-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-26-2) disable-timestamp = true` **Related:** [`--disable-timestamp`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/template-customization/#disable-timestamp) ### Different Python versions produce different output[ยถ](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#different-python-versions-produce-different-output "Permanent link") Some type annotations differ between Python versions. Pin the target version in `pyproject.toml` and ensure CI uses the same Python version as development: pyproject.toml `[](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-27-1) [tool.datamodel-codegen] [](https://datamodel-code-generator.koxudaxi.dev/ci-cd/#__codelineno-27-2) target-python-version = "3.14"` **Related:** [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) --- # ๐Ÿท๏ธ Field Customization - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-customization) ๐Ÿท๏ธ Field Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-customization "Permanent link") ================================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#options "Permanent link") ------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--aliases`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases) | Apply custom field and class name aliases from JSON file. | | [`--capitalize-enum-members`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members) | Capitalize enum member names to UPPER\_CASE format. | | [`--default-values`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#default-values) | Override field default values from external JSON file. | | [`--empty-enum-field-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#empty-enum-field-name) | Name for empty string enum field values. | | [`--extra-fields`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#extra-fields) | Configure how generated models handle extra fields not defin... | | [`--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) | Generate Field() with validation constraints from schema. | | [`--field-extra-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys) | Include specific extra keys in Field() definitions. | | [`--field-extra-keys-without-x-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys-without-x-prefix) | Include schema extension keys in Field() without requiring '... | | [`--field-include-all-keys`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-include-all-keys) | Include all schema keys in Field() json\_schema\_extra. | | [`--field-type-collision-strategy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-type-collision-strategy) | Rename type class instead of field when names collide (Pydan... | | [`--no-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#no-alias) | Disable Field alias generation for non-Python-safe property ... | | [`--original-field-name-delimiter`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#original-field-name-delimiter) | Specify delimiter for original field names when using snake-... | | [`--remove-special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#remove-special-field-name-prefix) | Remove the special prefix from field names. | | [`--set-default-enum-member`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#set-default-enum-member) | Set the first enum member as the default value for enum fiel... | | [`--snake-case-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field) | Convert field names to snake\_case format. | | [`--special-field-name-prefix`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#special-field-name-prefix) | Prefix to add to special field names (like reserved keywords... | | [`--use-attribute-docstrings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-attribute-docstrings) | Generate field descriptions as attribute docstrings instead ... | | [`--use-enum-values-in-discriminator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-enum-values-in-discriminator) | Use enum values in discriminator mappings for union types. | | [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) | Include schema descriptions as Field docstrings. | | [`--use-field-description-example`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description-example) | Add field examples to docstrings. | | [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) | Add field descriptions as inline comments. | | [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) | Use schema description as class docstring. | | [`--use-serialization-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-serialization-alias) | Use serialization\_alias instead of alias for field aliasing ... | | [`--use-title-as-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-title-as-name) | Use schema title as the generated class name. | * * * `--aliases`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#aliases "Permanent link") -------------------------------------------------------------------------------------------------------------------------- Apply custom field and class name aliases from JSON file. The `--aliases` option allows renaming fields and classes via a JSON mapping file, providing fine-grained control over generated names independent of schema definitions. **See also:** [Field Aliases](https://datamodel-code-generator.koxudaxi.dev/aliases/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-0-1) datamodel-codegen --input schema.json --aliases openapi/aliases.json --target-python-version 3.10 # (1)!` 1. `--aliases` - the option documented here Examples OpenAPIJSON SchemaGraphQL **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-140) description: error result [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-157) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-1-179) $ref: '#/components/schemas/Event'` **Output:** Pydantic v1msgspec `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-11) id_: int = Field(..., alias='id') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-12) name_: str = Field(..., alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-21) id_: int = Field(..., alias='id') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-22) name_: str = Field(..., alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-44) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-45) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-46) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-47) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-48) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-49) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-50) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-51) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-53) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-54) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-58) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-59) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-62) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-63) name_: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-66) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-2-67) event: Event | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-2) # filename: api.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-7) from typing import Annotated, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-9) from msgspec import UNSET, Meta, Struct, UnsetType, field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-12) class Pet(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-13) id_: int = field(name='id') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-14) name_: str = field(name='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-15) tag: str | UnsetType = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-18) Pets: TypeAlias = list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-21) class User(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-22) id_: int = field(name='id') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-23) name_: str = field(name='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-24) tag: str | UnsetType = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-27) Users: TypeAlias = list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-30) Id: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-33) Rules: TypeAlias = list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-34) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-35)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-36) class Error(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-37) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-38) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-41) class Api(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-42) apiKey: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-43) Annotated[str, Meta(description='To be used as a dataset parameter value')] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-44) | UnsetType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-45) ) = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-46) apiVersionNumber: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-47) Annotated[str, Meta(description='To be used as a version parameter value')] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-48) | UnsetType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-49) ) = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-50) apiUrl: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-51) Annotated[str, Meta(description="The URL describing the dataset's fields")] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-52) | UnsetType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-53) ) = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-54) apiDocumentationUrl: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-55) Annotated[str, Meta(description='A URL to the API console for each API')] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-56) | UnsetType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-57) ) = UNSET [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-58) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-59)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-60) Apis: TypeAlias = list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-61) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-63) class Event(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-64) name_: str | UnsetType = field(name='name', default=UNSET) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-65) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-66)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-67) class Result(Struct): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-3-68) event: Event | UnsetType = UNSET` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-4) "title": "Root", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-9) "user": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-10) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-11) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-12) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-13) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-14) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-16) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-17) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-18) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-19) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-21) "address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-22) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-23) "title": "Address", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-24) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-25) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-26) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-27) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-28) "city": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-29) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-30) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-31) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-32) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-33) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-4-34) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-2) # filename: hierarchical_aliases.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-10) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-11) user_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-12) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-15) class Address(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-16) address_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-17) city: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-20) class Root(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-21) root_name: str | None = Field(None, alias='name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-22) user: User | None = Field(None, title='User') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-5-23) address: Address | None = Field(None, title='Address')` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-1) scalar DateTime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-3) type DateTimePeriod { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-4) from: DateTime! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-5) to: DateTime! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-6-6) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-2) # filename: field-aliases.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-7) from typing import Literal, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-17) DateTime: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-20) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-21) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-22) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-23) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-26) class DateTimePeriod(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-27) periodFrom: DateTime = Field(..., alias='from') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-28) periodTo: DateTime = Field(..., alias='to') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-29) typename__: Literal['DateTimePeriod'] | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-30) 'DateTimePeriod', alias='__typename' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-7-31) )`` * * * `--capitalize-enum-members`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------- Capitalize enum member names to UPPER\_CASE format. The `--capitalize-enum-members` flag converts enum member names to UPPER\_CASE format (e.g., `active` becomes `ACTIVE`), following Python naming conventions for constants. **Aliases:** `--capitalise-enum-members` | **Related:** [`--snake-case-field`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-8-1) datamodel-codegen --input schema.json --capitalize-enum-members # (1)!` 1. `--capitalize-enum-members` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-3) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-4) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-5) "snake_case", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-6) "CAP_CASE", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-7) "CamelCase", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-8) "UPPERCASE" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-9) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-9-10) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-2) # filename: many_case_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-10) class Model(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-11) SNAKE_CASE = 'snake_case' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-12) CAP_CASE = 'CAP_CASE' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-13) CAMEL_CASE = 'CamelCase' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-10-14) UPPERCASE = 'UPPERCASE'` * * * `--default-values`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#default-values "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------- Override field default values from external JSON file. The `--default-values` option allows specifying default values for fields via a JSON file. Supports scoped format (ClassName.field) for hierarchical overrides. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-11-1) datamodel-codegen --input schema.json --default-values default_values/scoped_defaults.json # (1)!` 1. `--default-values` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-4) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-7) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-8) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-10) "status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-11) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-13) "page": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-14) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-17) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-18) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-19) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-12-20) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-2) # filename: default_values_override.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-12) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-13) __root__: Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-16) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-17) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-18) status: str | None = 'active' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-13-19) page: int | None = 1` * * * `--empty-enum-field-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#empty-enum-field-name "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------ Name for empty string enum field values. The `--empty-enum-field-name` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-14-1) datamodel-codegen --input schema.json --empty-enum-field-name empty # (1)!` 1. `--empty-enum-field-name` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-3) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-4) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-5) true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-6) false, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-7) "", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-8) "\n", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-9) "\r\n", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-10) "\t", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-11) "\\x08", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-12) null, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-13) "\\" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-15-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-2) # filename: special_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-12) class ModelEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-13) True_ = True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-14) False_ = False [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-15) empty = '' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-16) field_ = '\n' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-17) field__ = '\r\n' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-18) field__1 = '\t' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-19) field_x08 = '\\x08' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-20) field__2 = '\\' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-23) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-16-24) __root__: ModelEnum | None = None` * * * `--extra-fields`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#extra-fields "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------ Configure how generated models handle extra fields not defined in schema. The `--extra-fields` flag sets the generated models to allow, forbid, or ignore extra fields. With `--extra-fields allow`, models will accept and store fields not defined in the schema. Options: allow, ignore, forbid. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-17-1) datamodel-codegen --input schema.json --extra-fields allow # (1)!` 1. `--extra-fields` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-1) type Person { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-2) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-3) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-4) height: Int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-5) mass: Int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-6) hair_color: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-7) skin_color: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-8) eye_color: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-9) birth_year: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-10) gender: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-12) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-13) homeworld_id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-14) homeworld: Planet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-15) species: [Species!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-16) species_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-17) films: [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-18) films_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-19) starships: [Starship!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-20) starships_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-21) vehicles: [Vehicle!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-22) vehicles_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-23) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-24)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-25) type Planet { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-26) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-27) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-28) rotation_period: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-29) orbital_period: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-30) diameter: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-31) climate: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-32) gravity: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-33) terrain: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-34) surface_water: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-35) population: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-37) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-38) residents: [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-39) residents_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-40) films: [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-41) films_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-42) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-43)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-44) type Species { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-45) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-46) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-47) classification: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-48) designation: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-49) average_height: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-50) skin_colors: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-51) hair_colors: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-52) eye_colors: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-53) average_lifespan: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-54) language: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-56) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-57) people: [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-58) people_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-59) films: [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-60) films_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-61) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-63) type Vehicle { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-64) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-65) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-66) model: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-67) manufacturer: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-68) cost_in_credits: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-69) length: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-70) max_atmosphering_speed: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-71) crew: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-72) passengers: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-73) cargo_capacity: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-74) consumables: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-75) vehicle_class: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-76) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-77) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-78) pilots: [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-79) pilots_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-80) films: [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-81) films_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-82) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-83)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-84) type Starship { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-85) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-86) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-87) model: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-88) manufacturer: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-89) cost_in_credits: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-90) length: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-91) max_atmosphering_speed: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-92) crew: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-93) passengers: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-94) cargo_capacity: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-95) consumables: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-96) hyperdrive_rating: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-97) MGLT: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-98) starship_class: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-99) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-100) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-101) pilots: [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-102) pilots_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-103) films: [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-104) films_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-105) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-106)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-107) type Film { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-108) id: ID! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-109) title: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-110) episode_id: Int! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-111) opening_crawl: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-112) director: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-113) producer: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-114) release_date: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-115) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-116) # Relationships [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-117) characters: [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-118) characters_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-119) planets: [Planet!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-120) planets_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-121) starships: [Starship!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-122) starships_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-123) vehicles: [Vehicle!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-124) vehicles_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-125) species: [Species!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-126) species_ids: [ID!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-127) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-128)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-129) type Query { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-130) planet(id: ID!): Planet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-131) listPlanets(page: Int): [Planet!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-132) person(id: ID!): Person [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-133) listPeople(page: Int): [Person!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-134) species(id: ID!): Species [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-135) listSpecies(page: Int): [Species!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-136) film(id: ID!): Film [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-137) listFilms(page: Int): [Film!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-138) starship(id: ID!): Starship [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-139) listStarships(page: Int): [Starship!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-140) vehicle(id: ID!): Vehicle [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-141) listVehicles(page: Int): [Vehicle!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-18-142) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-2) # filename: simple-star-wars.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-7) from typing import Literal, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-9) from pydantic import BaseModel, Extra, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-17) ID: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-18) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-19) The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-23) Int: TypeAlias = int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-24) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-25) The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-26) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-29) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-30) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-31) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-32) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-35) class Film(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-36) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-37) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-38) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-39) characters: list[Person] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-40) characters_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-41) director: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-42) episode_id: Int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-43) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-44) opening_crawl: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-45) planets: list[Planet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-46) planets_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-47) producer: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-48) release_date: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-49) species: list[Species] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-50) species_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-51) starships: list[Starship] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-52) starships_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-53) title: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-54) vehicles: list[Vehicle] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-55) vehicles_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-56) typename__: Literal['Film'] | None = Field('Film', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-57) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-58)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-59) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-60) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-61) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-62) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-63) birth_year: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-64) eye_color: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-65) films: list[Film] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-66) films_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-67) gender: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-68) hair_color: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-69) height: Int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-70) homeworld: Planet | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-71) homeworld_id: ID | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-72) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-73) mass: Int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-74) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-75) skin_color: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-76) species: list[Species] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-77) species_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-78) starships: list[Starship] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-79) starships_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-80) vehicles: list[Vehicle] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-81) vehicles_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-82) typename__: Literal['Person'] | None = Field('Person', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-83) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-84)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-85) class Planet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-86) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-87) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-88) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-89) climate: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-90) diameter: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-91) films: list[Film] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-92) films_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-93) gravity: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-94) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-95) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-96) orbital_period: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-97) population: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-98) residents: list[Person] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-99) residents_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-100) rotation_period: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-101) surface_water: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-102) terrain: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-103) typename__: Literal['Planet'] | None = Field('Planet', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-104) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-105)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-106) class Species(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-107) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-108) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-109) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-110) average_height: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-111) average_lifespan: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-112) classification: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-113) designation: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-114) eye_colors: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-115) films: list[Film] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-116) films_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-117) hair_colors: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-118) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-119) language: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-120) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-121) people: list[Person] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-122) people_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-123) skin_colors: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-124) typename__: Literal['Species'] | None = Field('Species', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-125) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-126)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-127) class Starship(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-128) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-129) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-130) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-131) MGLT: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-132) cargo_capacity: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-133) consumables: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-134) cost_in_credits: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-135) crew: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-136) films: list[Film] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-137) films_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-138) hyperdrive_rating: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-139) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-140) length: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-141) manufacturer: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-142) max_atmosphering_speed: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-143) model: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-144) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-145) passengers: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-146) pilots: list[Person] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-147) pilots_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-148) starship_class: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-149) typename__: Literal['Starship'] | None = Field('Starship', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-150) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-151)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-152) class Vehicle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-153) class Config: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-154) extra = Extra.allow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-155) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-156) cargo_capacity: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-157) consumables: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-158) cost_in_credits: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-159) crew: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-160) films: list[Film] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-161) films_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-162) id: ID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-163) length: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-164) manufacturer: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-165) max_atmosphering_speed: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-166) model: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-167) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-168) passengers: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-169) pilots: list[Person] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-170) pilots_ids: list[ID] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-171) vehicle_class: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-172) typename__: Literal['Vehicle'] | None = Field('Vehicle', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-173) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-174)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-175) Film.update_forward_refs() [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-19-176) Person.update_forward_refs()`` * * * `--field-constraints`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------- Generate Field() with validation constraints from schema. The `--field-constraints` flag generates Pydantic Field() definitions with validation constraints (min/max length, pattern, etc.) from the schema. Output differs between Pydantic v1 and v2 due to API changes. **Related:** [`--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) **See also:** [Field Constraints](https://datamodel-code-generator.koxudaxi.dev/field-constraints/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-20-1) datamodel-codegen --input schema.json --field-constraints # (1)!` 1. `--field-constraints` - the option documented here Examples OpenAPIJSON Schema **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-24) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-25) maximum: 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-26) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-27) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-28) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-29) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-30) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-31) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-32) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-33) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-34) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-35) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-36) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-37) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-38) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-39) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-40) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-41) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-42) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-43) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-44) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-45) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-46) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-47) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-48) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-49) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-50) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-51) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-52) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-53) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-54) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-55) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-56) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-57) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-58) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-59) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-60) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-61) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-62) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-63) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-64) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-65) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-66) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-67) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-68) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-69) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-70) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-71) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-72) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-73) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-74) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-75) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-76) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-77) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-78) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-79) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-80) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-81) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-82) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-83) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-84) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-85) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-86) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-87) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-88) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-89) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-90) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-91) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-92) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-93) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-94) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-95) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-96) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-97) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-98) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-99) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-100) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-101) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-102) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-103) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-104) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-105) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-106) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-107) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-108) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-109) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-110) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-111) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-112) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-113) maximum: 9223372036854775807 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-114) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-115) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-116) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-117) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-118) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-119) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-120) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-121) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-122) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-123) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-124) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-125) minItems: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-126) uniqueItems: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-127) UID: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-129) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-130) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-131) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-132) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-133) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-134) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-135) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-136) - uid [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-137) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-138) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-139) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-140) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-141) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-142) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-144) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-145) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-146) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-147) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-148) uid: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-149) $ref: '#/components/schemas/UID' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-150) phones: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-153) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-154) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-155) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-156) fax: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-157) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-158) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-160) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-161) height: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-162) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-163) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-164) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-165) minimum: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-166) maximum: 300 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-167) weight: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-168) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-169) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-170) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-171) minimum: 1.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-172) maximum: 1000.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-173) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-174) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-175) minimum: 0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-176) maximum: 200.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-177) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-178) rating: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-179) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-180) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-181) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-182) maximum: 5 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-183) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-184) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-185) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-186) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-187) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-188) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-189) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-190) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-191) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-192) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-193) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-194) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-195) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-196) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-197) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-198) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-200) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-201) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-202) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-203) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-204) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-205) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-206) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-207) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-208) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-209) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-210) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-211) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-212) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-213) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-214) minLength: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-215) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-216) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-217) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-218) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-219) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-220) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-225) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-226) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-228) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-21-229) $ref: '#/components/schemas/Event'` **Output:** Pydantic v1Pydantic v2 `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-2) # filename: api_constrained.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-11) id: int = Field(..., ge=0, le=9223372036854775807) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-12) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-13) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-17) __root__: list[Pet] = Field(..., max_items=10, min_items=1, unique_items=True) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-20) class UID(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-21) __root__: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-24) class Phone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-25) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-28) class FaxItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-29) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-32) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-33) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-34) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-35) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-36) uid: UID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-37) phones: list[Phone] | None = Field(None, max_items=10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-38) fax: list[FaxItem] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-39) height: int | float | None = Field(None, ge=1.0, le=300.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-40) weight: float | int | None = Field(None, ge=1.0, le=1000.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-41) age: int | None = Field(None, gt=0, le=200) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-42) rating: float | None = Field(None, gt=0.0, le=5.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-43) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-44)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-45) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-46) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-47) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-48)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-49) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-50) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-51) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-52)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-53) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-54) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-56)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-57) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-58) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-59) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-62) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-63) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-64) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-65) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-66) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-67) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-68) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-69) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-70) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-71) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-72) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-73) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-74) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-77) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-78) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-79) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-81) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-82) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-83) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-84)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-85) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-22-86) event: Event | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-2) # filename: api_constrained.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-7) from pydantic import AnyUrl, BaseModel, Field, RootModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-11) id: int = Field(..., ge=0, le=9223372036854775807) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-12) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-13) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-16) class Pets(RootModel[list[Pet]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-17) root: list[Pet] = Field(..., max_length=10, min_length=1) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-20) class UID(RootModel[int]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-21) root: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-24) class Phone(RootModel[str]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-25) root: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-28) class FaxItem(RootModel[str]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-29) root: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-32) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-33) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-34) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-35) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-36) uid: UID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-37) phones: list[Phone] | None = Field(None, max_length=10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-38) fax: list[FaxItem] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-39) height: int | float | None = Field(None, ge=1.0, le=300.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-40) weight: float | int | None = Field(None, ge=1.0, le=1000.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-41) age: int | None = Field(None, gt=0, le=200) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-42) rating: float | None = Field(None, gt=0.0, le=5.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-43) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-44)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-45) class Users(RootModel[list[User]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-46) root: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-47) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-48)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-49) class Id(RootModel[str]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-50) root: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-51) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-52)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-53) class Rules(RootModel[list[str]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-54) root: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-56)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-57) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-58) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-59) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-62) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-63) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-64) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-65) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-66) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-67) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-68) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-69) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-70) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-71) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-72) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-73) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-74) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-77) class Apis(RootModel[list[Api]]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-78) root: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-79) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-81) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-82) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-83) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-84)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-85) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-23-86) event: Event | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-8) "example": "ken" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-10) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-11) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-13) "salary": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-14) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-15) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-17) "debt" : { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-18) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-19) "maximum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-21) "loan" : { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-22) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-23) "maximum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-24) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-25) "tel": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-26) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-27) "pattern": "^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-28) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-29) "height": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-30) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-31) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-32) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-33) "weight": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-34) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-35) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-37) "score": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-38) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-39) "minimum": 1e-08 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-40) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-41) "active": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-42) "type": "boolean" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-43) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-44) "photo": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-45) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-46) "format": "binary", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-47) "minLength": 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-48) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-49) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-24-50) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-2) # filename: strict_types.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-7) from pydantic import ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-8) BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-9) Field, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-10) StrictBool, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-11) StrictBytes, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-12) StrictFloat, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-13) StrictInt, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-14) StrictStr, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-15) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-18) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-19) name: StrictStr | None = Field(None, example='ken') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-20) age: StrictInt | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-21) salary: StrictInt | None = Field(None, ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-22) debt: StrictInt | None = Field(None, le=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-23) loan: StrictFloat | None = Field(None, le=0.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-24) tel: StrictStr | None = Field(None, regex='^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-25) height: StrictFloat | None = Field(None, ge=0.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-26) weight: StrictFloat | None = Field(None, ge=0.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-27) score: StrictFloat | None = Field(None, ge=1e-08) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-28) active: StrictBool | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-25-29) photo: StrictBytes | None = Field(None, min_length=100)` * * * `--field-extra-keys`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------- Include specific extra keys in Field() definitions. The `--field-extra-keys` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-26-1) datamodel-codegen --input schema.json --field-extra-keys key2 --field-extra-keys-without-x-prefix x-repr # (1)!` 1. `--field-extra-keys` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-3) "title": "Extras", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-8) "description": "normal key", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-9) "key1": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-10) "key2": 456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-11) "$exclude": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-12) "invalid-key-1": "abc", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-13) "-invalid+key_2": "efg", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-14) "$comment": "comment", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-15) "$id": "#name", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-16) "register": "hij", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-17) "schema": "klm", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-18) "x-repr": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-19) "x-abc": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-20) "example": "example", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-21) "readOnly": true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-22) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-23) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-24) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-25) "example": 12, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-26) "writeOnly": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-27) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-28) 13, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-29) 20 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-30) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-31) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-32) "status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-33) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-34) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-35) "active" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-36) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-37) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-27-39) }` **Output:** Pydantic v1Pydantic v2 `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-2) # filename: extras.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-10) class Extras(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-11) name: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-12) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-13) description='normal key', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-14) example='example', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-15) invalid_key_1='abc', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-16) key2=456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-17) repr=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-18) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-19) age: int | None = Field(None, example=12, examples=[13, 20]) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-28-20) status: str | None = Field(None, examples=['active'])` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-2) # filename: extras.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-10) class Extras(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-11) name: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-12) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-13) description='normal key', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-14) examples=['example'], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-15) json_schema_extra={'key2': 456, 'invalid-key-1': 'abc'}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-16) repr=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-17) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-18) age: int | None = Field(None, examples=[13, 20], json_schema_extra={'example': 12}) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-29-19) status: str | None = Field(None, examples=['active'])` * * * `--field-extra-keys-without-x-prefix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-extra-keys-without-x-prefix "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Include schema extension keys in Field() without requiring 'x-' prefix. The --field-extra-keys-without-x-prefix option allows you to specify custom schema extension keys that should be included in Pydantic Field() extras without the 'x-' prefix requirement. For example, 'x-repr' in the schema becomes 'repr' in Field(). This is useful for custom schema extensions and vendor-specific metadata. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-30-1) datamodel-codegen --input schema.json --field-include-all-keys --field-extra-keys-without-x-prefix x-repr # (1)!` 1. `--field-extra-keys-without-x-prefix` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-3) "title": "Extras", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-8) "description": "normal key", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-9) "key1": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-10) "key2": 456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-11) "$exclude": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-12) "invalid-key-1": "abc", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-13) "-invalid+key_2": "efg", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-14) "$comment": "comment", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-15) "$id": "#name", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-16) "register": "hij", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-17) "schema": "klm", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-18) "x-repr": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-19) "x-abc": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-20) "example": "example", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-21) "readOnly": true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-22) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-23) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-24) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-25) "example": 12, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-26) "writeOnly": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-27) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-28) 13, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-29) 20 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-30) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-31) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-32) "status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-33) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-34) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-35) "active" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-36) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-37) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-31-39) }` **Output:** Pydantic v1Pydantic v2 `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-2) # filename: extras.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-10) class Extras(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-11) name: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-12) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-13) description='normal key', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-14) example='example', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-15) field_comment='comment', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-16) field_exclude=123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-17) field_invalid_key_2='efg', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-18) invalid_key_1='abc', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-19) key1=123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-20) key2=456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-21) readOnly=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-22) register_='hij', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-23) repr=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-24) schema_='klm', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-25) x_abc=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-26) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-27) age: int | None = Field(None, example=12, examples=[13, 20], writeOnly=True) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-32-28) status: str | None = Field(None, examples=['active'])` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-2) # filename: extras.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-10) class Extras(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-11) name: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-12) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-13) description='normal key', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-14) examples=['example'], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-15) json_schema_extra={ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-16) 'key1': 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-17) 'key2': 456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-18) '$exclude': 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-19) 'invalid-key-1': 'abc', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-20) '-invalid+key_2': 'efg', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-21) '$comment': 'comment', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-22) 'register': 'hij', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-23) 'schema': 'klm', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-24) 'x-abc': True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-25) 'readOnly': True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-26) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-27) repr=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-28) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-29) age: int | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-30) None, examples=[13, 20], json_schema_extra={'example': 12, 'writeOnly': True} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-31) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-33-32) status: str | None = Field(None, examples=['active'])` * * * `--field-include-all-keys`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-include-all-keys "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------- Include all schema keys in Field() json\_schema\_extra. The `--field-include-all-keys` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-34-1) datamodel-codegen --input schema.json --field-include-all-keys # (1)!` 1. `--field-include-all-keys` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-6) "firstName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-8) "description": "The person's first name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-10) "lastName": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-11) "type": ["string", "null"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-12) "description": "The person's last name." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-14) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-15) "description": "Age in years which must be equal to or greater than zero.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-16) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-17) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-18) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-19) "friends": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-20) "type": "array" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-22) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-23) "type": "null" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-35-26) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-2) # filename: person.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-9) from pydantic import BaseModel, Field, conint [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-12) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-13) firstName: str | None = Field(None, description="The person's first name.") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-14) lastName: str | None = Field(None, description="The person's last name.") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-15) age: conint(ge=0) | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-16) None, description='Age in years which must be equal to or greater than zero.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-17) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-18) friends: list[Any] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-36-19) comment: None = None` * * * `--field-type-collision-strategy`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-type-collision-strategy "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Rename type class instead of field when names collide (Pydantic v2 only). The `--field-type-collision-strategy` flag controls how field name and type name collisions are resolved. With `rename-type`, the type class is renamed with a suffix to preserve the original field name, instead of renaming the field and adding an alias. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-37-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --field-type-collision-strategy rename-type # (1)!` 1. `--field-type-collision-strategy` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-2) "title": "Test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-5) "TestObject": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-6) "title": "TestObject", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-7) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-8) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-9) "test_string": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-11) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-12) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-38-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-2) # filename: field_has_same_name.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-10) class TestObject_1(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-11) test_string: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-12) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-13)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-14) class Test(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-39-15) TestObject: TestObject_1 | None = Field(None, title='TestObject')` * * * `--no-alias`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#no-alias "Permanent link") ---------------------------------------------------------------------------------------------------------------------------- Disable Field alias generation for non-Python-safe property names. The `--no-alias` flag disables automatic alias generation when JSON property names contain characters invalid in Python (like hyphens). Without this flag, fields are renamed to Python-safe names with `Field(alias='original-name')`. With this flag, only Python-safe names are used without aliases. **See also:** [Field Aliases](https://datamodel-code-generator.koxudaxi.dev/aliases/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-40-1) datamodel-codegen --input schema.json --no-alias # (1)!` 1. `--no-alias` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-6) "first-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-9) "last-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-12) "email_address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-16) "required": ["first-name", "last-name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-41-17) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-2) # filename: no_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-11) first_name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-12) last_name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-42-13) email_address: str | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-2) # filename: no_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-11) first_name: str = Field(..., alias='first-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-12) last_name: str = Field(..., alias='last-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-43-13) email_address: str | None = None` * * * `--original-field-name-delimiter`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#original-field-name-delimiter "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Specify delimiter for original field names when using snake-case conversion. The `--original-field-name-delimiter` option works with `--snake-case-field` to specify the delimiter used in original field names. This is useful when field names contain delimiters like spaces or hyphens that should be treated as word boundaries during snake\_case conversion. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-44-1) datamodel-codegen --input schema.json --snake-case-field --original-field-name-delimiter " " # (1)!` 1. `--original-field-name-delimiter` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-5) "SpaceIF": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-6) "$ref": "#/definitions/SpaceIF" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-7) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-9) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-10) "SpaceIF": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-11) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-12) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-13) "Space Field" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-16) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-45-17) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-2) # filename: space_field_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-12) class SpaceIF(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-13) space_field = 'Space Field' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-16) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-46-17) space_if: SpaceIF | None = Field(None, alias='SpaceIF')` * * * `--remove-special-field-name-prefix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#remove-special-field-name-prefix "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Remove the special prefix from field names. The `--remove-special-field-name-prefix` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-47-1) datamodel-codegen --input schema.json --remove-special-field-name-prefix # (1)!` 1. `--remove-special-field-name-prefix` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-2) "$id": "schema_v2.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-3) "$schema": "http://json-schema.org/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-4) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-7) "@id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-8) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-9) "format": "uri", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-10) "pattern": "^http.*$", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-11) "title": "Id must be presesnt and must be a URI" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-13) "@type": { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-14) "@+!type": { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-15) "@-!type": { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-16) "profile": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-18) "required": ["@id", "@type"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-48-19) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-2) # filename: special_prefix_model.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-10) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-11) id: AnyUrl = Field(..., alias='@id', title='Id must be presesnt and must be a URI') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-12) type: str = Field(..., alias='@type') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-13) type_1: str | None = Field(None, alias='@+!type') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-14) type_2: str | None = Field(None, alias='@-!type') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-49-15) profile: str | None = None` * * * `--set-default-enum-member`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#set-default-enum-member "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------- Set the first enum member as the default value for enum fields. The `--set-default-enum-member` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-50-1) datamodel-codegen --input schema.json --reuse-model --set-default-enum-member # (1)!` 1. `--set-default-enum-member` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-2) "$schema": "http://json-schema.org/draft-07/schema", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-9) "animal": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-10) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-11) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-12) "dog", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-13) "cat", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-14) "snake" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-15) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-16) "default": "dog" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-18) "pet": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-20) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-21) "dog", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-22) "cat", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-23) "snake" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-24) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-25) "default": "cat" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-26) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-27) "redistribute": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-28) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-29) "items": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-30) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-31) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-32) "static", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-33) "connected" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-34) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-36) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-37) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-38) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-39) "redistribute": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-40) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-41) "items": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-42) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-43) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-44) "static", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-45) "connected" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-46) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-47) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-48) "description": "Redistribute type for routes." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-49) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-50) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-51-51) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-2) # filename: duplicate_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-12) class Animal(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-13) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-14) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-15) snake = 'snake' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-18) class RedistributeEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-19) static = 'static' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-20) connected = 'connected' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-23) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-24) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-25) animal: Animal | None = Animal.dog [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-26) pet: Animal | None = Animal.cat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-27) redistribute: list[RedistributeEnum] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-30) class Redistribute(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-31) __root__: list[RedistributeEnum] = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-32) ..., description='Redistribute type for routes.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-52-33) )` * * * `--snake-case-field`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#snake-case-field "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------- Convert field names to snake\_case format. The `--snake-case-field` flag converts camelCase or PascalCase field names to snake\_case format in the generated Python code, following Python naming conventions (PEP 8). **Related:** [`--capitalize-enum-members`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#capitalize-enum-members) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-53-1) datamodel-codegen --input schema.json --snake-case-field # (1)!` 1. `--snake-case-field` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-3) "title": "InvalidEnum", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-4) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-5) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-6) "1 value", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-7) " space", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-8) "*- special", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-9) "schema", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-10) "MRO", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-11) "mro" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-12) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-54-13) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-2) # filename: invalid_enum_name.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-10) class InvalidEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-11) field_1_value = '1 value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-12) field_space = ' space' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-13) field___special = '*- special' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-14) schema = 'schema' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-15) mro_1 = 'MRO' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-55-16) mro_ = 'mro'` * * * `--special-field-name-prefix`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#special-field-name-prefix "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------------- Prefix to add to special field names (like reserved keywords). The `--special-field-name-prefix` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-56-1) datamodel-codegen --input schema.json --special-field-name-prefix special # (1)!` 1. `--special-field-name-prefix` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-3) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-4) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-5) true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-6) false, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-7) "", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-8) "\n", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-9) "\r\n", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-10) "\t", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-11) "\\x08", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-12) null, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-13) "\\" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-57-15) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-2) # filename: special_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-12) class ModelEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-13) True_ = True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-14) False_ = False [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-15) special_ = '' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-16) special__1 = '\n' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-17) special__ = '\r\n' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-18) special__2 = '\t' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-19) special_x08 = '\\x08' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-20) special__3 = '\\' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-23) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-58-24) __root__: ModelEnum | None = None` * * * `--use-attribute-docstrings`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-attribute-docstrings "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------ Generate field descriptions as attribute docstrings instead of Field descriptions. The `--use-attribute-docstrings` flag places field descriptions in Python docstring format (PEP 224 attribute docstrings) rather than in Field(..., description=...). This provides better IDE support for hovering over attributes. Requires `--use-field-description` to be enabled. **Related:** [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-59-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --use-field-description --use-attribute-docstrings # (1)!` 1. `--use-attribute-docstrings` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-4) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-8) "description": "The person's full name" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-10) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-11) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-12) "description": "The person's age in years" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-14) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-15) "required": ["name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-60-16) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-2) # filename: use_attribute_docstrings_test.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-7) from pydantic import BaseModel, ConfigDict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-11) model_config = ConfigDict( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-12) use_attribute_docstrings=True, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-13) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-14) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-15) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-16) The person's full name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-17) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-18) age: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-20) The person's age in years [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-61-21) """` * * * `--use-enum-values-in-discriminator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-enum-values-in-discriminator "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use enum values in discriminator mappings for union types. The `--use-enum-values-in-discriminator` flag configures the code generation behavior. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-62-1) datamodel-codegen --input schema.json --use-enum-values-in-discriminator --output-model-type pydantic_v2.BaseModel # (1)!` 1. `--use-enum-values-in-discriminator` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-2) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-3) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-4) Request: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-5) oneOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-6) - $ref: '#/components/schemas/RequestV1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-7) - $ref: '#/components/schemas/RequestV2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-8) discriminator: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-9) propertyName: version [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-10) mapping: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-11) v1: '#/components/schemas/RequestV1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-12) v2: '#/components/schemas/RequestV2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-14) RequestVersionEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-15) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-16) description: this is not included! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-17) title: no title! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-18) enum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-19) - v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-20) - v2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-21) RequestBase: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-22) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-23) version: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-24) $ref: '#/components/schemas/RequestVersionEnum' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-25) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-26) - version [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-28) RequestV1: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-29) allOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-30) - $ref: '#/components/schemas/RequestBase' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-31) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-32) request_id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-33) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-34) title: test title [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-35) description: there is description [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-36) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-37) - request_id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-38) RequestV2: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-39) allOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-63-40) - $ref: '#/components/schemas/RequestBase'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-2) # filename: discriminator_enum.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-8) from typing import Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-10) from pydantic import BaseModel, Field, RootModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-13) class RequestVersionEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-14) v1 = 'v1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-15) v2 = 'v2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-18) class RequestBase(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-19) version: RequestVersionEnum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-22) class RequestV1(RequestBase): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-23) request_id: str = Field(..., description='there is description', title='test title') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-24) version: Literal[RequestVersionEnum.v1] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-27) class RequestV2(RequestBase): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-28) version: Literal[RequestVersionEnum.v2] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-31) class Request(RootModel[RequestV1 | RequestV2]): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-64-32) root: RequestV1 | RequestV2 = Field(..., discriminator='version')` * * * `--use-field-description`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------ Include schema descriptions as Field docstrings. The `--use-field-description` flag extracts the `description` property from schema fields and includes them as docstrings or Field descriptions in the generated models, preserving documentation from the original schema. **Related:** [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) , [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-65-1) datamodel-codegen --input schema.json --use-type-alias --use-field-description # (1)!` 1. `--use-field-description` - the option documented here Examples OpenAPIJSON Schema **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-140) description: "error result.\nNow with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-157) description: "To be used as a dataset parameter value.\nNow also with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-66-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-2) # filename: api_multiline_docstrings.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-3) # timestamp: 2022-11-11T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-7) from pydantic import AnyUrl, BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-44) apiKey: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-45) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-46) To be used as a dataset parameter value. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-47) Now also with multi-line docstrings. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-48) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-49) apiVersionNumber: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-50) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-51) To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-52) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-53) apiUrl: AnyUrl | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-54) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-55) The URL describing the dataset's fields [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-56) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-57) apiDocumentationUrl: AnyUrl | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-58) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-59) A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-60) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-61) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-63) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-64) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-65) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-66)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-67) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-68) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-69) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-70)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-71) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-67-72) event: Event | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-4) "SimpleString": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-5) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-6) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-7) "UnionType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-8) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-9) {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-10) {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-11) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-13) "ArrayType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-14) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-15) "items": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-17) "AnnotatedType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-18) "title": "MyAnnotatedType", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-19) "description": "An annotated union type", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-20) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-21) {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-22) {"type": "boolean"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-23) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-24) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-25) "ModelWithTypeAliasField": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-26) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-27) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-28) "simple_field": {"$ref": "#/definitions/SimpleString"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-29) "union_field": {"$ref": "#/definitions/UnionType"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-30) "array_field": {"$ref": "#/definitions/ArrayType"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-31) "annotated_field": {"$ref": "#/definitions/AnnotatedType"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-32) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-33) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-34) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-68-35) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-2) # filename: type_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-7) from typing import Annotated, Any, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-11) Model: TypeAlias = Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-12) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-13)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-14) SimpleString: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-17) UnionType: TypeAlias = str | int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-20) ArrayType: TypeAlias = list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-23) AnnotatedType: TypeAlias = Annotated[str | bool, Field(..., title='MyAnnotatedType')] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-24) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-25) An annotated union type [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-26) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-29) class ModelWithTypeAliasField(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-30) simple_field: SimpleString | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-31) union_field: UnionType | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-32) array_field: ArrayType | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-69-33) annotated_field: AnnotatedType | None = None` * * * `--use-field-description-example`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description-example "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Add field examples to docstrings. The `--use-field-description-example` flag adds the `example` or `examples` property from schema fields as docstrings. This provides documentation that is visible in IDE intellisense. **Related:** [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) , [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-70-1) datamodel-codegen --input schema.json --use-field-description-example # (1)!` 1. `--use-field-description-example` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-3) "title": "Extras", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-8) "description": "normal key", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-9) "key1": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-10) "key2": 456, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-11) "$exclude": 123, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-12) "invalid-key-1": "abc", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-13) "-invalid+key_2": "efg", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-14) "$comment": "comment", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-15) "$id": "#name", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-16) "register": "hij", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-17) "schema": "klm", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-18) "x-repr": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-19) "x-abc": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-20) "example": "example", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-21) "readOnly": true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-22) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-23) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-24) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-25) "example": 12, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-26) "writeOnly": true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-27) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-28) 13, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-29) 20 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-30) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-31) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-32) "status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-33) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-34) "examples": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-35) "active" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-36) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-37) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-71-39) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-2) # filename: extras.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-3) # timestamp: 2022-11-11T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-10) class Extras(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-11) name: str | None = Field(None, description='normal key', example='example') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-13) Example: 'example' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-15) age: int | None = Field(None, example=12, examples=[13, 20]) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-16) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-17) Examples: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-18) - 13 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-19) - 20 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-21) status: str | None = Field(None, examples=['active']) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-22) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-23) Example: 'active' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-72-24) """` * * * `--use-inline-field-description`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------------------- Add field descriptions as inline comments. The `--use-inline-field-description` flag adds the `description` property from schema fields as inline comments after each field definition. This provides documentation without using Field() wrappers. **Related:** [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) , [`--use-schema-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-73-1) datamodel-codegen --input schema.json --use-inline-field-description # (1)!` 1. `--use-inline-field-description` - the option documented here Examples OpenAPIJSON Schema **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-140) description: "error result.\nNow with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-157) description: "To be used as a dataset parameter value.\nNow also with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-74-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-2) # filename: api_multiline_docstrings.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-3) # timestamp: 2022-11-11T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-39) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-40) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-41) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-42)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-43) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-44) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-45) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-46) description='To be used as a dataset parameter value.\nNow also with multi-line docstrings.', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-47) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-48) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-49) To be used as a dataset parameter value. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-50) Now also with multi-line docstrings. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-51) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-52) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-53) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-54) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-56) """To be used as a version parameter value""" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-57) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-58) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-59) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-60) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-61) """The URL describing the dataset's fields""" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-62) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-63) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-64) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-65) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-66) """A URL to the API console for each API""" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-67) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-68)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-69) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-70) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-71) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-72)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-73) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-74) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-77) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-75-78) event: Event | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-3) "title": "MultilineDescriptionWithExample", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-8) "description": "User name.\nThis is a multi-line description.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-9) "example": "John Doe" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-10) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-11) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-76-12) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-2) # filename: multiline_description_with_example.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-3) # timestamp: 2022-11-11T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-10) class MultilineDescriptionWithExample(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-11) name: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-12) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-13) description='User name.\nThis is a multi-line description.', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-14) example='John Doe', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-15) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-16) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-17) User name. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-18) This is a multi-line description. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-20) Example: 'John Doe' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-77-21) """` * * * `--use-schema-description`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-schema-description "Permanent link") -------------------------------------------------------------------------------------------------------------------------------------------------------- Use schema description as class docstring. The `--use-schema-description` flag extracts the `description` property from schema definitions and adds it as a docstring to the generated class. This is useful for preserving documentation from your schema in the generated code. **Related:** [`--use-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-field-description) , [`--use-inline-field-description`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-inline-field-description) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-78-1) datamodel-codegen --input schema.json --use-schema-description # (1)!` 1. `--use-schema-description` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-48) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-49) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-50) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-51) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-52) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-53) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-54) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-55) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-56) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-57) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-58) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-59) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-60) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-61) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-62) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-63) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-64) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-65) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-66) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-67) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-68) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-69) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-70) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-71) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-72) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-73) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-74) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-75) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-76) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-77) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-78) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-79) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-80) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-81) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-82) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-83) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-84) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-85) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-86) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-87) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-88) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-89) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-90) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-91) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-92) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-93) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-94) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-95) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-96) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-97) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-98) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-99) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-100) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-101) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-102) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-103) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-104) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-105) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-106) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-107) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-108) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-109) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-110) default: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-111) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-112) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-113) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-114) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-115) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-116) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-117) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-118) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-119) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-120) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-121) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-122) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-123) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-124) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-125) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-126) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-127) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-128) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-129) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-130) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-131) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-132) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-133) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-134) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-135) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-136) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-137) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-138) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-139) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-140) description: "error result.\nNow with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-141) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-142) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-143) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-144) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-145) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-146) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-147) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-148) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-149) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-150) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-153) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-154) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-155) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-156) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-157) description: "To be used as a dataset parameter value.\nNow also with multi-line docstrings." [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-158) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-160) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-161) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-162) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-163) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-164) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-165) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-166) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-167) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-168) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-169) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-170) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-171) description: Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-172) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-173) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-174) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-175) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-176) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-177) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-178) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-79-179) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-2) # filename: api_multiline_docstrings.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-11) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-13) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-17) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-21) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-22) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-23) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-26) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-27) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-30) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-31) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-34) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-35) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-38) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-39) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-40) error result. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-41) Now with multi-line docstrings. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-42) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-43) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-44) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-45) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-46) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-47)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-48) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-49) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-50) None, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-51) description='To be used as a dataset parameter value.\nNow also with multi-line docstrings.', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-52) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-53) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-54) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-55) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-56) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-57) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-58) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-59) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-60) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-61) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-62) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-63)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-64) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-65) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-66) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-67)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-68) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-69) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-70) Event object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-71) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-72) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-73) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-74) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-75)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-76) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-80-77) event: Event | None = None` * * * `--use-serialization-alias`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-serialization-alias "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------------------- Use serialization\_alias instead of alias for field aliasing (Pydantic v2 only). The `--use-serialization-alias` flag changes field aliasing to use `serialization_alias` instead of `alias`. This allows setting values using the Pythonic field name while serializing to the original JSON property name. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-81-1) datamodel-codegen --input schema.json --use-serialization-alias --output-model-type pydantic_v2.BaseModel # (1)!` 1. `--use-serialization-alias` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-3) "title": "Person", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-6) "first-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-9) "last-name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-10) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-12) "email_address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-13) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-14) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-16) "required": ["first-name", "last-name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-82-17) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-2) # filename: no_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-11) first_name: str = Field(..., serialization_alias='first-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-12) last_name: str = Field(..., serialization_alias='last-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-83-13) email_address: str | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-2) # filename: no_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-7) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-10) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-11) first_name: str = Field(..., alias='first-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-12) last_name: str = Field(..., alias='last-name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-84-13) email_address: str | None = None` * * * `--use-title-as-name`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#use-title-as-name "Permanent link") ---------------------------------------------------------------------------------------------------------------------------------------------- Use schema title as the generated class name. The `--use-title-as-name` flag uses the `title` property from the schema as the class name instead of deriving it from the property name or path. This is useful when schemas have descriptive titles that should be preserved. **Related:** [`--class-name`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#class-name) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-85-1) datamodel-codegen --input schema.json --use-title-as-name # (1)!` 1. `--use-title-as-name` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-4) "ProcessingStatus": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-5) "title": "Processing Status Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-6) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-7) "COMPLETED", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-8) "PENDING", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-9) "FAILED" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-10) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-11) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-12) "description": "The processing status" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-14) "kind": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-15) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-17) "ExtendedProcessingTask": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-18) "title": "Extended Processing Task Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-19) "oneOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-20) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-21) "$ref": "#" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-22) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-23) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-24) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-25) "title": "NestedCommentTitle", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-26) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-27) "comment": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-28) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-29) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-30) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-31) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-32) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-33) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-34) "ExtendedProcessingTasks": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-35) "title": "Extended Processing Tasks Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-36) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-37) "items": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-38) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-39) "$ref": "#/definitions/ExtendedProcessingTask" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-40) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-41) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-42) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-43) "ProcessingTask": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-44) "title": "Processing Task Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-45) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-46) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-47) "processing_status_union": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-48) "title": "Processing Status Union Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-49) "oneOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-50) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-51) "title": "Processing Status Detail", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-52) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-53) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-54) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-55) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-56) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-57) "description": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-58) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-59) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-60) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-61) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-62) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-63) "$ref": "#/definitions/ExtendedProcessingTask" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-64) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-65) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-66) "$ref": "#/definitions/ProcessingStatus" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-67) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-68) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-69) "default": "COMPLETED" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-70) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-71) "processing_status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-72) "$ref": "#/definitions/ProcessingStatus", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-73) "default": "COMPLETED" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-74) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-75) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-76) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-77) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-78) "kind": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-79) "$ref": "#/definitions/kind" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-80) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-81) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-82) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-83) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-84) "title": "Processing Tasks Title", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-85) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-86) "items": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-87) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-88) "$ref": "#/definitions/ProcessingTask" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-89) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-90) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-86-91) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-2) # filename: titles.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-12) class ProcessingStatusTitle(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-13) COMPLETED = 'COMPLETED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-14) PENDING = 'PENDING' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-15) FAILED = 'FAILED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-18) class Kind(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-19) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-22) class NestedCommentTitle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-23) comment: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-26) class ProcessingStatusDetail(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-27) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-28) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-29) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-30)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-31) class ProcessingTasksTitle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-32) __root__: list[ProcessingTaskTitle] = Field(..., title='Processing Tasks Title') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-35) class ExtendedProcessingTask(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-36) __root__: ProcessingTasksTitle | NestedCommentTitle = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-37) ..., title='Extended Processing Task Title' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-38) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-41) class ExtendedProcessingTasksTitle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-42) __root__: list[ExtendedProcessingTask] = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-43) ..., title='Extended Processing Tasks Title' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-44) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-45) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-46)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-47) class ProcessingStatusUnionTitle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-48) __root__: ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-49) ProcessingStatusDetail | ExtendedProcessingTask | ProcessingStatusTitle [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-50) ) = Field('COMPLETED', title='Processing Status Union Title') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-51) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-52)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-53) class ProcessingTaskTitle(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-54) processing_status_union: ProcessingStatusUnionTitle | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-55) default_factory=lambda: ProcessingStatusUnionTitle.parse_obj('COMPLETED'), [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-56) title='Processing Status Union Title', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-57) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-58) processing_status: ProcessingStatusTitle | None = 'COMPLETED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-59) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-60) kind: Kind | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-61) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-62)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#__codelineno-87-63) ProcessingTasksTitle.update_forward_refs()` * * * --- # ๐Ÿ”ง Typing Customization - datamodel-code-generator [Skip to content](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#typing-customization) ๐Ÿ”ง Typing Customization[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#typing-customization "Permanent link") ==================================================================================================================================================== ๐Ÿ“‹ Options[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#options "Permanent link") -------------------------------------------------------------------------------------------------------------------------- | Option | Description | | --- | --- | | [`--allof-class-hierarchy`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-class-hierarchy) | Controls how allOf schemas are represented in the generated ... | | [`--allof-merge-mode`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode) | Merge constraints from root model references in allOf schema... | | [`--disable-future-imports`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#disable-future-imports) | Prevent automatic addition of **future** imports in generate... | | [`--enum-field-as-literal`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal) | Convert all enum fields to Literal types instead of Enum cla... | | [`--enum-field-as-literal-map`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal-map) | Override enum/literal generation per-field via JSON mapping.... | | [`--ignore-enum-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#ignore-enum-constraints) | Ignore enum constraints and use base string type instead of ... | | [`--no-use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-closed-typed-dict) | Disable PEP 728 TypedDict closed/extra\_items generation. | | [`--no-use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum) | Disable specialized Enum classes for Python 3.11+ code gener... | | [`--no-use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections) | Use typing.Dict/List instead of built-in dict/list for conta... | | [`--no-use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator) | Use Union\[X, Y\] / Optional\[X\] instead of X | | [`--output-date-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-date-class) | Specify date class type for date schema fields. | | [`--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) | Specify datetime class type for date-time schema fields. | | [`--strict-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types) | Enable strict type validation for specified Python types. | | [`--type-mappings`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings) | Override default type mappings for schema formats. | | [`--type-overrides`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-overrides) | Replace schema model types with custom Python types via JSON... | | [`--use-annotated`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated) | Use typing.Annotated for Field() with constraints. | | [`--use-closed-typed-dict`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-closed-typed-dict) | Generate TypedDict with PEP 728 closed/extra\_items (default:... | | [`--use-decimal-for-multiple-of`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-decimal-for-multiple-of) | Generate Decimal types for fields with multipleOf constraint... | | [`--use-generic-container-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types) | Use generic container types (Sequence, Mapping) for type hin... | | [`--use-non-positive-negative-number-constrained-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-non-positive-negative-number-constrained-types) | Use NonPositive/NonNegative types for number constraints. | | [`--use-pendulum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum) | Use pendulum types for date/time fields instead of datetime ... | | [`--use-root-model-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-root-model-type-alias) | Generate RootModel as type alias format for better mypy supp... | | [`--use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-specialized-enum) | Generate StrEnum/IntEnum for string/integer enums (Python 3.... | | [`--use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections) | Use built-in dict/list instead of typing.Dict/List. | | [`--use-standard-primitive-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-primitive-types) | Use Python standard library types for string formats instead... | | [`--use-tuple-for-fixed-items`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-tuple-for-fixed-items) | Generate tuple types for arrays with items array syntax. | | [`--use-type-alias`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias) | Use TypeAlias instead of root models for type definitions (e... | | [`--use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator) | Use | | [`--use-unique-items-as-set`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-unique-items-as-set) | Generate set types for arrays with uniqueItems constraint. | * * * `--allof-class-hierarchy`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-class-hierarchy "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Controls how allOf schemas are represented in the generated class hierarchy. `--allof-class-hierarchy if-no-conflict` (default) creates parent classes for allOf schemas only when there are no property conflicts between parent schemas. Otherwise, properties are merged into the child class which is then decoupled from the parent classes and no longer inherits from them. `--allof-class-hierarchy always` keeps class hierarchy for allOf schemas, even in multiple inheritance scenarios where two parent schemas define the same property. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-0-1) datamodel-codegen --input schema.json --allof-class-hierarchy always # (1)!` 1. `--allof-class-hierarchy` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-4) "StringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-5) "description": "A base string type.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-6) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-7) "pattern": "^\\S(.*\\S)?$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-9) "ConstrainedStringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-10) "description": "A constrained string.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-11) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-12) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-13) { "type": "string", "minLength": 1, "pattern": "^[A-Z].*" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-16) "IntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-17) "description": "A whole number.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-18) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-19) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-20) "NonNegativeIntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-21) "description": "Non-negative integer.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-22) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-23) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-24) { "minimum": 0 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-25) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-26) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-27) "BoundedIntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-28) "description": "Integer between 0 and 100.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-29) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-30) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-31) { "minimum": 0, "maximum": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-32) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-33) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-34) "EmailDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-35) "description": "Email with format.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-36) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-37) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-38) { "format": "email" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-39) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-40) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-41) "FormattedStringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-42) "description": "A string with email format.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-43) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-44) "format": "email" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-46) "ObjectBase": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-47) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-48) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-49) "id": { "type": "integer" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-50) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-51) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-52) "ObjectWithAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-53) "description": "Object inheritance - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-54) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-55) { "$ref": "#/definitions/ObjectBase" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-56) { "type": "object", "properties": { "name": { "type": "string" } } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-58) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-59) "MultiRefAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-60) "description": "Multiple refs - not handled by new code.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-61) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-62) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-63) { "$ref": "#/definitions/IntegerDatatype" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-64) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-65) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-66) "NoConstraintAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-67) "description": "No constraints added.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-68) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-69) { "$ref": "#/definitions/StringDatatype" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-70) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-71) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-72) "IncompatibleTypeAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-73) "description": "Incompatible types.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-74) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-75) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-76) { "type": "boolean" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-77) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-78) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-79) "ConstraintWithProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-80) "description": "Constraint item has properties.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-81) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-82) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-83) { "properties": { "extra": { "type": "string" } } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-84) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-85) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-86) "ConstraintWithItems": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-87) "description": "Constraint item has items.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-88) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-89) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-90) { "items": { "type": "string" } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-91) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-92) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-93) "NumberIntegerCompatible": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-94) "description": "Number and integer are compatible.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-95) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-96) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-97) { "type": "number", "minimum": 0 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-98) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-99) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-100) "RefWithSchemaKeywords": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-101) "description": "Ref with additional schema keywords.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-102) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-103) { "$ref": "#/definitions/StringDatatype", "minLength": 5 }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-104) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-105) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-106) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-107) "ArrayDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-108) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-109) "items": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-110) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-111) "RefToArrayAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-112) "description": "Ref to array - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-113) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-114) { "$ref": "#/definitions/ArrayDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-115) { "minItems": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-116) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-117) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-118) "ObjectNoPropsDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-119) "type": "object" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-120) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-121) "RefToObjectNoPropsAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-122) "description": "Ref to object without properties - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-123) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-124) { "$ref": "#/definitions/ObjectNoPropsDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-125) { "minProperties": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-126) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-127) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-128) "PatternPropsDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-129) "patternProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-130) "^S_": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-131) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-132) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-133) "RefToPatternPropsAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-134) "description": "Ref to patternProperties - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-135) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-136) { "$ref": "#/definitions/PatternPropsDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-137) { "minProperties": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-138) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-139) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-140) "NestedAllOfDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-141) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-142) { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-143) { "minLength": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-144) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-145) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-146) "RefToNestedAllOfAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-147) "description": "Ref to nested allOf - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-148) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-149) { "$ref": "#/definitions/NestedAllOfDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-150) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-151) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-152) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-153) "ConstraintsOnlyDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-154) "description": "Constraints only, no type.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-155) "minLength": 1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-156) "pattern": "^[A-Z]" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-157) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-158) "RefToConstraintsOnlyAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-159) "description": "Ref to constraints-only schema.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-160) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-161) { "$ref": "#/definitions/ConstraintsOnlyDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-162) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-163) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-164) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-165) "NoDescriptionAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-166) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-167) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-168) { "minLength": 5 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-169) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-170) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-171) "EmptyConstraintItemAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-172) "description": "AllOf with empty constraint item.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-173) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-174) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-175) {}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-176) { "maxLength": 50 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-177) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-178) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-179) "ConflictingFormatAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-180) "description": "Conflicting formats - falls back to existing behavior.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-181) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-182) { "$ref": "#/definitions/FormattedStringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-183) { "format": "date-time" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-184) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-185) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-186) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-187) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-188) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-189) "name": { "$ref": "#/definitions/ConstrainedStringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-190) "count": { "$ref": "#/definitions/NonNegativeIntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-191) "percentage": { "$ref": "#/definitions/BoundedIntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-192) "email": { "$ref": "#/definitions/EmailDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-193) "obj": { "$ref": "#/definitions/ObjectWithAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-194) "multi": { "$ref": "#/definitions/MultiRefAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-195) "noconstraint": { "$ref": "#/definitions/NoConstraintAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-196) "incompatible": { "$ref": "#/definitions/IncompatibleTypeAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-197) "withprops": { "$ref": "#/definitions/ConstraintWithProperties" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-198) "withitems": { "$ref": "#/definitions/ConstraintWithItems" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-199) "numint": { "$ref": "#/definitions/NumberIntegerCompatible" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-200) "refwithkw": { "$ref": "#/definitions/RefWithSchemaKeywords" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-201) "refarr": { "$ref": "#/definitions/RefToArrayAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-202) "refobjnoprops": { "$ref": "#/definitions/RefToObjectNoPropsAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-203) "refpatternprops": { "$ref": "#/definitions/RefToPatternPropsAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-204) "refnestedallof": { "$ref": "#/definitions/RefToNestedAllOfAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-205) "refconstraintsonly": { "$ref": "#/definitions/RefToConstraintsOnlyAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-206) "nodescription": { "$ref": "#/definitions/NoDescriptionAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-207) "emptyconstraint": { "$ref": "#/definitions/EmptyConstraintItemAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-208) "conflictingformat": { "$ref": "#/definitions/ConflictingFormatAllOf" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-209) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-1-210) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-2) # filename: allof_class_hierarchy.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-7) from pydantic import BaseModel, Field, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-10) class Entity(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-11) type: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-12) type_list: list[str] | None = ['playground:Entity'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-15) class Entity2(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-16) type: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-17) type_list: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-20) class Thing(Entity): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-21) type: str | None = 'playground:Thing' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-22) type_list: list[str] | None = ['playground:Thing'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-23) name: constr(min_length=1) = Field(..., description='The things name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-26) class Location(Entity2): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-27) type: str | None = 'playground:Location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-28) type_list: list[str] | None = ['playground:Location'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-29) address: constr(min_length=5) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-30) ..., description='The address of the location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-31) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-34) class Person(Thing, Location): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-35) name: constr(min_length=1) | None = Field(None, description="The person's name") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-36) type: str | None = 'playground:Person' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-2-37) type_list: list[str] | None = ['playground:Person']` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-2) # filename: allof_class_hierarchy.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-9) from pydantic import BaseModel, Field, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-12) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-13) name: constr(min_length=1) = Field(..., description='The things name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-14) type: Any | None = 'playground:Location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-15) type_list: list[Any] | None = [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-16) 'playground:Person', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-17) 'playground:Thing', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-18) 'playground:Location', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-19) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-20) address: constr(min_length=5) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-21) ..., description='The address of the location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-22) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-23) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-24)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-25) class Entity(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-26) type: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-27) type_list: list[str] | None = ['playground:Entity'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-30) class Entity2(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-31) type: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-32) type_list: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-35) class Thing(Entity): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-36) type: str | None = 'playground:Thing' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-37) type_list: list[str] | None = ['playground:Thing'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-38) name: constr(min_length=1) = Field(..., description='The things name') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-41) class Location(Entity2): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-42) type: str | None = 'playground:Location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-43) type_list: list[str] | None = ['playground:Location'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-44) address: constr(min_length=5) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-45) ..., description='The address of the location' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-3-46) )` * * * `--allof-merge-mode`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#allof-merge-mode "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------- Merge constraints from root model references in allOf schemas. The `--allof-merge-mode constraints` merges only constraint properties (minLength, maximum, etc.) from parent schemas referenced in allOf. This ensures child schemas inherit validation constraints while keeping other properties separate. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-4-1) datamodel-codegen --input schema.json --allof-merge-mode constraints # (1)!` 1. `--allof-merge-mode` - the option documented here Examples OpenAPIJSON Schema **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-3) title: Test materialize allOf defaults [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-4) version: "1.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-5) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-6) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-7) Parent: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-8) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-9) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-10) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-11) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-12) default: "parent_default" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-13) minLength: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-14) count: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-15) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-16) default: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-17) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-18) Child: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-19) allOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-20) - $ref: "#/components/schemas/Parent" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-21) - type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-22) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-23) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-24) maxLength: 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-25) count: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-5-26) maximum: 1000` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-2) # filename: allof_materialize_defaults.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-7) from pydantic import BaseModel, conint, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-10) class Parent(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-11) name: constr(min_length=1) | None = 'parent_default' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-12) count: conint(ge=0) | None = 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-13) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-15) class Child(Parent): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-16) name: constr(min_length=1, max_length=100) | None = 'parent_default' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-6-17) count: conint(ge=0, le=1000) | None = 10` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-4) "StringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-5) "description": "A base string type.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-6) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-7) "pattern": "^\\S(.*\\S)?$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-9) "ConstrainedStringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-10) "description": "A constrained string.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-11) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-12) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-13) { "type": "string", "minLength": 1, "pattern": "^[A-Z].*" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-16) "IntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-17) "description": "A whole number.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-18) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-19) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-20) "NonNegativeIntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-21) "description": "Non-negative integer.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-22) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-23) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-24) { "minimum": 0 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-25) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-26) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-27) "BoundedIntegerDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-28) "description": "Integer between 0 and 100.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-29) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-30) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-31) { "minimum": 0, "maximum": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-32) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-33) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-34) "EmailDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-35) "description": "Email with format.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-36) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-37) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-38) { "format": "email" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-39) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-40) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-41) "FormattedStringDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-42) "description": "A string with email format.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-43) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-44) "format": "email" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-46) "ObjectBase": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-47) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-48) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-49) "id": { "type": "integer" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-50) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-51) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-52) "ObjectWithAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-53) "description": "Object inheritance - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-54) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-55) { "$ref": "#/definitions/ObjectBase" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-56) { "type": "object", "properties": { "name": { "type": "string" } } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-58) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-59) "MultiRefAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-60) "description": "Multiple refs - not handled by new code.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-61) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-62) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-63) { "$ref": "#/definitions/IntegerDatatype" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-64) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-65) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-66) "NoConstraintAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-67) "description": "No constraints added.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-68) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-69) { "$ref": "#/definitions/StringDatatype" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-70) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-71) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-72) "IncompatibleTypeAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-73) "description": "Incompatible types.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-74) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-75) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-76) { "type": "boolean" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-77) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-78) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-79) "ConstraintWithProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-80) "description": "Constraint item has properties.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-81) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-82) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-83) { "properties": { "extra": { "type": "string" } } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-84) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-85) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-86) "ConstraintWithItems": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-87) "description": "Constraint item has items.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-88) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-89) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-90) { "items": { "type": "string" } } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-91) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-92) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-93) "NumberIntegerCompatible": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-94) "description": "Number and integer are compatible.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-95) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-96) { "$ref": "#/definitions/IntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-97) { "type": "number", "minimum": 0 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-98) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-99) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-100) "RefWithSchemaKeywords": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-101) "description": "Ref with additional schema keywords.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-102) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-103) { "$ref": "#/definitions/StringDatatype", "minLength": 5 }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-104) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-105) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-106) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-107) "ArrayDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-108) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-109) "items": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-110) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-111) "RefToArrayAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-112) "description": "Ref to array - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-113) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-114) { "$ref": "#/definitions/ArrayDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-115) { "minItems": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-116) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-117) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-118) "ObjectNoPropsDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-119) "type": "object" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-120) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-121) "RefToObjectNoPropsAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-122) "description": "Ref to object without properties - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-123) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-124) { "$ref": "#/definitions/ObjectNoPropsDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-125) { "minProperties": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-126) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-127) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-128) "PatternPropsDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-129) "patternProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-130) "^S_": { "type": "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-131) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-132) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-133) "RefToPatternPropsAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-134) "description": "Ref to patternProperties - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-135) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-136) { "$ref": "#/definitions/PatternPropsDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-137) { "minProperties": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-138) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-139) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-140) "NestedAllOfDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-141) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-142) { "type": "string" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-143) { "minLength": 1 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-144) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-145) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-146) "RefToNestedAllOfAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-147) "description": "Ref to nested allOf - not a root model.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-148) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-149) { "$ref": "#/definitions/NestedAllOfDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-150) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-151) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-152) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-153) "ConstraintsOnlyDatatype": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-154) "description": "Constraints only, no type.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-155) "minLength": 1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-156) "pattern": "^[A-Z]" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-157) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-158) "RefToConstraintsOnlyAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-159) "description": "Ref to constraints-only schema.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-160) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-161) { "$ref": "#/definitions/ConstraintsOnlyDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-162) { "maxLength": 100 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-163) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-164) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-165) "NoDescriptionAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-166) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-167) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-168) { "minLength": 5 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-169) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-170) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-171) "EmptyConstraintItemAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-172) "description": "AllOf with empty constraint item.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-173) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-174) { "$ref": "#/definitions/StringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-175) {}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-176) { "maxLength": 50 } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-177) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-178) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-179) "ConflictingFormatAllOf": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-180) "description": "Conflicting formats - falls back to existing behavior.", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-181) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-182) { "$ref": "#/definitions/FormattedStringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-183) { "format": "date-time" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-184) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-185) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-186) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-187) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-188) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-189) "name": { "$ref": "#/definitions/ConstrainedStringDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-190) "count": { "$ref": "#/definitions/NonNegativeIntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-191) "percentage": { "$ref": "#/definitions/BoundedIntegerDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-192) "email": { "$ref": "#/definitions/EmailDatatype" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-193) "obj": { "$ref": "#/definitions/ObjectWithAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-194) "multi": { "$ref": "#/definitions/MultiRefAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-195) "noconstraint": { "$ref": "#/definitions/NoConstraintAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-196) "incompatible": { "$ref": "#/definitions/IncompatibleTypeAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-197) "withprops": { "$ref": "#/definitions/ConstraintWithProperties" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-198) "withitems": { "$ref": "#/definitions/ConstraintWithItems" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-199) "numint": { "$ref": "#/definitions/NumberIntegerCompatible" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-200) "refwithkw": { "$ref": "#/definitions/RefWithSchemaKeywords" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-201) "refarr": { "$ref": "#/definitions/RefToArrayAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-202) "refobjnoprops": { "$ref": "#/definitions/RefToObjectNoPropsAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-203) "refpatternprops": { "$ref": "#/definitions/RefToPatternPropsAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-204) "refnestedallof": { "$ref": "#/definitions/RefToNestedAllOfAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-205) "refconstraintsonly": { "$ref": "#/definitions/RefToConstraintsOnlyAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-206) "nodescription": { "$ref": "#/definitions/NoDescriptionAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-207) "emptyconstraint": { "$ref": "#/definitions/EmptyConstraintItemAllOf" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-208) "conflictingformat": { "$ref": "#/definitions/ConflictingFormatAllOf" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-209) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-7-210) }` **Output:** With OptionWithout Option `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-2) # filename: allof_root_model_constraints.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-9) from pydantic import BaseModel, EmailStr, Field, conint, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-12) class StringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-13) __root__: constr(regex=r'^\S(.*\S)?$') = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-14) ..., description='A base string type.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-15) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-18) class ConstrainedStringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-19) __root__: constr(regex=r'(?=^\S(.*\S)?$)(?=^[A-Z].*)', min_length=1) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-20) ..., description='A constrained string.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-21) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-24) class IntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-25) __root__: int = Field(..., description='A whole number.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-28) class NonNegativeIntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-29) __root__: conint(ge=0) = Field(..., description='Non-negative integer.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-32) class BoundedIntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-33) __root__: conint(ge=0, le=100) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-34) ..., description='Integer between 0 and 100.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-35) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-38) class EmailDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-39) __root__: EmailStr = Field(..., description='Email with format.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-40) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-41)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-42) class FormattedStringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-43) __root__: EmailStr = Field(..., description='A string with email format.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-46) class ObjectBase(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-47) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-48) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-49)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-50) class ObjectWithAllOf(ObjectBase): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-51) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-52) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-53)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-54) class MultiRefAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-55) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-58) class NoConstraintAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-59) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-62) class IncompatibleTypeAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-63) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-66) class ConstraintWithProperties(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-67) extra: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-68) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-69)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-70) class ConstraintWithItems(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-71) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-72) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-73)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-74) class NumberIntegerCompatible(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-75) __root__: conint(ge=0) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-76) ..., description='Number and integer are compatible.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-77) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-78) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-79)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-80) class RefWithSchemaKeywords(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-81) __root__: constr(regex=r'^\S(.*\S)?$', min_length=5, max_length=100) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-82) ..., description='Ref with additional schema keywords.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-83) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-84) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-85)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-86) class ArrayDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-87) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-88) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-89)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-90) class RefToArrayAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-91) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-92) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-93)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-94) class ObjectNoPropsDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-95) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-96) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-97)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-98) class RefToObjectNoPropsAllOf(ObjectNoPropsDatatype): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-99) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-101)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-102) class PatternPropsDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-103) __root__: dict[constr(regex=r'^S_'), str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-104) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-105)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-106) class RefToPatternPropsAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-107) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-108) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-109)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-110) class NestedAllOfDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-111) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-112) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-113)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-114) class RefToNestedAllOfAllOf(NestedAllOfDatatype): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-115) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-116) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-117)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-118) class ConstraintsOnlyDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-119) __root__: Any = Field(..., description='Constraints only, no type.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-120) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-121)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-122) class RefToConstraintsOnlyAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-123) __root__: Any = Field(..., description='Ref to constraints-only schema.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-124) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-125)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-126) class NoDescriptionAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-127) __root__: constr(regex=r'^\S(.*\S)?$', min_length=5) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-128) ..., description='A base string type.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-129) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-130) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-131)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-132) class EmptyConstraintItemAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-133) __root__: constr(regex=r'^\S(.*\S)?$', max_length=50) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-134) ..., description='AllOf with empty constraint item.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-135) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-136) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-137)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-138) class ConflictingFormatAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-139) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-140) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-141)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-142) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-143) name: ConstrainedStringDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-144) count: NonNegativeIntegerDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-145) percentage: BoundedIntegerDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-146) email: EmailDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-147) obj: ObjectWithAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-148) multi: MultiRefAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-149) noconstraint: NoConstraintAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-150) incompatible: IncompatibleTypeAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-151) withprops: ConstraintWithProperties | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-152) withitems: ConstraintWithItems | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-153) numint: NumberIntegerCompatible | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-154) refwithkw: RefWithSchemaKeywords | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-155) refarr: RefToArrayAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-156) refobjnoprops: RefToObjectNoPropsAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-157) refpatternprops: RefToPatternPropsAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-158) refnestedallof: RefToNestedAllOfAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-159) refconstraintsonly: RefToConstraintsOnlyAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-160) nodescription: NoDescriptionAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-161) emptyconstraint: EmptyConstraintItemAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-8-162) conflictingformat: ConflictingFormatAllOf | None = None` `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-2) # filename: allof_root_model_constraints.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-9) from pydantic import BaseModel, EmailStr, Field, conint, constr [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-12) class StringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-13) __root__: constr(regex=r'^\S(.*\S)?$') = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-14) ..., description='A base string type.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-15) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-18) class ConstrainedStringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-19) __root__: constr(regex=r'^[A-Z].*', min_length=1) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-20) ..., description='A constrained string.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-21) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-24) class IntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-25) __root__: int = Field(..., description='A whole number.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-28) class NonNegativeIntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-29) __root__: conint(ge=0) = Field(..., description='Non-negative integer.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-32) class BoundedIntegerDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-33) __root__: conint(ge=0, le=100) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-34) ..., description='Integer between 0 and 100.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-35) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-38) class EmailDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-39) __root__: EmailStr = Field(..., description='Email with format.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-40) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-41)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-42) class FormattedStringDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-43) __root__: EmailStr = Field(..., description='A string with email format.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-46) class ObjectBase(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-47) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-48) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-49)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-50) class ObjectWithAllOf(ObjectBase): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-51) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-52) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-53)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-54) class MultiRefAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-55) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-56) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-57)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-58) class NoConstraintAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-59) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-62) class IncompatibleTypeAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-63) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-65)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-66) class ConstraintWithProperties(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-67) extra: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-68) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-69)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-70) class ConstraintWithItems(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-71) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-72) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-73)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-74) class NumberIntegerCompatible(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-75) __root__: conint(ge=0) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-76) ..., description='Number and integer are compatible.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-77) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-78) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-79)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-80) class RefWithSchemaKeywords(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-81) __root__: constr(regex=r'^\S(.*\S)?$', min_length=5, max_length=100) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-82) ..., description='Ref with additional schema keywords.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-83) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-84) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-85)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-86) class ArrayDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-87) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-88) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-89)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-90) class RefToArrayAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-91) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-92) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-93)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-94) class ObjectNoPropsDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-95) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-96) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-97)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-98) class RefToObjectNoPropsAllOf(ObjectNoPropsDatatype): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-99) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-101)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-102) class PatternPropsDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-103) __root__: dict[constr(regex=r'^S_'), str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-104) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-105)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-106) class RefToPatternPropsAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-107) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-108) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-109)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-110) class NestedAllOfDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-111) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-112) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-113)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-114) class RefToNestedAllOfAllOf(NestedAllOfDatatype): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-115) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-116) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-117)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-118) class ConstraintsOnlyDatatype(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-119) __root__: Any = Field(..., description='Constraints only, no type.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-120) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-121)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-122) class RefToConstraintsOnlyAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-123) __root__: Any = Field(..., description='Ref to constraints-only schema.') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-124) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-125)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-126) class NoDescriptionAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-127) __root__: constr(regex=r'^\S(.*\S)?$', min_length=5) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-128) ..., description='A base string type.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-129) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-130) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-131)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-132) class EmptyConstraintItemAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-133) __root__: constr(regex=r'^\S(.*\S)?$', max_length=50) = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-134) ..., description='AllOf with empty constraint item.' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-135) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-136) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-137)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-138) class ConflictingFormatAllOf(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-139) pass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-140) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-141)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-142) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-143) name: ConstrainedStringDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-144) count: NonNegativeIntegerDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-145) percentage: BoundedIntegerDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-146) email: EmailDatatype | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-147) obj: ObjectWithAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-148) multi: MultiRefAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-149) noconstraint: NoConstraintAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-150) incompatible: IncompatibleTypeAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-151) withprops: ConstraintWithProperties | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-152) withitems: ConstraintWithItems | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-153) numint: NumberIntegerCompatible | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-154) refwithkw: RefWithSchemaKeywords | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-155) refarr: RefToArrayAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-156) refobjnoprops: RefToObjectNoPropsAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-157) refpatternprops: RefToPatternPropsAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-158) refnestedallof: RefToNestedAllOfAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-159) refconstraintsonly: RefToConstraintsOnlyAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-160) nodescription: NoDescriptionAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-161) emptyconstraint: EmptyConstraintItemAllOf | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-9-162) conflictingformat: ConflictingFormatAllOf | None = None` * * * `--disable-future-imports`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#disable-future-imports "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------- Prevent automatic addition of **future** imports in generated code. The --disable-future-imports option stops the generator from adding 'from **future** import annotations' to the output. This is useful when you need compatibility with tools or environments that don't support postponed evaluation of annotations (PEP 563). **Python 3.13+ Deprecation Warning:** When using `from __future__ import annotations` with older versions of Pydantic v1 (before 1.10.18), Python 3.13 may raise deprecation warnings related to `typing._eval_type()`. To avoid these warnings: * Upgrade to Pydantic v1 >= 1.10.18 or Pydantic v2 (recommended) * Use this `--disable-future-imports` flag as a workaround **See also:** [Python Version Compatibility](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-10-1) datamodel-codegen --input schema.json --disable-future-imports --target-python-version 3.10 # (1)!` 1. `--disable-future-imports` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-3) "title": "DescriptionType", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-6) "metadata": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-7) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-8) "items": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-9) "$ref": "#/definitions/Metadata" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-10) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-11) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-13) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-14) "Metadata": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-15) "title": "Metadata", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-16) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-17) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-18) "title": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-19) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-20) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-21) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-22) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-23) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-11-24) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-2) # filename: keep_model_order_field_references.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-5) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-6) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-8) class Metadata(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-9) title: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-12) class DescriptionType(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-12-13) metadata: list[Metadata] | None = None` * * * `--enum-field-as-literal`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Convert all enum fields to Literal types instead of Enum classes. The `--enum-field-as-literal all` flag converts all enum types to Literal type annotations. This is useful when you want string literal types instead of Enum classes for all enumerations. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-13-1) datamodel-codegen --input schema.json --enum-field-as-literal all # (1)!` 1. `--enum-field-as-literal` - the option documented here Examples OpenAPIJSON SchemaGraphQL **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-24) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-25) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-26) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-27) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-28) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-29) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-30) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-31) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-32) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-33) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-34) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-35) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-36) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-37) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-38) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-39) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-40) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-41) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-42) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-43) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-44) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-45) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-46) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-47) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-48) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-49) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-50) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-51) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-52) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-53) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-54) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-55) - boolean [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-56) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-57) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-58) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-59) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-60) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-61) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-62) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-63) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-64) kind: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-65) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-66) enum: ['dog', 'cat'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-67) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-68) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-69) enum: [ 'animal' ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-70) number: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-71) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-72) enum: [ 1 ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-73) boolean: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-74) type: boolean [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-75) enum: [ true ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-76) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-77) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-78) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-79) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-80) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-81) animal: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-82) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-83) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-84) kind: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-85) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-86) enum: ['snake', 'rabbit'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-87) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-88) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-89) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-90) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-91) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-92) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-93) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-94) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-95) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-96) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-97) EnumObject: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-98) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-99) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-100) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-101) enum: ['a', 'b'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-102) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-103) EnumRoot: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-104) enum: ['a', 'b'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-105) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-106) IntEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-107) enum: [1,2] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-108) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-109) AliasEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-110) enum: [1,2,3] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-111) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-112) x-enum-varnames: ['a', 'b', 'c'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-113) MultipleTypeEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-114) enum: [ "red", "amber", "green", null, 42 ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-115) singleEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-116) enum: [ "pet" ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-117) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-118) arrayEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-119) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-120) items: [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-121) { enum: [ "cat" ] }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-122) { enum: [ "dog"]} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-123) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-124) nestedNullableEnum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-125) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-126) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-127) nested_version: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-128) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-129) nullable: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-130) default: RC1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-131) description: nullable enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-132) example: RC2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-133) enum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-134) - RC1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-135) - RC1N [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-136) - RC2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-137) - RC2N [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-138) - RC3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-139) - RC4 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-140) - null [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-141) version: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-142) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-143) nullable: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-144) default: RC1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-145) description: nullable enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-146) example: RC2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-147) enum: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-148) - RC1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-149) - RC1N [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-150) - RC2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-151) - RC2N [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-152) - RC3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-153) - RC4 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-14-154) - null` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-2) # filename: enum_models.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-8) from typing import Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-13) class Kind(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-14) dog = 'dog' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-15) cat = 'cat' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-18) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-19) id: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-20) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-21) tag: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-22) kind: Kind | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-23) type: Literal['animal'] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-24) number: Literal[1] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-25) boolean: Literal[True] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-28) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-29) __root__: list[Pet] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-32) class Kind1(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-33) snake = 'snake' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-34) rabbit = 'rabbit' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-37) class Animal(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-38) kind: Kind1 | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-41) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-42) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-43) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-46) class Type(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-47) a = 'a' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-48) b = 'b' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-49) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-50)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-51) class EnumObject(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-52) type: Type | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-53) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-54)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-55) class EnumRoot(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-56) a = 'a' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-57) b = 'b' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-58) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-59)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-60) class IntEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-61) number_1 = 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-62) number_2 = 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-63) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-64)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-65) class AliasEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-66) a = 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-67) b = 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-68) c = 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-69) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-70)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-71) class MultipleTypeEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-72) red = 'red' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-73) amber = 'amber' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-74) green = 'green' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-75) NoneType_None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-76) int_42 = 42 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-77) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-78)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-79) class SingleEnum(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-80) __root__: Literal['pet'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-81) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-82)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-83) class ArrayEnum(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-84) __root__: list[Literal['cat'] | Literal['dog']] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-85) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-86)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-87) class NestedVersionEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-88) RC1 = 'RC1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-89) RC1N = 'RC1N' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-90) RC2 = 'RC2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-91) RC2N = 'RC2N' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-92) RC3 = 'RC3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-93) RC4 = 'RC4' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-94) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-95)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-96) class NestedVersion(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-97) __root__: NestedVersionEnum | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-98) 'RC1', description='nullable enum', example='RC2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-99) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-101)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-102) class NestedNullableEnum(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-103) nested_version: NestedVersion | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-104) default_factory=lambda: NestedVersion.parse_obj('RC1'), [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-105) description='nullable enum', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-106) example='RC2', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-107) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-108) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-109)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-110) class VersionEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-111) RC1 = 'RC1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-112) RC1N = 'RC1N' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-113) RC2 = 'RC2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-114) RC2N = 'RC2N' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-115) RC3 = 'RC3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-116) RC4 = 'RC4' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-117) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-118)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-119) class Version(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-120) __root__: VersionEnum | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-121) 'RC1', description='nullable enum', example='RC2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-15-122) )` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-1) $schema: http://json-schema.org/draft-07/schema# [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-2) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-3) title: Config [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-4) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-5) mode: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-6) title: Mode [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-7) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-8) oneOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-9) - title: fast [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-10) const: fast [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-11) - title: slow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-12) const: slow [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-13) modes: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-14) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-15) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-16) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-17) oneOf: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-18) - const: a [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-16-19) - const: b` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-2) # filename: oneof_const_enum_nested.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-7) from typing import Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-12) class Config(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-13) mode: Literal['fast', 'slow'] | None = Field(None, title='Mode') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-17-14) modes: list[Literal['a', 'b']] | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-1) "Employee shift status" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-2) enum EmployeeShiftStatus { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-3) "not on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-4) NOT_ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-5) "on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-6) ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-7) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-9) enum Color { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-10) RED [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-11) GREEN [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-12) BLUE [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-15) enum EnumWithOneField { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-16) FIELD [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-18-17) }` **Output:** With OptionWithout Option ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-2) # filename: enums.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-7) from typing import Literal, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-17) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-18) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-19) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-23) class Color(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-24) __root__: Literal['BLUE', 'GREEN', 'RED'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-27) class EmployeeShiftStatus(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-28) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-29) Employee shift status [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-30) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-32) __root__: Literal['NOT_ON_SHIFT', 'ON_SHIFT'] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-35) class EnumWithOneField(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-19-36) __root__: Literal['FIELD']`` ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-2) # filename: enums.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-8) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-10) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-11) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-12) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-16) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-17) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-18) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-22) class Color(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-23) BLUE = 'BLUE' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-24) GREEN = 'GREEN' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-25) RED = 'RED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-28) class EmployeeShiftStatus(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-29) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-30) Employee shift status [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-31) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-33) NOT_ON_SHIFT = 'NOT_ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-34) ON_SHIFT = 'ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-37) class EnumWithOneField(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-20-38) FIELD = 'FIELD'`` * * * `--enum-field-as-literal-map`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#enum-field-as-literal-map "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------- Override enum/literal generation per-field via JSON mapping. The `--enum-field-as-literal-map` option allows per-field control over whether to generate Literal types or Enum classes. Overrides `--enum-field-as-literal`. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-21-1) datamodel-codegen --input schema.json --enum-field-as-literal-map "{"status": "literal"}" # (1)!` 1. `--enum-field-as-literal-map` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-3) "title": "EnumFieldAsLiteralMap", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-6) "status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-7) "title": "Status", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-8) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-9) "enum": ["active", "inactive", "pending"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-11) "priority": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-12) "title": "Priority", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-13) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-14) "enum": ["high", "medium", "low"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-16) "category": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-17) "title": "Category", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-18) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-19) "enum": ["a", "b", "c"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-20) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-21) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-22-22) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-2) # filename: enum_field_as_literal_map.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-8) from typing import Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-13) class Priority(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-14) high = 'high' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-15) medium = 'medium' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-16) low = 'low' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-17) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-18)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-19) class Category(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-20) a = 'a' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-21) b = 'b' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-22) c = 'c' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-23) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-24)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-25) class EnumFieldAsLiteralMap(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-26) status: Literal['active', 'inactive', 'pending'] | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-27) None, title='Status' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-28) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-29) priority: Priority | None = Field(None, title='Priority') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-23-30) category: Category | None = Field(None, title='Category')` * * * `--ignore-enum-constraints`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#ignore-enum-constraints "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Ignore enum constraints and use base string type instead of Enum classes. The `--ignore-enum-constraints` flag ignores enum constraints and uses the base type (str) instead of generating Enum classes. This is useful when you need flexibility in the values a field can accept beyond the defined enum members. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-24-1) datamodel-codegen --input schema.json --ignore-enum-constraints # (1)!` 1. `--ignore-enum-constraints` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-1) "Employee shift status" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-2) enum EmployeeShiftStatus { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-3) "not on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-4) NOT_ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-5) "on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-6) ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-7) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-9) enum Color { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-10) RED [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-11) GREEN [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-12) BLUE [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-15) enum EnumWithOneField { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-16) FIELD [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-25-17) }` **Output:** With OptionWithout Option ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-2) # filename: enums.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-7) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-17) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-18) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-19) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-23) class Color(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-24) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-25) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-26)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-27) class EmployeeShiftStatus(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-28) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-29) Employee shift status [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-30) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-32) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-33) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-34)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-35) class EnumWithOneField(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-26-36) __root__: str`` ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-2) # filename: enums.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-8) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-10) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-11) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-12) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-16) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-17) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-18) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-22) class Color(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-23) BLUE = 'BLUE' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-24) GREEN = 'GREEN' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-25) RED = 'RED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-28) class EmployeeShiftStatus(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-29) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-30) Employee shift status [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-31) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-33) NOT_ON_SHIFT = 'NOT_ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-34) ON_SHIFT = 'ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-37) class EnumWithOneField(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-27-38) FIELD = 'FIELD'`` * * * `--no-use-closed-typed-dict`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-closed-typed-dict "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- Disable PEP 728 TypedDict closed/extra\_items generation. Use this option for compatibility with type checkers that don't yet support PEP 728 (e.g., mypy). TypedDict will be generated without `closed=True` or `extra_items`. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-28-1) datamodel-codegen --input schema.json --output-model-type typing.TypedDict --no-use-closed-typed-dict # (1)!` 1. `--no-use-closed-typed-dict` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-4) "title": "ClosedModel", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-6) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-7) "age": {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-9) "required": ["name"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-10) "additionalProperties": false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-29-11) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-2) # filename: typed_dict_closed.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-7) from typing import TypedDict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-9) from typing_extensions import NotRequired [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-12) class ClosedModel(TypedDict): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-13) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-30-14) age: NotRequired[int]` * * * `--no-use-specialized-enum`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Disable specialized Enum classes for Python 3.11+ code generation. The `--no-use-specialized-enum` flag prevents the generator from using specialized Enum classes (StrEnum, IntEnum) when generating code for Python 3.11+, falling back to standard Enum classes instead. **Related:** [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) , [`--use-subclass-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-subclass-enum) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-31-1) datamodel-codegen --input schema.json --target-python-version 3.11 --no-use-specialized-enum # (1)!` 1. `--no-use-specialized-enum` - the option documented here Examples OpenAPIJSON SchemaGraphQL **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-2) "openapi": "3.0.2", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-3) "components": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-4) "schemas": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-5) "ProcessingStatus": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-6) "title": "ProcessingStatus", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-7) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-8) "COMPLETED", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-9) "PENDING", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-10) "FAILED" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-11) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-12) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-13) "description": "The processing status" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-14) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-15) "ProcessingTask": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-16) "title": "ProcessingTask", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-17) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-18) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-19) "processing_status": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-20) "title": "Status of the task", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-21) "allOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-22) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-23) "$ref": "#/components/schemas/ProcessingStatus" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-25) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-26) "default": "COMPLETED" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-27) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-28) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-29) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-30) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-31) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-32) "info": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-33) "title": "", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-34) "version": "" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-35) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-36) "paths": {} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-32-37) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-2) # filename: subclass_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-12) class ProcessingStatus(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-13) COMPLETED = 'COMPLETED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-14) PENDING = 'PENDING' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-15) FAILED = 'FAILED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-18) class ProcessingTask(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-19) processing_status: ProcessingStatus | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-20) 'COMPLETED', title='Status of the task' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-33-21) )` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-5) "IntEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-6) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-7) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-8) 1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-9) 2, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-10) 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-11) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-13) "FloatEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-14) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-15) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-16) 1.1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-17) 2.1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-18) 3.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-19) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-21) "StrEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-22) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-23) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-24) "1", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-25) "2", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-26) "3" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-27) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-28) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-29) "NonTypedEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-30) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-31) "1", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-32) "2", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-33) "3" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-34) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-35) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-36) "BooleanEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-37) "type": "boolean", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-38) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-39) true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-40) false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-41) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-42) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-43) "UnknownEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-44) "type": "unknown", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-45) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-46) "a", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-47) "b" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-48) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-49) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-50) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-34-51) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-2) # filename: subclass_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-12) class IntEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-13) integer_1 = 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-14) integer_2 = 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-15) integer_3 = 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-18) class FloatEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-19) number_1_1 = 1.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-20) number_2_1 = 2.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-21) number_3_1 = 3.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-24) class StrEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-25) field_1 = '1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-26) field_2 = '2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-27) field_3 = '3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-30) class NonTypedEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-31) field_1 = '1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-32) field_2 = '2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-33) field_3 = '3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-34) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-35)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-36) class BooleanEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-37) boolean_True = True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-38) boolean_False = False [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-41) class UnknownEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-42) a = 'a' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-43) b = 'b' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-46) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-47) IntEnum: IntEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-48) FloatEnum: FloatEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-49) StrEnum: StrEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-50) NonTypedEnum: NonTypedEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-51) BooleanEnum: BooleanEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-35-52) UnknownEnum: UnknownEnum | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-1) "Employee shift status" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-2) enum EmployeeShiftStatus { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-3) "not on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-4) NOT_ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-5) "on shift" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-6) ON_SHIFT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-7) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-9) enum Color { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-10) RED [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-11) GREEN [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-12) BLUE [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-13) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-15) enum EnumWithOneField { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-16) FIELD [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-36-17) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-2) # filename: enums.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-8) from typing import TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-10) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-11) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-12) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-16) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-17) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-18) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-22) class Color(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-23) BLUE = 'BLUE' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-24) GREEN = 'GREEN' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-25) RED = 'RED' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-28) class EmployeeShiftStatus(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-29) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-30) Employee shift status [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-31) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-33) NOT_ON_SHIFT = 'NOT_ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-34) ON_SHIFT = 'ON_SHIFT' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-37) class EnumWithOneField(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-37-38) FIELD = 'FIELD'`` * * * `--no-use-standard-collections`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use typing.Dict/List instead of built-in dict/list for container types. The `--no-use-standard-collections` flag generates typing module containers (Dict, List) instead of built-in types. This is useful for older Python versions or when explicit typing imports are preferred. **See also:** [Python Version Compatibility](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-38-1) datamodel-codegen --input schema.json --no-use-standard-collections # (1)!` 1. `--no-use-standard-collections` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-3) "$id": "test.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-4) "description": "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-6) "required": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-7) "test_id", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-8) "test_ip", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-9) "result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-10) "nested_object_result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-11) "nested_enum_result" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-12) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-14) "test_id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-15) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-16) "description": "test ID" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-18) "test_ip": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-20) "description": "test IP" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-22) "result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-23) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-24) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-25) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-26) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-27) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-28) "nested_object_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-29) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-30) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-31) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-32) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-33) "status":{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-34) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-37) "required": ["status"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-39) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-40) "nested_enum_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-41) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-42) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-43) "enum": ["red", "green"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-44) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-46) "all_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-47) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-48) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-49) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-50) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-51) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-52) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-53) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-54) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-55) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-56) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-58) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-59) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-60) "one_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-61) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-62) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-63) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-64) "oneOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-65) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-66) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-67) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-68) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-69) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-70) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-71) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-72) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-73) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-74) "any_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-75) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-76) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-77) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-78) "anyOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-79) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-80) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-81) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-82) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-83) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-84) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-85) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-86) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-87) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-88) "all_of_with_unknown_object" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-89) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-90) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-91) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-92) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-93) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-94) { "description": "TODO" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-95) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-96) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-97) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-98) "objectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-99) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-100) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-101) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-102) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-103) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-104) "deepNestedObjectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-105) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-106) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-107) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-108) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-109) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-110) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-111) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-112) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-113) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-114) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-115) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-116) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-117) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-118) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-119) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-120) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-121) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-122) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-123) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-124) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-125) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-126) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-39-127) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-2) # filename: root_model_with_additional_properties.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-8) from typing import Dict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-13) class NestedObjectResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-14) status: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-17) class NestedEnumResult(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-18) red = 'red' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-19) green = 'green' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-22) class OneOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-23) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-26) class AnyOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-27) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-30) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-31) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-34) class AllOfResult(User): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-35) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-38) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-39) test_id: str = Field(..., description='test ID') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-40) test_ip: str = Field(..., description='test IP') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-41) result: Dict[str, int] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-42) nested_object_result: Dict[str, NestedObjectResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-43) nested_enum_result: Dict[str, NestedEnumResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-44) all_of_result: Dict[str, AllOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-45) one_of_result: Dict[str, User | OneOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-46) any_of_result: Dict[str, User | AnyOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-47) all_of_with_unknown_object: Dict[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-48) objectRef: Dict[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-40-49) deepNestedObjectRef: Dict[str, Dict[str, Dict[str, User]]] | None = None` * * * `--no-use-union-operator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Use Union\[X, Y\] / Optional\[X\] instead of X | Y union operator. The `--no-use-union-operator` flag generates union types using typing.Union and typing.Optional instead of the | operator (PEP 604). This is useful for older Python versions or when explicit typing imports are preferred. **See also:** [Python Version Compatibility](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-41-1) datamodel-codegen --input schema.json --no-use-union-operator # (1)!` 1. `--no-use-union-operator` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-3) "$id": "test.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-4) "description": "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-6) "required": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-7) "test_id", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-8) "test_ip", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-9) "result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-10) "nested_object_result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-11) "nested_enum_result" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-12) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-14) "test_id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-15) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-16) "description": "test ID" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-18) "test_ip": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-20) "description": "test IP" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-22) "result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-23) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-24) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-25) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-26) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-27) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-28) "nested_object_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-29) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-30) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-31) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-32) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-33) "status":{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-34) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-37) "required": ["status"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-39) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-40) "nested_enum_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-41) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-42) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-43) "enum": ["red", "green"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-44) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-46) "all_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-47) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-48) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-49) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-50) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-51) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-52) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-53) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-54) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-55) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-56) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-58) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-59) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-60) "one_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-61) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-62) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-63) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-64) "oneOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-65) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-66) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-67) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-68) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-69) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-70) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-71) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-72) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-73) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-74) "any_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-75) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-76) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-77) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-78) "anyOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-79) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-80) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-81) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-82) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-83) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-84) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-85) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-86) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-87) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-88) "all_of_with_unknown_object" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-89) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-90) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-91) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-92) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-93) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-94) { "description": "TODO" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-95) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-96) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-97) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-98) "objectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-99) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-100) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-101) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-102) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-103) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-104) "deepNestedObjectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-105) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-106) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-107) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-108) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-109) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-110) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-111) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-112) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-113) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-114) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-115) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-116) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-117) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-118) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-119) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-120) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-121) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-122) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-123) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-124) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-125) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-126) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-42-127) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-2) # filename: root_model_with_additional_properties.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-8) from typing import Optional, Union [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-13) class NestedObjectResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-14) status: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-17) class NestedEnumResult(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-18) red = 'red' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-19) green = 'green' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-22) class OneOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-23) description: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-26) class AnyOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-27) description: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-30) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-31) name: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-34) class AllOfResult(User): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-35) description: Optional[str] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-38) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-39) test_id: str = Field(..., description='test ID') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-40) test_ip: str = Field(..., description='test IP') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-41) result: dict[str, int] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-42) nested_object_result: dict[str, NestedObjectResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-43) nested_enum_result: dict[str, NestedEnumResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-44) all_of_result: Optional[dict[str, AllOfResult]] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-45) one_of_result: Optional[dict[str, Union[User, OneOfResult]]] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-46) any_of_result: Optional[dict[str, Union[User, AnyOfResult]]] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-47) all_of_with_unknown_object: Optional[dict[str, User]] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-48) objectRef: Optional[dict[str, User]] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-43-49) deepNestedObjectRef: Optional[dict[str, dict[str, dict[str, User]]]] = None` * * * `--output-date-class`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-date-class "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------- Specify date class type for date schema fields. The `--output-date-class` flag controls which date type to use for fields with date format. Options include 'PastDate' for past dates only or 'FutureDate' for future dates only. This is a Pydantic v2 only feature. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-44-1) datamodel-codegen --input schema.json --output-date-class PastDate # (1)!` 1. `--output-date-class` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-2) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-3) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-4) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-5) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-6) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-7) - eventDate [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-8) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-9) eventDate: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-10) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-11) format: date [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-45-12) example: 2023-12-25` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-2) # filename: date_class.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-7) from pydantic import BaseModel, Field, PastDate [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-10) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-46-11) eventDate: PastDate = Field(..., examples=['2023-12-25'])` * * * `--output-datetime-class`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Specify datetime class type for date-time schema fields. The `--output-datetime-class` flag controls which datetime type to use for fields with date-time format. Options include 'AwareDatetime' for timezone-aware datetimes or 'datetime' for standard Python datetime objects. **See also:** [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-47-1) datamodel-codegen --input schema.json --output-datetime-class AwareDatetime # (1)!` 1. `--output-datetime-class` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-2) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-3) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-4) InventoryItem: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-5) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-6) # - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-7) # - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-8) - releaseDate [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-9) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-10) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-11) # id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-12) # type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-13) # format: uuid [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-14) # example: d290f1ee-6c54-4b01-90e6-d701748f0851 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-15) # name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-16) # type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-17) # example: Widget Adapter [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-18) releaseDate: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-19) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-20) format: date-time [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-48-21) example: 2016-08-29T09:12:33.001Z` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-2) # filename: datetime.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-7) from pydantic import AwareDatetime, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-10) class InventoryItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-49-11) releaseDate: AwareDatetime = Field(..., examples=['2016-08-29T09:12:33.001Z'])` * * * `--strict-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#strict-types "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------- Enable strict type validation for specified Python types. The --strict-types option enforces stricter type checking by preventing implicit type coercion for the specified types (str, bytes, int, float, bool). This generates StrictStr, StrictBytes, StrictInt, StrictFloat, and StrictBool types in Pydantic models, ensuring values match exactly without automatic conversion. **See also:** [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-50-1) datamodel-codegen --input schema.json --strict-types str bytes int float bool # (1)!` 1. `--strict-types` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-3) "title": "User", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-8) "example": "ken" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-10) "age": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-11) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-13) "salary": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-14) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-15) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-17) "debt" : { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-18) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-19) "maximum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-21) "loan" : { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-22) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-23) "maximum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-24) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-25) "tel": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-26) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-27) "pattern": "^(\\([0-9]{3}\\))?[0-9]{3}-[0-9]{4}$" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-28) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-29) "height": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-30) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-31) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-32) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-33) "weight": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-34) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-35) "minimum": 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-37) "score": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-38) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-39) "minimum": 1e-08 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-40) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-41) "active": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-42) "type": "boolean" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-43) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-44) "photo": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-45) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-46) "format": "binary", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-47) "minLength": 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-48) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-49) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-51-50) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-2) # filename: strict_types.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-7) from pydantic import ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-8) BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-9) Field, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-10) StrictBool, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-11) StrictBytes, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-12) StrictInt, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-13) StrictStr, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-14) confloat, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-15) conint, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-16) constr, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-17) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-20) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-21) name: StrictStr | None = Field(None, example='ken') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-22) age: StrictInt | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-23) salary: conint(ge=0, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-24) debt: conint(le=0, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-25) loan: confloat(le=0.0, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-26) tel: constr(regex=r'^(\([0-9]{3}\))?[0-9]{3}-[0-9]{4}$', strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-27) height: confloat(ge=0.0, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-28) weight: confloat(ge=0.0, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-29) score: confloat(ge=1e-08, strict=True) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-30) active: StrictBool | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-52-31) photo: StrictBytes | None = None` * * * `--type-mappings`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-mappings "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------- Override default type mappings for schema formats. The `--type-mappings` flag configures the code generation behavior. **See also:** [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-53-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --type-mappings binary=string # (1)!` 1. `--type-mappings` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-3) "title": "BlobModel", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-6) "content": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-7) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-8) "format": "binary", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-9) "description": "Binary content that should be mapped to string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-11) "data": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-12) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-13) "format": "byte", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-14) "description": "Base64 encoded data" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-16) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-17) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-18) "description": "Regular string field" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-19) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-21) "required": ["content", "data", "name"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-54-22) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-2) # filename: type_mappings.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-7) from pydantic import Base64Str, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-10) class BlobModel(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-11) content: str = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-12) ..., description='Binary content that should be mapped to string' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-13) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-14) data: Base64Str = Field(..., description='Base64 encoded data') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-55-15) name: str = Field(..., description='Regular string field')` * * * `--type-overrides`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#type-overrides "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------- Replace schema model types with custom Python types via JSON mapping. This option is useful for importing models from external libraries (like `geojson-pydantic`) instead of generating them. **Override Formats:** | Format | Description | | --- | --- | | `{"ModelName": "package.Type"}` | Model-level: Skip generating `ModelName` and import from `package` | | `{"Model.field": "package.Type"}` | Scoped: Override only specific field in specific model | **Common Use Cases:** | Use Case | Example Override | | --- | --- | | GeoJSON types | `{"Feature": "geojson_pydantic.Feature"}` | | Custom datetime | `{"Timestamp": "pendulum.DateTime"}` | | MongoDB ObjectId | `{"ObjectId": "bson.ObjectId"}` | | Custom validators | `{"Email": "my_app.types.ValidatedEmail"}` | Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-56-1) datamodel-codegen --input schema.json --type-overrides "{"CustomType": "my_app.types.CustomType"}" # (1)!` 1. `--type-overrides` - the option documented here Model-level overrides skip generation When you specify a model-level override (without a dot in the key), the generator will **skip generating that model entirely** and import it from the specified package instead. Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-4) "CustomType": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-5) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-6) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-7) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-8) "id": {"type": "integer"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-9) "custom": {"$ref": "#/definitions/CustomType"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-10) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-11) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-12) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-57-13) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-2) # filename: type_overrides_test.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-3) # timestamp: 1985-10-26T08:21:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-9) from my_app.types import CustomType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-10) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-13) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-14) __root__: Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-17) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-18) id: int | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-58-19) custom: CustomType | None = None` * * * `--use-annotated`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-annotated "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------- Use typing.Annotated for Field() with constraints. The `--use-annotated` flag generates Field definitions using typing.Annotated syntax instead of default values. This also enables `--field-constraints`. **Related:** [`--field-constraints`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/#field-constraints) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-59-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --use-annotated # (1)!` 1. `--use-annotated` - the option documented here Examples OpenAPIGraphQL **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-24) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-25) maximum: 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-26) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-27) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-28) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-29) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-30) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-31) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-32) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-33) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-34) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-35) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-36) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-37) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-38) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-39) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-40) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-41) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-42) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-43) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-44) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-45) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-46) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-47) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-48) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-49) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-50) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-51) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-52) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-53) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-54) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-55) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-56) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-57) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-58) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-59) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-60) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-61) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-62) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-63) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-64) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-65) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-66) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-67) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-68) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-69) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-70) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-71) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-72) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-73) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-74) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-75) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-76) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-77) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-78) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-79) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-80) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-81) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-82) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-83) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-84) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-85) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-86) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-87) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-88) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-89) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-90) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-91) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-92) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-93) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-94) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-95) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-96) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-97) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-98) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-99) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-100) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-101) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-102) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-103) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-104) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-105) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-106) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-107) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-108) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-109) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-110) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-111) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-112) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-113) maximum: 9223372036854775807 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-114) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-115) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-116) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-117) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-118) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-119) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-120) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-121) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-122) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-123) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-124) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-125) minItems: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-126) uniqueItems: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-127) UID: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-129) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-130) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-131) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-132) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-133) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-134) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-135) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-136) - uid [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-137) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-138) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-139) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-140) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-141) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-142) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-144) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-145) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-146) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-147) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-148) uid: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-149) $ref: '#/components/schemas/UID' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-150) phones: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-153) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-154) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-155) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-156) fax: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-157) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-158) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-160) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-161) height: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-162) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-163) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-164) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-165) minimum: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-166) maximum: 300 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-167) weight: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-168) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-169) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-170) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-171) minimum: 1.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-172) maximum: 1000.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-173) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-174) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-175) minimum: 0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-176) maximum: 200.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-177) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-178) rating: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-179) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-180) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-181) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-182) maximum: 5 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-183) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-184) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-185) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-186) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-187) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-188) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-189) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-190) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-191) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-192) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-193) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-194) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-195) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-196) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-197) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-198) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-200) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-201) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-202) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-203) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-204) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-205) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-206) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-207) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-208) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-209) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-210) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-211) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-212) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-213) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-214) minLength: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-215) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-216) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-217) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-218) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-219) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-220) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-225) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-226) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-228) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-60-229) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-2) # filename: api_constrained.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-7) from typing import Annotated [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-9) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-12) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-13) id: Annotated[int, Field(ge=0, le=9223372036854775807)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-14) name: Annotated[str, Field(max_length=256)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-15) tag: Annotated[str | None, Field(max_length=64)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-18) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-19) __root__: Annotated[list[Pet], Field(max_items=10, min_items=1, unique_items=True)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-22) class UID(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-23) __root__: Annotated[int, Field(ge=0)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-26) class Phone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-27) __root__: Annotated[str, Field(min_length=3)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-30) class FaxItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-31) __root__: Annotated[str, Field(min_length=3)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-34) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-35) id: Annotated[int, Field(ge=0)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-36) name: Annotated[str, Field(max_length=256)] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-37) tag: Annotated[str | None, Field(max_length=64)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-38) uid: UID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-39) phones: Annotated[list[Phone] | None, Field(max_items=10)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-40) fax: list[FaxItem] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-41) height: Annotated[int | float | None, Field(ge=1.0, le=300.0)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-42) weight: Annotated[float | int | None, Field(ge=1.0, le=1000.0)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-43) age: Annotated[int | None, Field(gt=0, le=200)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-44) rating: Annotated[float | None, Field(gt=0.0, le=5.0)] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-45) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-46)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-47) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-48) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-49) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-50)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-51) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-52) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-53) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-54)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-55) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-56) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-57) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-58)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-59) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-60) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-61) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-62) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-63)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-64) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-65) apiKey: Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-66) str | None, Field(description='To be used as a dataset parameter value') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-67) ] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-68) apiVersionNumber: Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-69) str | None, Field(description='To be used as a version parameter value') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-70) ] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-71) apiUrl: Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-72) AnyUrl | None, Field(description="The URL describing the dataset's fields") [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-73) ] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-74) apiDocumentationUrl: Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-75) AnyUrl | None, Field(description='A URL to the API console for each API') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-76) ] = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-77) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-78)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-79) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-80) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-81) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-82)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-83) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-84) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-85) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-86)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-87) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-61-88) event: Event | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-1) type A { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-2) field: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-3) optionalField: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-4) listField: [String!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-5) listOptionalField: [String]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-6) optionalListField: [String!] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-7) optionalListOptionalField: [String] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-8) listListField:[[String!]!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-62-9) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-2) # filename: annotated.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-7) from typing import Annotated, Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-10) from typing_extensions import TypeAliasType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-12) Boolean = TypeAliasType("Boolean", bool) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-14) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-15) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-18) String = TypeAliasType("String", str) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-20) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-21) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-24) class A(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-25) field: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-26) listField: list[String] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-27) listListField: list[list[String]] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-28) listOptionalField: list[String | None] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-29) optionalField: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-30) optionalListField: list[String] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-31) optionalListOptionalField: list[String | None] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-63-32) typename__: Annotated[Literal['A'] | None, Field(alias='__typename')] = 'A'`` * * * `--use-closed-typed-dict`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-closed-typed-dict "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------- Generate TypedDict with PEP 728 closed/extra\_items (default: enabled). When enabled (default), generates TypedDict with PEP 728 `closed=True` or `extra_items` parameters based on `additionalProperties` constraints in the schema. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-64-1) datamodel-codegen --input schema.json --output-model-type typing.TypedDict --use-closed-typed-dict # (1)!` 1. `--use-closed-typed-dict` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-4) "title": "ClosedModel", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-6) "name": {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-7) "age": {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-9) "required": ["name"], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-10) "additionalProperties": false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-65-11) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-2) # filename: typed_dict_closed.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-7) from typing_extensions import NotRequired, TypedDict [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-10) class ClosedModel(TypedDict, closed=True): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-11) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-66-12) age: NotRequired[int]` * * * `--use-decimal-for-multiple-of`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-decimal-for-multiple-of "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Generate Decimal types for fields with multipleOf constraint. The `--use-decimal-for-multiple-of` flag generates `condecimal` or `Decimal` types for numeric fields that have a `multipleOf` constraint. This ensures precise decimal arithmetic when validating values against the constraint. **See also:** [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-67-1) datamodel-codegen --input schema.json --use-decimal-for-multiple-of # (1)!` 1. `--use-decimal-for-multiple-of` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-2) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-3) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-4) "price": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-5) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-6) "multipleOf": 0.01, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-7) "minimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-8) "maximum": 99999.99 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-10) "quantity": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-11) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-12) "multipleOf": 0.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-13) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-14) "rate": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-15) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-16) "multipleOf": 0.001, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-17) "exclusiveMinimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-18) "exclusiveMaximum": 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-19) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-20) "simple_float": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-21) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-22) "minimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-23) "maximum": 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-24) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-68-26) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-2) # filename: use_decimal_for_multiple_of.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-7) from pydantic import BaseModel, condecimal, confloat [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-10) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-11) price: condecimal(ge=0, le=99999.99, multiple_of=0.01) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-12) quantity: condecimal(multiple_of=0.1) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-13) rate: condecimal(multiple_of=0.001, lt=1.0, gt=0.0) | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-69-14) simple_float: confloat(ge=0.0, le=100.0) | None = None` * * * `--use-generic-container-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use generic container types (Sequence, Mapping) for type hinting. The `--use-generic-container-types` flag generates abstract container types (Sequence, Mapping, FrozenSet) instead of concrete types (list, dict, set). If `--use-standard-collections` is set, imports from `collections.abc`; otherwise imports from `typing`. **Related:** [`--no-use-standard-collections`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-standard-collections) **See also:** [Python Version Compatibility](https://datamodel-code-generator.koxudaxi.dev/python-version-compatibility/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-70-1) datamodel-codegen --input schema.json --use-generic-container-types # (1)!` 1. `--use-generic-container-types` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-3) "$id": "test.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-4) "description": "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-6) "required": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-7) "test_id", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-8) "test_ip", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-9) "result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-10) "nested_object_result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-11) "nested_enum_result" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-12) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-14) "test_id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-15) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-16) "description": "test ID" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-18) "test_ip": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-20) "description": "test IP" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-22) "result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-23) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-24) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-25) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-26) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-27) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-28) "nested_object_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-29) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-30) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-31) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-32) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-33) "status":{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-34) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-37) "required": ["status"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-39) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-40) "nested_enum_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-41) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-42) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-43) "enum": ["red", "green"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-44) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-46) "all_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-47) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-48) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-49) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-50) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-51) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-52) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-53) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-54) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-55) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-56) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-58) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-59) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-60) "one_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-61) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-62) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-63) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-64) "oneOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-65) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-66) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-67) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-68) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-69) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-70) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-71) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-72) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-73) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-74) "any_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-75) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-76) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-77) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-78) "anyOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-79) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-80) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-81) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-82) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-83) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-84) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-85) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-86) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-87) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-88) "all_of_with_unknown_object" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-89) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-90) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-91) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-92) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-93) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-94) { "description": "TODO" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-95) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-96) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-97) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-98) "objectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-99) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-100) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-101) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-102) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-103) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-104) "deepNestedObjectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-105) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-106) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-107) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-108) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-109) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-110) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-111) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-112) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-113) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-114) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-115) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-116) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-117) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-118) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-119) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-120) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-121) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-122) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-123) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-124) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-125) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-126) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-71-127) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-2) # filename: root_model_with_additional_properties.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-7) from collections.abc import Mapping [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-8) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-10) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-11) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-13) class NestedObjectResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-14) status: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-17) class NestedEnumResult(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-18) red = 'red' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-19) green = 'green' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-20) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-21)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-22) class OneOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-23) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-26) class AnyOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-27) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-30) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-31) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-32) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-33)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-34) class AllOfResult(User): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-35) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-38) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-39) test_id: str = Field(..., description='test ID') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-40) test_ip: str = Field(..., description='test IP') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-41) result: Mapping[str, int] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-42) nested_object_result: Mapping[str, NestedObjectResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-43) nested_enum_result: Mapping[str, NestedEnumResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-44) all_of_result: Mapping[str, AllOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-45) one_of_result: Mapping[str, User | OneOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-46) any_of_result: Mapping[str, User | AnyOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-47) all_of_with_unknown_object: Mapping[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-48) objectRef: Mapping[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-72-49) deepNestedObjectRef: Mapping[str, Mapping[str, Mapping[str, User]]] | None = None` * * * `--use-non-positive-negative-number-constrained-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-non-positive-negative-number-constrained-types "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use NonPositive/NonNegative types for number constraints. The `--use-non-positive-negative-number-constrained-types` flag generates Pydantic's NonPositiveInt, NonNegativeInt, NonPositiveFloat, and NonNegativeFloat types for fields with minimum: 0 or maximum: 0 constraints, instead of using conint/confloat with ge/le parameters. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-73-1) datamodel-codegen --input schema.json --use-non-positive-negative-number-constrained-types # (1)!` 1. `--use-non-positive-negative-number-constrained-types` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-3) "title": "NumberConstraints", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-6) "non_negative_count": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-7) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-8) "minimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-9) "description": "A count that cannot be negative" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-10) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-11) "non_positive_balance": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-12) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-13) "maximum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-14) "description": "A balance that cannot be positive" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-15) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-16) "non_negative_amount": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-17) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-18) "minimum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-19) "description": "An amount that cannot be negative" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-21) "non_positive_score": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-22) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-23) "maximum": 0, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-24) "description": "A score that cannot be positive" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-25) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-26) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-74-27) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-2) # filename: use_non_positive_negative.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-7) from pydantic import ( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-8) BaseModel, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-9) Field, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-10) NonNegativeFloat, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-11) NonNegativeInt, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-12) NonPositiveFloat, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-13) NonPositiveInt, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-14) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-17) class NumberConstraints(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-18) non_negative_count: NonNegativeInt | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-19) None, description='A count that cannot be negative' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-20) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-21) non_positive_balance: NonPositiveInt | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-22) None, description='A balance that cannot be positive' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-23) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-24) non_negative_amount: NonNegativeFloat | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-25) None, description='An amount that cannot be negative' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-26) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-27) non_positive_score: NonPositiveFloat | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-28) None, description='A score that cannot be positive' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-75-29) )` * * * `--use-pendulum`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-pendulum "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------- Use pendulum types for date/time fields instead of datetime module. The `--use-pendulum` flag generates pendulum library types (DateTime, Date, Time, Duration) instead of standard datetime types. This is useful when working with the pendulum library for enhanced timezone and date handling. **See also:** [Type Mappings and Custom Types](https://datamodel-code-generator.koxudaxi.dev/type-mappings/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-76-1) datamodel-codegen --input schema.json --use-pendulum # (1)!` 1. `--use-pendulum` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-3) "title": "Event", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-4) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-5) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-6) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-7) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-9) "created_at": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-10) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-11) "format": "date-time" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-13) "event_date": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-14) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-15) "format": "date" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-17) "duration": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-18) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-19) "format": "duration" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-20) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-22) "required": ["name", "created_at"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-77-23) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-2) # filename: use_pendulum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-7) from pendulum import Date, DateTime, Duration [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-8) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-9) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-11) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-12) name: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-13) created_at: DateTime [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-14) event_date: Date | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-78-15) duration: Duration | None = None` * * * `--use-root-model-type-alias`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-root-model-type-alias "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------- Generate RootModel as type alias format for better mypy support. When enabled, root models with simple types are generated as type aliases instead of class definitions, improving mypy type inference. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-79-1) datamodel-codegen --input schema.json --use-root-model-type-alias --output-model-type pydantic_v2.BaseModel # (1)!` 1. `--use-root-model-type-alias` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-4) "Pet": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-6) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-7) "name": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-8) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-9) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-10) "Pets": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-11) "oneOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-12) {"$ref": "#/definitions/Pet"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-13) {"type": "array", "items": {"$ref": "#/definitions/Pet"}} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-14) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-15) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-16) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-80-17) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-2) # filename: root_model_type_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-7) from typing import Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-9) from pydantic import BaseModel, RootModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-11) Model = RootModel[Any] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-12) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-13)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-14) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-15) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-81-18) Pets = RootModel[Pet | list[Pet]]` * * * `--use-specialized-enum`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-specialized-enum "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------- Generate StrEnum/IntEnum for string/integer enums (Python 3.11+). The `--use-specialized-enum` flag generates specialized enum types: - `StrEnum` for string enums - `IntEnum` for integer enums This is the default behavior for Python 3.11+ targets. **Related:** [`--no-use-specialized-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-specialized-enum) , [`--use-subclass-enum`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#use-subclass-enum) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-82-1) datamodel-codegen --input schema.json --target-python-version 3.11 --use-specialized-enum # (1)!` 1. `--use-specialized-enum` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-5) "IntEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-6) "type": "integer", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-7) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-8) 1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-9) 2, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-10) 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-11) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-13) "FloatEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-14) "type": "number", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-15) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-16) 1.1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-17) 2.1, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-18) 3.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-19) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-20) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-21) "StrEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-22) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-23) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-24) "1", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-25) "2", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-26) "3" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-27) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-28) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-29) "NonTypedEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-30) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-31) "1", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-32) "2", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-33) "3" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-34) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-35) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-36) "BooleanEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-37) "type": "boolean", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-38) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-39) true, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-40) false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-41) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-42) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-43) "UnknownEnum": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-44) "type": "unknown", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-45) "enum": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-46) "a", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-47) "b" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-48) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-49) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-50) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-83-51) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-2) # filename: subclass_enum.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-7) from enum import Enum, IntEnum, StrEnum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-9) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-12) class IntEnumModel(IntEnum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-13) integer_1 = 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-14) integer_2 = 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-15) integer_3 = 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-18) class FloatEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-19) number_1_1 = 1.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-20) number_2_1 = 2.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-21) number_3_1 = 3.1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-24) class StrEnumModel(StrEnum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-25) field_1 = '1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-26) field_2 = '2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-27) field_3 = '3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-28) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-29)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-30) class NonTypedEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-31) field_1 = '1' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-32) field_2 = '2' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-33) field_3 = '3' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-34) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-35)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-36) class BooleanEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-37) boolean_True = True [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-38) boolean_False = False [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-39) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-40)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-41) class UnknownEnum(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-42) a = 'a' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-43) b = 'b' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-44) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-45)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-46) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-47) IntEnum: IntEnumModel | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-48) FloatEnum: FloatEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-49) StrEnum: StrEnumModel | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-50) NonTypedEnum: NonTypedEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-51) BooleanEnum: BooleanEnum | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-84-52) UnknownEnum: UnknownEnum | None = None` * * * `--use-standard-collections`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-collections "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------------------- Use built-in dict/list instead of typing.Dict/List. The `--use-standard-collections` flag generates built-in container types (dict, list) instead of typing module equivalents. This produces cleaner code for Python 3.10+ where built-in types support subscripting. **Related:** [`--use-generic-container-types`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-generic-container-types) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-85-1) datamodel-codegen --input schema.json --use-standard-collections # (1)!` 1. `--use-standard-collections` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-3) "$id": "test.json", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-4) "description": "test", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-5) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-6) "required": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-7) "test_id", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-8) "test_ip", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-9) "result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-10) "nested_object_result", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-11) "nested_enum_result" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-12) ], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-13) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-14) "test_id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-15) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-16) "description": "test ID" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-17) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-18) "test_ip": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-19) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-20) "description": "test IP" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-21) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-22) "result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-23) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-24) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-25) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-26) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-27) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-28) "nested_object_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-29) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-30) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-31) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-32) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-33) "status":{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-34) "type": "integer" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-35) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-36) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-37) "required": ["status"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-38) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-39) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-40) "nested_enum_result": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-41) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-42) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-43) "enum": ["red", "green"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-44) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-45) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-46) "all_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-47) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-48) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-49) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-50) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-51) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-52) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-53) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-54) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-55) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-56) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-57) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-58) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-59) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-60) "one_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-61) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-62) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-63) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-64) "oneOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-65) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-66) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-67) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-68) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-69) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-70) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-71) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-72) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-73) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-74) "any_of_result" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-75) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-76) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-77) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-78) "anyOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-79) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-80) { "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-81) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-82) "description": {"type" : "string" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-83) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-84) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-85) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-86) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-87) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-88) "all_of_with_unknown_object" :{ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-89) "type" : "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-90) "additionalProperties" : [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-91) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-92) "allOf" : [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-93) { "$ref" : "#/definitions/User" }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-94) { "description": "TODO" } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-95) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-96) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-97) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-98) "objectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-99) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-100) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-101) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-102) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-103) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-104) "deepNestedObjectRef": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-105) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-106) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-107) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-108) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-109) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-110) "additionalProperties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-111) "$ref": "#/definitions/User" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-112) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-113) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-114) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-115) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-116) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-117) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-118) "User": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-119) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-120) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-121) "name": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-122) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-123) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-124) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-125) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-126) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-86-127) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-2) # filename: root_model_with_additional_properties.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-7) from enum import Enum [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-12) class NestedObjectResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-13) status: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-16) class NestedEnumResult(Enum): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-17) red = 'red' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-18) green = 'green' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-19) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-20)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-21) class OneOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-22) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-23) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-24)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-25) class AnyOfResult(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-26) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-29) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-30) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-31) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-32)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-33) class AllOfResult(User): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-34) description: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-35) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-36)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-37) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-38) test_id: str = Field(..., description='test ID') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-39) test_ip: str = Field(..., description='test IP') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-40) result: dict[str, int] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-41) nested_object_result: dict[str, NestedObjectResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-42) nested_enum_result: dict[str, NestedEnumResult] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-43) all_of_result: dict[str, AllOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-44) one_of_result: dict[str, User | OneOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-45) any_of_result: dict[str, User | AnyOfResult] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-46) all_of_with_unknown_object: dict[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-47) objectRef: dict[str, User] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-87-48) deepNestedObjectRef: dict[str, dict[str, dict[str, User]]] | None = None` * * * `--use-standard-primitive-types`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-standard-primitive-types "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------------- Use Python standard library types for string formats instead of str. The `--use-standard-primitive-types` flag configures the code generation to use Python standard library types (UUID, IPv4Address, IPv6Address, Path) for corresponding string formats instead of plain str. This affects dataclass, msgspec, and TypedDict output types. Pydantic already uses these types by default. **Related:** [`--output-datetime-class`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#output-datetime-class) , [`--output-model-type`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#output-model-type) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-88-1) datamodel-codegen --input schema.json --output-model-type dataclasses.dataclass --use-standard-primitive-types # (1)!` 1. `--use-standard-primitive-types` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-5) "id": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-6) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-7) "format": "uuid" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-8) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-9) "ip_address": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-10) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-11) "format": "ipv4" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-13) "config_path": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-14) "type": "string", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-15) "format": "path" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-16) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-17) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-89-18) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-2) # filename: use_standard_primitive_types.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-3)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-4) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-5)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-6) from dataclasses import dataclass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-7) from ipaddress import IPv4Address [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-8) from pathlib import Path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-9) from uuid import UUID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-12) @dataclass [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-13) class Model: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-14) id: UUID | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-15) ip_address: IPv4Address | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-90-16) config_path: Path | None = None` * * * `--use-tuple-for-fixed-items`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-tuple-for-fixed-items "Permanent link") --------------------------------------------------------------------------------------------------------------------------------------------------------------- Generate tuple types for arrays with items array syntax. When `--use-tuple-for-fixed-items` is enabled and an array has `items` as an array with `minItems == maxItems == len(items)`, generate a tuple type instead of a list. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-91-1) datamodel-codegen --input schema.json --use-tuple-for-fixed-items # (1)!` 1. `--use-tuple-for-fixed-items` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-2) "$schema": "https://json-schema.org/draft-07/schema", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-3) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-4) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-5) "point": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-6) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-7) "items": [{"type": "number"}, {"type": "number"}], [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-8) "minItems": 2, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-9) "maxItems": 2 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-10) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-11) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-12) "required": ["point"] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-92-13) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-2) # filename: items_array_tuple.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-7) from pydantic import BaseModel [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-10) class Model(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-93-11) point: tuple[float, float]` * * * `--use-type-alias`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-type-alias "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------- Use TypeAlias instead of root models for type definitions (experimental). The `--use-type-alias` flag generates TypeAlias declarations instead of root model classes for certain type definitions. For Python 3.10-3.11, it generates TypeAliasType, and for Python 3.12+, it uses the 'type' statement syntax. This feature is experimental. **Related:** [`--target-python-version`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/#target-python-version) **See also:** [Model Reuse and Deduplication](https://datamodel-code-generator.koxudaxi.dev/model-reuse/) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-94-1) datamodel-codegen --input schema.json --use-type-alias # (1)!` 1. `--use-type-alias` - the option documented here Examples JSON SchemaGraphQL **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-1) { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-2) "$schema": "http://json-schema.org/draft-07/schema#", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-3) "definitions": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-4) "SimpleString": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-5) "type": "string" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-6) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-7) "UnionType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-8) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-9) {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-10) {"type": "integer"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-11) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-12) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-13) "ArrayType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-14) "type": "array", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-15) "items": {"type": "string"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-16) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-17) "AnnotatedType": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-18) "title": "MyAnnotatedType", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-19) "description": "An annotated union type", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-20) "anyOf": [ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-21) {"type": "string"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-22) {"type": "boolean"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-23) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-24) }, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-25) "ModelWithTypeAliasField": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-26) "type": "object", [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-27) "properties": { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-28) "simple_field": {"$ref": "#/definitions/SimpleString"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-29) "union_field": {"$ref": "#/definitions/UnionType"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-30) "array_field": {"$ref": "#/definitions/ArrayType"}, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-31) "annotated_field": {"$ref": "#/definitions/AnnotatedType"} [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-32) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-33) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-34) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-95-35) }` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-2) # filename: type_alias.json [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-7) from typing import Annotated, Any, TypeAlias [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-11) Model: TypeAlias = Any [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-12) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-13)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-14) SimpleString: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-17) UnionType: TypeAlias = str | int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-20) ArrayType: TypeAlias = list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-23) AnnotatedType: TypeAlias = Annotated[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-24) str | bool, [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-25) Field(..., description='An annotated union type', title='MyAnnotatedType'), [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-26) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-27) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-28)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-29) class ModelWithTypeAliasField(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-30) simple_field: SimpleString | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-31) union_field: UnionType | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-32) array_field: ArrayType | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-96-33) annotated_field: AnnotatedType | None = None` **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-1) scalar SimpleString [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-2)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-3) type Person { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-4) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-5) age: Int! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-6) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-7)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-8) type Pet { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-9) name: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-10) type: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-11) } [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-12)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-13) union UnionType = Person | Pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-14)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-15) type ModelWithTypeAliasField { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-16) simple_field: SimpleString [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-17) union_field: UnionType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-18) string_field: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-97-19) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-2) # filename: type_alias.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-7) from typing import Literal, TypeAlias, Union [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-10)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-11) Boolean: TypeAlias = bool [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-12) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-13) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-14) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-15) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-16)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-17) Int: TypeAlias = int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-18) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-19) The `Int` scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-20) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-21) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-22)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-23) SimpleString: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-24) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-25)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-26) String: TypeAlias = str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-27) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-28) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-29) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-32) class Person(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-33) age: Int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-34) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-35) typename__: Literal['Person'] | None = Field('Person', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-36) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-37)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-38) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-39) name: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-40) type: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-41) typename__: Literal['Pet'] | None = Field('Pet', alias='__typename') [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-42) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-43)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-44) UnionType: TypeAlias = Union[ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-45) 'Person', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-46) 'Pet', [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-47) ] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-48) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-49)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-50) class ModelWithTypeAliasField(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-51) simple_field: SimpleString | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-52) string_field: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-53) union_field: UnionType | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-54) typename__: Literal['ModelWithTypeAliasField'] | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-55) 'ModelWithTypeAliasField', alias='__typename' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-98-56) )`` * * * `--use-union-operator`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-union-operator "Permanent link") ------------------------------------------------------------------------------------------------------------------------------------------------- Use | operator for Union types (PEP 604). The `--use-union-operator` flag generates union types using the | operator (e.g., `str | None`) instead of `Union[str, None]` or `Optional[str]`. This is the default behavior. **Related:** [`--no-use-union-operator`](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#no-use-union-operator) Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-99-1) datamodel-codegen --input schema.json --output-model-type pydantic_v2.BaseModel --use-annotated --use-union-operator # (1)!` 1. `--use-union-operator` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-1) type A { [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-2) field: String! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-3) optionalField: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-4) listField: [String!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-5) listOptionalField: [String]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-6) optionalListField: [String!] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-7) optionalListOptionalField: [String] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-8) listListField:[[String!]!]! [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-100-9) }` **Output:** ``[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-2) # filename: annotated.graphql [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-7) from typing import Annotated, Literal [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-8)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-9) from pydantic import BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-10) from typing_extensions import TypeAliasType [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-11)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-12) Boolean = TypeAliasType("Boolean", bool) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-13) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-14) The `Boolean` scalar type represents `true` or `false`. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-15) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-16) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-17)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-18) String = TypeAliasType("String", str) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-19) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-20) The `String` scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text. [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-21) """ [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-24) class A(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-25) field: String [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-26) listField: list[String] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-27) listListField: list[list[String]] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-28) listOptionalField: list[String | None] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-29) optionalField: String | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-30) optionalListField: list[String] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-31) optionalListOptionalField: list[String | None] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-101-32) typename__: Annotated[Literal['A'] | None, Field(alias='__typename')] = 'A'`` * * * `--use-unique-items-as-set`[ยถ](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#use-unique-items-as-set "Permanent link") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Generate set types for arrays with uniqueItems constraint. The `--use-unique-items-as-set` flag generates Python set types instead of list types for JSON Schema arrays that have the uniqueItems constraint set to true, enforcing uniqueness at the type level. Usage `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-102-1) datamodel-codegen --input schema.json --use-unique-items-as-set --field-constraints # (1)!` 1. `--use-unique-items-as-set` - the option documented here Examples **Input Schema:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-1) openapi: "3.0.0" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-2) info: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-3) version: 1.0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-4) title: Swagger Petstore [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-5) license: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-6) name: MIT [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-7) servers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-8) - url: http://petstore.swagger.io/v1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-9) paths: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-10) /pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-11) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-12) summary: List all pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-13) operationId: listPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-14) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-15) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-16) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-17) - name: limit [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-18) in: query [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-19) description: How many items to return at one time (max 100) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-20) required: false [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-21) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-22) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-23) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-24) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-25) maximum: 100 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-26) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-27) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-28) description: A paged array of pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-29) headers: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-30) x-next: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-31) description: A link to the next page of responses [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-32) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-33) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-34) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-35) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-36) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-37) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-38) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-39) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-40) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-41) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-42) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-43) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-44) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-45) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-46) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-47) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-48) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-49) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-50) post: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-51) summary: Create a pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-52) operationId: createPets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-53) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-54) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-55) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-56) '201': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-57) description: Null response [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-58) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-59) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-60) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-61) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-62) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-63) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-64) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-65) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-66) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-67) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-68) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-69) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-70) /pets/{petId}: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-71) get: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-72) summary: Info for a specific pet [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-73) operationId: showPetById [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-74) tags: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-75) - pets [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-76) parameters: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-77) - name: petId [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-78) in: path [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-79) required: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-80) description: The id of the pet to retrieve [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-81) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-82) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-83) responses: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-84) '200': [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-85) description: Expected response to a valid request [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-86) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-87) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-88) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-89) $ref: "#/components/schemas/Pets" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-90) default: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-91) description: unexpected error [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-92) content: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-93) application/json: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-94) schema: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-95) $ref: "#/components/schemas/Error" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-96) x-amazon-apigateway-integration: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-97) uri: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-98) Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${PythonVersionFunction.Arn}/invocations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-99) passthroughBehavior: when_no_templates [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-100) httpMethod: POST [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-101) type: aws_proxy [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-102) components: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-103) schemas: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-104) Pet: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-105) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-106) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-107) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-108) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-109) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-110) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-111) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-112) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-113) maximum: 9223372036854775807 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-114) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-115) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-116) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-117) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-118) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-119) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-120) Pets: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-121) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-122) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-123) $ref: "#/components/schemas/Pet" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-124) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-125) minItems: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-126) uniqueItems: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-127) UID: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-128) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-129) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-130) Users: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-131) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-132) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-133) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-134) - id [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-135) - name [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-136) - uid [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-137) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-138) id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-139) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-140) format: int64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-141) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-142) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-143) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-144) maxLength: 256 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-145) tag: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-146) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-147) maxLength: 64 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-148) uid: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-149) $ref: '#/components/schemas/UID' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-150) phones: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-151) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-152) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-153) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-154) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-155) maxItems: 10 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-156) fax: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-157) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-158) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-159) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-160) minLength: 3 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-161) height: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-162) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-163) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-164) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-165) minimum: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-166) maximum: 300 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-167) weight: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-168) type: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-169) - number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-170) - integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-171) minimum: 1.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-172) maximum: 1000.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-173) age: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-174) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-175) minimum: 0.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-176) maximum: 200.0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-177) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-178) rating: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-179) type: number [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-180) minimum: 0 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-181) exclusiveMinimum: true [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-182) maximum: 5 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-183) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-184) Id: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-185) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-186) Rules: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-187) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-188) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-189) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-190) Error: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-191) required: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-192) - code [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-193) - message [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-194) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-195) code: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-196) type: integer [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-197) format: int32 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-198) message: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-199) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-200) apis: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-201) type: array [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-202) items: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-203) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-204) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-205) apiKey: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-206) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-207) description: To be used as a dataset parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-208) apiVersionNumber: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-209) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-210) description: To be used as a version parameter value [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-211) apiUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-212) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-213) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-214) minLength: 1 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-215) description: "The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-216) apiDocumentationUrl: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-217) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-218) format: uri [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-219) description: A URL to the API console for each API [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-220) Event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-221) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-222) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-223) name: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-224) type: string [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-225) Result: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-226) type: object [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-227) properties: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-228) event: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-103-229) $ref: '#/components/schemas/Event'` **Output:** `[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-1) # generated by datamodel-codegen: [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-2) # filename: api_constrained.yaml [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-3) # timestamp: 2019-07-26T00:00:00+00:00 [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-4)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-5) from __future__ import annotations [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-6)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-7) from pydantic import AnyUrl, BaseModel, Field [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-8) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-9)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-10) class Pet(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-11) id: int = Field(..., ge=0, le=9223372036854775807) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-12) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-13) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-14) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-15)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-16) class Pets(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-17) __root__: set[Pet] = Field(..., max_items=10, min_items=1, unique_items=True) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-18) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-19)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-20) class UID(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-21) __root__: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-22) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-23)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-24) class Phone(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-25) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-26) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-27)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-28) class FaxItem(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-29) __root__: str = Field(..., min_length=3) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-30) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-31)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-32) class User(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-33) id: int = Field(..., ge=0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-34) name: str = Field(..., max_length=256) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-35) tag: str | None = Field(None, max_length=64) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-36) uid: UID [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-37) phones: list[Phone] | None = Field(None, max_items=10) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-38) fax: list[FaxItem] | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-39) height: int | float | None = Field(None, ge=1.0, le=300.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-40) weight: float | int | None = Field(None, ge=1.0, le=1000.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-41) age: int | None = Field(None, gt=0, le=200) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-42) rating: float | None = Field(None, gt=0.0, le=5.0) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-43) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-44)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-45) class Users(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-46) __root__: list[User] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-47) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-48)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-49) class Id(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-50) __root__: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-51) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-52)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-53) class Rules(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-54) __root__: list[str] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-55) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-56)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-57) class Error(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-58) code: int [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-59) message: str [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-60) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-61)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-62) class Api(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-63) apiKey: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-64) None, description='To be used as a dataset parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-65) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-66) apiVersionNumber: str | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-67) None, description='To be used as a version parameter value' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-68) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-69) apiUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-70) None, description="The URL describing the dataset's fields" [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-71) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-72) apiDocumentationUrl: AnyUrl | None = Field( [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-73) None, description='A URL to the API console for each API' [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-74) ) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-75) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-76)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-77) class Apis(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-78) __root__: list[Api] [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-79) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-80)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-81) class Event(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-82) name: str | None = None [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-83) [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-84)[](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-85) class Result(BaseModel): [](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/#__codelineno-104-86) event: Event | None = None` * * * ---