diff --git a/bin/configs/dart-dio-petstore-client-use-lower-camel-case.yaml b/bin/configs/dart-dio-petstore-client-use-lower-camel-case.yaml
new file mode 100644
index 000000000000..2863135e90a6
--- /dev/null
+++ b/bin/configs/dart-dio-petstore-client-use-lower-camel-case.yaml
@@ -0,0 +1,13 @@
+generatorName: dart-dio
+outputDir: samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case
+inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-use-lower-camel-case.yaml
+templateDir: modules/openapi-generator/src/main/resources/dart/libraries/dio
+typeMappings:
+ Client: "ModelClient"
+ File: "ModelFile"
+ EnumClass: "ModelEnumClass"
+additionalProperties:
+ hideGenerationTimestamp: "true"
+ enumUnknownDefaultCase: "true"
+ serializationLibrary: "json_serializable"
+ useLowerCamelCase: "true"
diff --git a/bin/configs/dart-petstore-client-use-lower-camel-case.yaml b/bin/configs/dart-petstore-client-use-lower-camel-case.yaml
new file mode 100644
index 000000000000..0e9fc7b1f8e4
--- /dev/null
+++ b/bin/configs/dart-petstore-client-use-lower-camel-case.yaml
@@ -0,0 +1,10 @@
+generatorName: dart
+outputDir: samples/openapi3/client/petstore/dart2/petstore_client_lib_use_lower_camel_case
+inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore-use-lower-camel-case.yaml
+templateDir: modules/openapi-generator/src/main/resources/dart2
+typeMappings:
+ Client: "ModelClient"
+ File: "ModelFile"
+additionalProperties:
+ hideGenerationTimestamp: "true"
+ useLowerCamelCase: "true"
\ No newline at end of file
diff --git a/docs/generators/dart-dio.md b/docs/generators/dart-dio.md
index f93b09ffbf8d..eb4e5a962ab8 100644
--- a/docs/generators/dart-dio.md
+++ b/docs/generators/dart-dio.md
@@ -4,55 +4,56 @@ title: Documentation for the dart-dio Generator
## METADATA
-| Property | Value | Notes |
-| -------- | ----- | ----- |
-| generator name | dart-dio | pass this to the generate command after -g |
-| generator stability | STABLE | |
-| generator type | CLIENT | |
-| generator language | Dart | |
-| generator default templating engine | mustache | |
-| helpTxt | Generates a Dart Dio client library. | |
+| Property | Value | Notes |
+|-------------------------------------|--------------------------------------|--------------------------------------------|
+| generator name | dart-dio | pass this to the generate command after -g |
+| generator stability | STABLE | |
+| generator type | CLIENT | |
+| generator language | Dart | |
+| generator default templating engine | mustache | |
+| helpTxt | Generates a Dart Dio client library. | |
## CONFIG OPTIONS
-These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
-| Option | Description | Values | Default |
-| ------ | ----------- | ------ | ------- |
-|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
-|dateLibrary|Specify Date library|
**core**
[DEFAULT] Dart core library (DateTime)
**timemachine**
Time Machine is date and time library for Flutter, Web, and Server with support for timezones, calendars, cultures, formatting and parsing.
|core|
-|disallowAdditionalPropertiesIfNotPresent|If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.|
**false**
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
**true**
Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
|true|
-|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
-|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|
**false**
No changes to the enum's are made, this is the default option.
**true**
With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.
|false|
-|equalityCheckMethod|Specify equality check method. Takes effect only in case if serializationLibrary is json_serializable.|
**default**
[DEFAULT] Built in hash code generation method
**equatable**
Uses equatable library for equality checking
|default|
-|finalProperties|Whether properties are marked as final when using Json Serializable for serialization| |true|
-|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default).|
**true**
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
**false**
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
|true|
-|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
-|pubAuthor|Author name in generated pubspec| |Author|
-|pubAuthorEmail|Email address of the author in generated pubspec| |author@homepage|
-|pubDescription|Description in generated pubspec| |OpenAPI API client|
-|pubHomepage|Homepage in generated pubspec| |homepage|
-|pubLibrary|Library name in generated code| |openapi.api|
-|pubName|Name in generated pubspec| |openapi|
-|pubPublishTo|Publish_to in generated pubspec| |null|
-|pubRepository|Repository in generated pubspec| |null|
-|pubVersion|Version in generated pubspec| |1.0.0|
-|serializationLibrary|Specify serialization library|
**built_value**
[DEFAULT] built_value
**json_serializable**
[BETA] json_serializable
|built_value|
-|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
-|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
-|sourceFolder|source folder for generated code| |src|
-|useEnumExtension|Allow the 'x-enum-values' extension for enums| |false|
+These options may be applied as additional-properties (cli) or configOptions (plugins). Refer
+to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
+
+| Option | Description | Values | Default |
+|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------|
+| allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false | | false |
+| dateLibrary | Specify Date library |
**core**
[DEFAULT] Dart core library (DateTime)
**timemachine**
Time Machine is date and time library for Flutter, Web, and Server with support for timezones, calendars, cultures, formatting and parsing.
| core |
+| disallowAdditionalPropertiesIfNotPresent | If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. |
**false**
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
**true**
Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
| true |
+| ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). | | true |
+| enumUnknownDefaultCase | If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case. |
**false**
No changes to the enum's are made, this is the default option.
**true**
With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.
| false |
+| equalityCheckMethod | Specify equality check method. Takes effect only in case if serializationLibrary is json_serializable. |
**default**
[DEFAULT] Built in hash code generation method
**equatable**
Uses equatable library for equality checking
| default |
+| finalProperties | Whether properties are marked as final when using Json Serializable for serialization | | true |
+| legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). |
**true**
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
**false**
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
| true |
+| prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | | false |
+| pubAuthor | Author name in generated pubspec | | Author |
+| pubAuthorEmail | Email address of the author in generated pubspec | | author@homepage |
+| pubDescription | Description in generated pubspec | | OpenAPI API client |
+| pubHomepage | Homepage in generated pubspec | | homepage |
+| pubLibrary | Library name in generated code | | openapi.api |
+| pubName | Name in generated pubspec | | openapi |
+| pubPublishTo | Publish_to in generated pubspec | | null |
+| pubRepository | Repository in generated pubspec | | null |
+| pubVersion | Version in generated pubspec | | 1.0.0 |
+| serializationLibrary | Specify serialization library |
**built_value**
[DEFAULT] built_value
**json_serializable**
[BETA] json_serializable
| built_value |
+| sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | | true |
+| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | | true |
+| sourceFolder | source folder for generated code | | src |
+| useEnumExtension | Allow the 'x-enum-values' extension for enums | | false |
+| useLowerCamelCase | Use the lower camel case style |
**true**
The values and names will be in lowerCamelCase, also all screaming case values will then be in lower camel case.
**false**
The values and names can still be in screaming case.
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
**true**
Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
|true|
-|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
-|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|
**false**
No changes to the enum's are made, this is the default option.
**true**
With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.
|false|
-|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default).|
**true**
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
**false**
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
|true|
-|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
-|pubAuthor|Author name in generated pubspec| |Author|
-|pubAuthorEmail|Email address of the author in generated pubspec| |author@homepage|
-|pubDescription|Description in generated pubspec| |OpenAPI API client|
-|pubHomepage|Homepage in generated pubspec| |homepage|
-|pubLibrary|Library name in generated code| |openapi.api|
-|pubName|Name in generated pubspec| |openapi|
-|pubPublishTo|Publish_to in generated pubspec| |null|
-|pubRepository|Repository in generated pubspec| |null|
-|pubVersion|Version in generated pubspec| |1.0.0|
-|serializationLibrary|Specify serialization library|
**native_serialization**
Use native serializer, backwards compatible
|native_serialization|
-|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
-|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
-|sourceFolder|source folder for generated code| |src|
-|useEnumExtension|Allow the 'x-enum-values' extension for enums| |false|
+These options may be applied as additional-properties (cli) or configOptions (plugins). Refer
+to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
+
+| Option | Description | Values | Default |
+|------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------|
+| allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false | | false |
+| disallowAdditionalPropertiesIfNotPresent | If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. |
**false**
The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.
**true**
Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.
| true |
+| ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). | | true |
+| enumUnknownDefaultCase | If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case. |
**false**
No changes to the enum's are made, this is the default option.
**true**
With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.
| false |
+| legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). |
**true**
The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.
**false**
The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.
| true |
+| prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | | false |
+| pubAuthor | Author name in generated pubspec | | Author |
+| pubAuthorEmail | Email address of the author in generated pubspec | | author@homepage |
+| pubDescription | Description in generated pubspec | | OpenAPI API client |
+| pubHomepage | Homepage in generated pubspec | | homepage |
+| pubLibrary | Library name in generated code | | openapi.api |
+| pubName | Name in generated pubspec | | openapi |
+| pubPublishTo | Publish_to in generated pubspec | | null |
+| pubRepository | Repository in generated pubspec | | null |
+| pubVersion | Version in generated pubspec | | 1.0.0 |
+| serializationLibrary | Specify serialization library |
**native_serialization**
Use native serializer, backwards compatible
| native_serialization |
+| sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | | true |
+| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | | true |
+| sourceFolder | source folder for generated code | | src |
+| useEnumExtension | Allow the 'x-enum-values' extension for enums | | false |
+| useLowerCamelCase | Use the lower camel case style |
**true**
The values and names will be in lowerCamelCase, also all screaming case values will then be in lower camel case.
**false**
The values and names can still be in screaming case.
| true |
## IMPORT MAPPING
| Type/Alias | Imports |
-| ---------- | ------- |
-
+|------------|---------|
## INSTANTIATION TYPES
| Type/Alias | Instantiated By |
-| ---------- | --------------- |
-
+|------------|-----------------|
## LANGUAGE PRIMITIVES
@@ -141,119 +142,126 @@ These options may be applied as additional-properties (cli) or configOptions (pl
## FEATURE SET
-
### Client Modification Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasePath|✓|ToolingExtension
-|Authorizations|✗|ToolingExtension
-|UserAgent|✗|ToolingExtension
-|MockServer|✗|ToolingExtension
+
+| Name | Supported | Defined By |
+|----------------|-----------|------------------|
+| BasePath | ✓ | ToolingExtension |
+| Authorizations | ✗ | ToolingExtension |
+| UserAgent | ✗ | ToolingExtension |
+| MockServer | ✗ | ToolingExtension |
### Data Type Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Custom|✗|OAS2,OAS3
-|Int32|✓|OAS2,OAS3
-|Int64|✓|OAS2,OAS3
-|Float|✓|OAS2,OAS3
-|Double|✓|OAS2,OAS3
-|Decimal|✓|ToolingExtension
-|String|✓|OAS2,OAS3
-|Byte|✓|OAS2,OAS3
-|Binary|✓|OAS2,OAS3
-|Boolean|✓|OAS2,OAS3
-|Date|✓|OAS2,OAS3
-|DateTime|✓|OAS2,OAS3
-|Password|✓|OAS2,OAS3
-|File|✓|OAS2
-|Uuid|✗|
-|Array|✓|OAS2,OAS3
-|Null|✗|OAS3
-|AnyType|✗|OAS2,OAS3
-|Object|✓|OAS2,OAS3
-|Maps|✓|ToolingExtension
-|CollectionFormat|✓|OAS2
-|CollectionFormatMulti|✓|OAS2
-|Enum|✓|OAS2,OAS3
-|ArrayOfEnum|✓|ToolingExtension
-|ArrayOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
-|ArrayOfCollectionOfModel|✓|ToolingExtension
-|ArrayOfCollectionOfEnum|✓|ToolingExtension
-|MapOfEnum|✓|ToolingExtension
-|MapOfModel|✓|ToolingExtension
-|MapOfCollectionOfPrimitives|✓|ToolingExtension
-|MapOfCollectionOfModel|✓|ToolingExtension
-|MapOfCollectionOfEnum|✓|ToolingExtension
+
+| Name | Supported | Defined By |
+|-------------------------------|-----------|------------------|
+| Custom | ✗ | OAS2,OAS3 |
+| Int32 | ✓ | OAS2,OAS3 |
+| Int64 | ✓ | OAS2,OAS3 |
+| Float | ✓ | OAS2,OAS3 |
+| Double | ✓ | OAS2,OAS3 |
+| Decimal | ✓ | ToolingExtension |
+| String | ✓ | OAS2,OAS3 |
+| Byte | ✓ | OAS2,OAS3 |
+| Binary | ✓ | OAS2,OAS3 |
+| Boolean | ✓ | OAS2,OAS3 |
+| Date | ✓ | OAS2,OAS3 |
+| DateTime | ✓ | OAS2,OAS3 |
+| Password | ✓ | OAS2,OAS3 |
+| File | ✓ | OAS2 |
+| Uuid | ✗ | |
+| Array | ✓ | OAS2,OAS3 |
+| Null | ✗ | OAS3 |
+| AnyType | ✗ | OAS2,OAS3 |
+| Object | ✓ | OAS2,OAS3 |
+| Maps | ✓ | ToolingExtension |
+| CollectionFormat | ✓ | OAS2 |
+| CollectionFormatMulti | ✓ | OAS2 |
+| Enum | ✓ | OAS2,OAS3 |
+| ArrayOfEnum | ✓ | ToolingExtension |
+| ArrayOfModel | ✓ | ToolingExtension |
+| ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
+| ArrayOfCollectionOfModel | ✓ | ToolingExtension |
+| ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
+| MapOfEnum | ✓ | ToolingExtension |
+| MapOfModel | ✓ | ToolingExtension |
+| MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
+| MapOfCollectionOfModel | ✓ | ToolingExtension |
+| MapOfCollectionOfEnum | ✓ | ToolingExtension |
### Documentation Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Readme|✓|ToolingExtension
-|Model|✓|ToolingExtension
-|Api|✓|ToolingExtension
+
+| Name | Supported | Defined By |
+|--------|-----------|------------------|
+| Readme | ✓ | ToolingExtension |
+| Model | ✓ | ToolingExtension |
+| Api | ✓ | ToolingExtension |
### Global Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Host|✓|OAS2,OAS3
-|BasePath|✓|OAS2,OAS3
-|Info|✓|OAS2,OAS3
-|Schemes|✗|OAS2,OAS3
-|PartialSchemes|✓|OAS2,OAS3
-|Consumes|✓|OAS2
-|Produces|✓|OAS2
-|ExternalDocumentation|✓|OAS2,OAS3
-|Examples|✓|OAS2,OAS3
-|XMLStructureDefinitions|✗|OAS2,OAS3
-|MultiServer|✗|OAS3
-|ParameterizedServer|✗|OAS3
-|ParameterStyling|✗|OAS3
-|Callbacks|✗|OAS3
-|LinkObjects|✗|OAS3
+
+| Name | Supported | Defined By |
+|-------------------------|-----------|------------|
+| Host | ✓ | OAS2,OAS3 |
+| BasePath | ✓ | OAS2,OAS3 |
+| Info | ✓ | OAS2,OAS3 |
+| Schemes | ✗ | OAS2,OAS3 |
+| PartialSchemes | ✓ | OAS2,OAS3 |
+| Consumes | ✓ | OAS2 |
+| Produces | ✓ | OAS2 |
+| ExternalDocumentation | ✓ | OAS2,OAS3 |
+| Examples | ✓ | OAS2,OAS3 |
+| XMLStructureDefinitions | ✗ | OAS2,OAS3 |
+| MultiServer | ✗ | OAS3 |
+| ParameterizedServer | ✗ | OAS3 |
+| ParameterStyling | ✗ | OAS3 |
+| Callbacks | ✗ | OAS3 |
+| LinkObjects | ✗ | OAS3 |
### Parameter Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Path|✓|OAS2,OAS3
-|Query|✓|OAS2,OAS3
-|Header|✓|OAS2,OAS3
-|Body|✓|OAS2
-|FormUnencoded|✓|OAS2
-|FormMultipart|✓|OAS2
-|Cookie|✓|OAS3
+
+| Name | Supported | Defined By |
+|---------------|-----------|------------|
+| Path | ✓ | OAS2,OAS3 |
+| Query | ✓ | OAS2,OAS3 |
+| Header | ✓ | OAS2,OAS3 |
+| Body | ✓ | OAS2 |
+| FormUnencoded | ✓ | OAS2 |
+| FormMultipart | ✓ | OAS2 |
+| Cookie | ✓ | OAS3 |
### Schema Support Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|Simple|✓|OAS2,OAS3
-|Composite|✗|OAS2,OAS3
-|Polymorphism|✗|OAS2,OAS3
-|Union|✗|OAS3
-|allOf|✗|OAS2,OAS3
-|anyOf|✗|OAS3
-|oneOf|✗|OAS3
-|not|✗|OAS3
+
+| Name | Supported | Defined By |
+|--------------|-----------|------------|
+| Simple | ✓ | OAS2,OAS3 |
+| Composite | ✗ | OAS2,OAS3 |
+| Polymorphism | ✗ | OAS2,OAS3 |
+| Union | ✗ | OAS3 |
+| allOf | ✗ | OAS2,OAS3 |
+| anyOf | ✗ | OAS3 |
+| oneOf | ✗ | OAS3 |
+| not | ✗ | OAS3 |
### Security Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|BasicAuth|✓|OAS2,OAS3
-|ApiKey|✓|OAS2,OAS3
-|OpenIDConnect|✗|OAS3
-|BearerToken|✓|OAS3
-|OAuth2_Implicit|✓|OAS2,OAS3
-|OAuth2_Password|✗|OAS2,OAS3
-|OAuth2_ClientCredentials|✗|OAS2,OAS3
-|OAuth2_AuthorizationCode|✗|OAS2,OAS3
-|SignatureAuth|✗|OAS3
-|AWSV4Signature|✗|ToolingExtension
+
+| Name | Supported | Defined By |
+|--------------------------|-----------|------------------|
+| BasicAuth | ✓ | OAS2,OAS3 |
+| ApiKey | ✓ | OAS2,OAS3 |
+| OpenIDConnect | ✗ | OAS3 |
+| BearerToken | ✓ | OAS3 |
+| OAuth2_Implicit | ✓ | OAS2,OAS3 |
+| OAuth2_Password | ✗ | OAS2,OAS3 |
+| OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
+| OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
+| SignatureAuth | ✗ | OAS3 |
+| AWSV4Signature | ✗ | ToolingExtension |
### Wire Format Feature
-| Name | Supported | Defined By |
-| ---- | --------- | ---------- |
-|JSON|✓|OAS2,OAS3
-|XML|✗|OAS2,OAS3
-|PROTOBUF|✗|ToolingExtension
-|Custom|✗|OAS2,OAS3
+
+| Name | Supported | Defined By |
+|----------|-----------|------------------|
+| JSON | ✓ | OAS2,OAS3 |
+| XML | ✗ | OAS2,OAS3 |
+| PROTOBUF | ✗ | ToolingExtension |
+| Custom | ✗ | OAS2,OAS3 |
diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
index 79bcdf1f5b07..007c727801b0 100644
--- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
+++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractDartCodegen.java
@@ -46,6 +46,7 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
public static final String PUB_REPOSITORY = "pubRepository";
public static final String PUB_PUBLISH_TO = "pubPublishTo";
public static final String USE_ENUM_EXTENSION = "useEnumExtension";
+ public static final String USE_LOWER_CAMEL_CASE = "useLowerCamelCase";
@Setter protected String pubLibrary = "openapi.api";
@Setter protected String pubName = "openapi";
@@ -57,6 +58,7 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
@Setter protected String pubRepository = null;
@Setter protected String pubPublishTo = null;
@Setter protected boolean useEnumExtension = false;
+ @Setter protected boolean useLowerCamelCase = false;
@Setter protected String sourceFolder = "src";
protected String libPath = "lib" + File.separator;
protected String apiDocPath = "doc/";
@@ -196,6 +198,7 @@ public AbstractDartCodegen() {
addOption(PUB_REPOSITORY, "Repository in generated pubspec", pubRepository);
addOption(PUB_PUBLISH_TO, "Publish_to in generated pubspec", pubPublishTo);
addOption(USE_ENUM_EXTENSION, "Allow the 'x-enum-values' extension for enums", String.valueOf(useEnumExtension));
+ addOption(USE_LOWER_CAMEL_CASE, "Use lower camel case", String.valueOf(useLowerCamelCase));
addOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC, sourceFolder);
}
@@ -302,6 +305,12 @@ public void processOpts() {
additionalProperties.put(USE_ENUM_EXTENSION, useEnumExtension);
}
+ if (additionalProperties.containsKey(USE_LOWER_CAMEL_CASE)) {
+ this.setUseLowerCamelCase(convertPropertyToBooleanAndWriteBack(USE_LOWER_CAMEL_CASE));
+ } else {
+ additionalProperties.put(USE_LOWER_CAMEL_CASE, useLowerCamelCase);
+ }
+
if (additionalProperties.containsKey(CodegenConstants.SOURCE_FOLDER)) {
String srcFolder = (String) additionalProperties.get(CodegenConstants.SOURCE_FOLDER);
this.setSourceFolder(srcFolder.replace('/', File.separatorChar));
@@ -386,7 +395,7 @@ public String toVarName(String name) {
}
name = name.replaceAll("^_", "");
- // if it's all upper case, do nothing
+ // if it's all upper case and more than two letters
if (name.matches("^[A-Z_]*$")) {
return name;
}
@@ -400,7 +409,7 @@ public String toVarName(String name) {
name = sanitizeName(name);
// camelize (lower first character) the variable name
- // pet_id => petId
+ // pet_id => petI
name = camelize(name, LOWERCASE_FIRST_LETTER);
if (name.matches("^\\d.*")) {
@@ -732,9 +741,14 @@ public String toEnumVarName(String value, String datatype) {
return enumNameMapping.get(value);
}
- if (value.length() == 0) {
+ if (value.isEmpty()) {
return "empty";
}
+
+ if (useLowerCamelCase && value.matches("^[A-Z_]*$")) {
+ value = value.toLowerCase();
+ }
+
if (("number".equalsIgnoreCase(datatype) ||
"double".equalsIgnoreCase(datatype) ||
"int".equalsIgnoreCase(datatype)) &&
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
index 87dabbbfd00d..1db5c5625b35 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/DartClientOptionsTest.java
@@ -52,6 +52,7 @@ protected void verifyOptions() {
verify(clientCodegen).setPubPublishTo(DartClientOptionsProvider.PUB_PUBLISH_TO_VALUE);
verify(clientCodegen).setSourceFolder(DartClientOptionsProvider.SOURCE_FOLDER_VALUE);
verify(clientCodegen).setUseEnumExtension(Boolean.parseBoolean(DartClientOptionsProvider.USE_ENUM_EXTENSION));
+ verify(clientCodegen).setUseLowerCamelCase(Boolean.parseBoolean(DartClientOptionsProvider.USE_LOWER_CAMEL_CASE));
verify(clientCodegen).setEnumUnknownDefaultCase(Boolean.parseBoolean(DartClientOptionsProvider.ENUM_UNKNOWN_DEFAULT_CASE_VALUE));
}
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
index cb3350d57e2e..0437eaf86b3a 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/dart/dio/DartDioClientOptionsTest.java
@@ -54,6 +54,7 @@ protected void verifyOptions() {
verify(clientCodegen).setDateLibrary(DartDioClientCodegen.DATE_LIBRARY_DEFAULT);
verify(clientCodegen).setLibrary(DartDioClientCodegen.SERIALIZATION_LIBRARY_DEFAULT);
verify(clientCodegen).setEqualityCheckMethod(DartDioClientCodegen.EQUALITY_CHECK_METHOD_DEFAULT);
+ verify(clientCodegen).setUseLowerCamelCase(Boolean.parseBoolean(DartDioClientOptionsProvider.USE_LOWER_CAMEL_CASE));
verify(clientCodegen).setEnumUnknownDefaultCase(Boolean.parseBoolean(DartDioClientOptionsProvider.ENUM_UNKNOWN_DEFAULT_CASE_VALUE));
}
}
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
index 50bbfdb5e9b5..fdc5e00573bf 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartClientOptionsProvider.java
@@ -38,6 +38,7 @@ public class DartClientOptionsProvider implements OptionsProvider {
public static final String PUB_PUBLISH_TO_VALUE = "Publish To";
public static final String SOURCE_FOLDER_VALUE = "src";
public static final String USE_ENUM_EXTENSION = "true";
+ public static final String USE_LOWER_CAMEL_CASE = "false";
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true";
public static final String ENUM_UNKNOWN_DEFAULT_CASE_VALUE = "false";
@@ -64,6 +65,7 @@ public Map createOptions() {
.put(DartClientCodegen.PUB_PUBLISH_TO, PUB_PUBLISH_TO_VALUE)
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
.put(DartClientCodegen.USE_ENUM_EXTENSION, USE_ENUM_EXTENSION)
+ .put(DartClientCodegen.USE_LOWER_CAMEL_CASE, USE_LOWER_CAMEL_CASE)
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
.put(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "true")
diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
index bcda220f4328..ef5c34543cc1 100644
--- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
+++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/options/DartDioClientOptionsProvider.java
@@ -40,6 +40,7 @@ public class DartDioClientOptionsProvider implements OptionsProvider {
public static final String PUB_REPOSITORY_VALUE = "Repository";
public static final String PUB_PUBLISH_TO_VALUE = "Publish to";
public static final String ENUM_UNKNOWN_DEFAULT_CASE_VALUE = "false";
+ public static final String USE_LOWER_CAMEL_CASE = "false";
@Override
public String getLanguage() {
@@ -67,6 +68,7 @@ public Map createOptions() {
.put(DartDioClientCodegen.EQUALITY_CHECK_METHOD, DartDioClientCodegen.EQUALITY_CHECK_METHOD_DEFAULT)
.put(CodegenConstants.SOURCE_FOLDER, SOURCE_FOLDER_VALUE)
.put(DartDioClientCodegen.USE_ENUM_EXTENSION, USE_ENUM_EXTENSION)
+ .put(DartDioClientCodegen.USE_LOWER_CAMEL_CASE, USE_LOWER_CAMEL_CASE)
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
.put(CodegenConstants.LEGACY_DISCRIMINATOR_BEHAVIOR, "true")
diff --git a/modules/openapi-generator/src/test/resources/3_0/petstore-use-lower-camel-case.yaml b/modules/openapi-generator/src/test/resources/3_0/petstore-use-lower-camel-case.yaml
new file mode 100644
index 000000000000..8bb19186f3cb
--- /dev/null
+++ b/modules/openapi-generator/src/test/resources/3_0/petstore-use-lower-camel-case.yaml
@@ -0,0 +1,2069 @@
+openapi: 3.0.0
+info:
+ description: >-
+ This spec is mainly for testing Petstore server and contains fake endpoints,
+ models. Please do not use this for any other purpose. Special characters: "
+ \
+ version: 1.0.0
+ title: OpenAPI Petstore
+ license:
+ name: Apache-2.0
+ url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
+tags:
+ - name: pet
+ description: Everything about your Pets
+ - name: store
+ description: Access to Petstore orders
+ - name: user
+ description: Operations about user
+paths:
+ /foo:
+ get:
+ responses:
+ default:
+ description: response
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ string:
+ $ref: '#/components/schemas/Foo'
+ /pet:
+ servers:
+ - url: 'http://petstore.swagger.io/v2'
+ - url: 'http://path-server-test.petstore.local/v2'
+ - url: 'http://{server}.swagger.io:{port}/v2'
+ description: test server with variables
+ variables:
+ server:
+ description: target server
+ enum:
+ - 'petstore'
+ - 'qa-petstore'
+ - 'dev-petstore'
+ default: 'petstore'
+ port:
+ enum:
+ - 80
+ - 8080
+ default: 80
+ post:
+ tags:
+ - pet
+ summary: Add a new pet to the store
+ description: ''
+ operationId: addPet
+ responses:
+ '200':
+ description: Successful operation
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ $ref: '#/components/requestBodies/Pet'
+ put:
+ tags:
+ - pet
+ summary: Update an existing pet
+ description: ''
+ operationId: updatePet
+ x-webclient-blocking: true
+ responses:
+ '200':
+ description: Successful operation
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ '405':
+ description: Validation exception
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ $ref: '#/components/requestBodies/Pet'
+ /pet/findByStatus:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by status
+ description: Multiple status values can be provided with comma separated strings
+ operationId: findPetsByStatus
+ x-webclient-blocking: true
+ parameters:
+ - name: status
+ in: query
+ description: Status values that need to be considered for filter
+ required: true
+ style: form
+ explode: false
+ deprecated: true
+ schema:
+ type: array
+ items:
+ type: string
+ enum:
+ - available
+ - pending
+ - sold
+ default: available
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ '400':
+ description: Invalid status value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ /pet/findByTags:
+ get:
+ tags:
+ - pet
+ summary: Finds Pets by tags
+ description: >-
+ Multiple tags can be provided with comma separated strings. Use tag1,
+ tag2, tag3 for testing.
+ operationId: findPetsByTags
+ x-webclient-blocking: true
+ parameters:
+ - name: tags
+ in: query
+ description: Tags to filter by
+ required: true
+ style: form
+ explode: false
+ schema:
+ type: array
+ items:
+ type: string
+ uniqueItems: true
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ uniqueItems: true
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Pet'
+ uniqueItems: true
+ '400':
+ description: Invalid tag value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ deprecated: true
+ '/pet/{petId}':
+ get:
+ tags:
+ - pet
+ summary: Find pet by ID
+ description: Returns a single pet
+ operationId: getPetById
+ x-webclient-blocking: true
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to return
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Pet not found
+ security:
+ - api_key: []
+ post:
+ tags:
+ - pet
+ summary: Updates a pet in the store with form data
+ description: ''
+ operationId: updatePetWithForm
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet that needs to be updated
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: Successful operation
+ '405':
+ description: Invalid input
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ type: object
+ properties:
+ name:
+ description: Updated name of the pet
+ type: string
+ status:
+ description: Updated status of the pet
+ type: string
+ delete:
+ tags:
+ - pet
+ summary: Deletes a pet
+ description: ''
+ operationId: deletePet
+ parameters:
+ - name: api_key
+ in: header
+ required: false
+ schema:
+ type: string
+ - name: petId
+ in: path
+ description: Pet id to delete
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: Successful operation
+ '400':
+ description: Invalid pet value
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ '/pet/{petId}/uploadImage':
+ post:
+ tags:
+ - pet
+ summary: uploads an image
+ description: ''
+ operationId: uploadFile
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to update
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ additionalMetadata:
+ description: Additional data to pass to server
+ type: string
+ file:
+ description: file to upload
+ type: string
+ format: binary
+ /store/inventory:
+ get:
+ tags:
+ - store
+ summary: Returns pet inventories by status
+ description: Returns a map of status codes to quantities
+ operationId: getInventory
+ x-webclient-blocking: false
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ type: object
+ additionalProperties:
+ type: integer
+ format: int32
+ security:
+ - api_key: []
+ /store/order:
+ post:
+ tags:
+ - store
+ summary: Place an order for a pet
+ description: ''
+ operationId: placeOrder
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ '400':
+ description: Invalid Order
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ description: order placed for purchasing the pet
+ required: true
+ '/store/order/{order_id}':
+ get:
+ tags:
+ - store
+ summary: Find purchase order by ID
+ description: >-
+ For valid response try integer IDs with value <= 5 or > 10. Other values
+ will generate exceptions
+ operationId: getOrderById
+ parameters:
+ - name: order_id
+ in: path
+ description: ID of pet that needs to be fetched
+ required: true
+ schema:
+ type: integer
+ format: int64
+ minimum: 1
+ maximum: 5
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Order'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Order'
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ delete:
+ tags:
+ - store
+ summary: Delete purchase order by ID
+ description: >-
+ For valid response try integer IDs with value < 1000. Anything above
+ 1000 or nonintegers will generate API errors
+ operationId: deleteOrder
+ parameters:
+ - name: order_id
+ in: path
+ description: ID of the order that needs to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid ID supplied
+ '404':
+ description: Order not found
+ /user:
+ post:
+ tags:
+ - user
+ summary: Create user
+ description: This can only be done by the logged in user.
+ operationId: createUser
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Created user object
+ required: true
+ /user/createWithArray:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithArrayInput
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ $ref: '#/components/requestBodies/UserArray'
+ /user/createWithList:
+ post:
+ tags:
+ - user
+ summary: Creates list of users with given input array
+ description: ''
+ operationId: createUsersWithListInput
+ responses:
+ default:
+ description: successful operation
+ requestBody:
+ $ref: '#/components/requestBodies/UserArray'
+ /user/login:
+ get:
+ tags:
+ - user
+ summary: Logs user into the system
+ description: ''
+ operationId: loginUser
+ parameters:
+ - name: username
+ in: query
+ description: The user name for login
+ required: true
+ schema:
+ type: string
+ - name: password
+ in: query
+ description: The password for login in clear text
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ headers:
+ X-Rate-Limit:
+ description: calls per hour allowed by the user
+ schema:
+ type: integer
+ format: int32
+ X-Expires-After:
+ description: date in UTC when token expires
+ schema:
+ type: string
+ format: date-time
+ content:
+ application/xml:
+ schema:
+ type: string
+ application/json:
+ schema:
+ type: string
+ '400':
+ description: Invalid username/password supplied
+ /user/logout:
+ get:
+ tags:
+ - user
+ summary: Logs out current logged in user session
+ description: ''
+ operationId: logoutUser
+ responses:
+ default:
+ description: successful operation
+ '/user/{username}':
+ get:
+ tags:
+ - user
+ summary: Get user by user name
+ description: ''
+ operationId: getUserByName
+ parameters:
+ - name: username
+ in: path
+ description: The name that needs to be fetched. Use user1 for testing.
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/User'
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ put:
+ tags:
+ - user
+ summary: Updated user
+ description: This can only be done by the logged in user.
+ operationId: updateUser
+ parameters:
+ - name: username
+ in: path
+ description: name that need to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid user supplied
+ '404':
+ description: User not found
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ description: Updated user object
+ required: true
+ delete:
+ tags:
+ - user
+ summary: Delete user
+ description: This can only be done by the logged in user.
+ operationId: deleteUser
+ parameters:
+ - name: username
+ in: path
+ description: The name that needs to be deleted
+ required: true
+ schema:
+ type: string
+ responses:
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ /fake_classname_test:
+ patch:
+ tags:
+ - 'fake_classname_tags 123#$%^'
+ summary: To test class name in snake case
+ description: To test class name in snake case
+ operationId: testClassname
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ security:
+ - api_key_query: []
+ requestBody:
+ $ref: '#/components/requestBodies/Client'
+ /fake:
+ patch:
+ tags:
+ - fake
+ summary: To test "client" model
+ description: To test "client" model
+ operationId: testClientModel
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ requestBody:
+ $ref: '#/components/requestBodies/Client'
+ get:
+ tags:
+ - fake
+ summary: To test enum parameters
+ description: To test enum parameters
+ operationId: testEnumParameters
+ parameters:
+ - name: enum_header_string_array
+ in: header
+ description: Header parameter enum test (string array)
+ schema:
+ type: array
+ items:
+ type: string
+ default: $
+ enum:
+ - '>'
+ - $
+ - name: enum_header_string
+ in: header
+ description: Header parameter enum test (string)
+ schema:
+ type: string
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ default: '-efg'
+ - name: enum_query_string_array
+ in: query
+ description: Query parameter enum test (string array)
+ schema:
+ type: array
+ items:
+ type: string
+ default: $
+ enum:
+ - '>'
+ - $
+ - name: enum_query_string
+ in: query
+ description: Query parameter enum test (string)
+ schema:
+ type: string
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ default: '-efg'
+ - name: enum_query_integer
+ in: query
+ description: Query parameter enum test (double)
+ schema:
+ type: integer
+ format: int32
+ enum:
+ - 1
+ - -2
+ - name: enum_query_double
+ in: query
+ description: Query parameter enum test (double)
+ schema:
+ type: number
+ format: double
+ enum:
+ - 1.1
+ - -1.2
+ - name: enum_query_model_array
+ in: query
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/EnumClass'
+ responses:
+ '400':
+ description: Invalid request
+ '404':
+ description: Not found
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ type: object
+ properties:
+ enum_form_string_array:
+ description: Form parameter enum test (string array)
+ type: array
+ items:
+ type: string
+ default: $
+ enum:
+ - '>'
+ - $
+ enum_form_string:
+ description: Form parameter enum test (string)
+ type: string
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ default: '-efg'
+ post:
+ tags:
+ - fake
+ summary: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ description: |
+ Fake endpoint for testing various parameters
+ 假端點
+ 偽のエンドポイント
+ 가짜 엔드 포인트
+ operationId: testEndpointParameters
+ responses:
+ '400':
+ description: Invalid username supplied
+ '404':
+ description: User not found
+ security:
+ - http_basic_test: []
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ type: object
+ properties:
+ integer:
+ description: None
+ type: integer
+ minimum: 10
+ maximum: 100
+ int32:
+ description: None
+ type: integer
+ format: int32
+ minimum: 20
+ maximum: 200
+ int64:
+ description: None
+ type: integer
+ format: int64
+ number:
+ description: None
+ type: number
+ minimum: 32.1
+ maximum: 543.2
+ float:
+ description: None
+ type: number
+ format: float
+ maximum: 987.6
+ double:
+ description: None
+ type: number
+ format: double
+ minimum: 67.8
+ maximum: 123.4
+ string:
+ description: None
+ type: string
+ pattern: '/[a-z]/i'
+ pattern_without_delimiter:
+ description: None
+ type: string
+ pattern: '^[A-Z].*'
+ byte:
+ description: None
+ type: string
+ format: byte
+ binary:
+ description: None
+ type: string
+ format: binary
+ date:
+ description: None
+ type: string
+ format: date
+ dateTime:
+ description: None
+ type: string
+ format: date-time
+ password:
+ description: None
+ type: string
+ format: password
+ minLength: 10
+ maxLength: 64
+ callback:
+ description: None
+ type: string
+ required:
+ - number
+ - double
+ - pattern_without_delimiter
+ - byte
+ delete:
+ tags:
+ - fake
+ security:
+ - bearer_test: []
+ summary: Fake endpoint to test group parameters (optional)
+ description: Fake endpoint to test group parameters (optional)
+ operationId: testGroupParameters
+ x-group-parameters: true
+ parameters:
+ - name: required_string_group
+ in: query
+ description: Required String in group parameters
+ required: true
+ schema:
+ type: integer
+ - name: required_boolean_group
+ in: header
+ description: Required Boolean in group parameters
+ required: true
+ schema:
+ type: boolean
+ - name: required_int64_group
+ in: query
+ description: Required Integer in group parameters
+ required: true
+ schema:
+ type: integer
+ format: int64
+ - name: string_group
+ in: query
+ description: String in group parameters
+ schema:
+ type: integer
+ - name: boolean_group
+ in: header
+ description: Boolean in group parameters
+ schema:
+ type: boolean
+ - name: int64_group
+ in: query
+ description: Integer in group parameters
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '400':
+ description: Something wrong
+ /fake/outer/number:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer number types
+ operationId: fakeOuterNumberSerialize
+ responses:
+ '200':
+ description: Output number
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterNumber'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OuterNumber'
+ description: Input number as post body
+ /fake/property/enum-int:
+ post:
+ tags:
+ - fake
+ description: Test serialization of enum (int) properties with examples
+ operationId: fakePropertyEnumIntegerSerialize
+ responses:
+ '200':
+ description: Output enum (int)
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterObjectWithEnumProperty'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OuterObjectWithEnumProperty'
+ description: Input enum (int) as post body
+ /fake/outer/string:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer string types
+ operationId: fakeOuterStringSerialize
+ responses:
+ '200':
+ description: Output string
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterString'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OuterString'
+ description: Input string as post body
+ /fake/outer/boolean:
+ post:
+ tags:
+ - fake
+ description: Test serialization of outer boolean types
+ operationId: fakeOuterBooleanSerialize
+ responses:
+ '200':
+ description: Output boolean
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterBoolean'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OuterBoolean'
+ description: Input boolean as post body
+ /fake/outer/composite:
+ post:
+ tags:
+ - fake
+ description: Test serialization of object with outer number type
+ operationId: fakeOuterCompositeSerialize
+ responses:
+ '200':
+ description: Output composite
+ content:
+ '*/*':
+ schema:
+ $ref: '#/components/schemas/OuterComposite'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OuterComposite'
+ description: Input composite as post body
+ /fake/BigDecimalMap:
+ get:
+ tags:
+ - fake
+ description: for Java apache and Java native, test toUrlQueryString for maps with BegDecimal keys
+ operationId: fakeBigDecimalMap
+ responses:
+ '200':
+ description: successful operation
+ content:
+ '*/*':
+ schema:
+ type: object
+ properties:
+ someId:
+ type: number
+ someMap:
+ type: object
+ additionalProperties:
+ type: number
+ /fake/jsonFormData:
+ get:
+ tags:
+ - fake
+ summary: test json serialization of form data
+ description: ''
+ operationId: testJsonFormData
+ responses:
+ '200':
+ description: successful operation
+ requestBody:
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ type: object
+ properties:
+ param:
+ description: field1
+ type: string
+ param2:
+ description: field2
+ type: string
+ required:
+ - param
+ - param2
+ /fake/additionalProperties-reference:
+ post:
+ tags:
+ - fake
+ summary: test referenced additionalProperties
+ description: ''
+ operationId: testAdditionalPropertiesReference
+ responses:
+ '200':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FreeFormObject'
+ description: request body
+ required: true
+ /fake/stringMap-reference:
+ post:
+ tags:
+ - fake
+ summary: test referenced string map
+ description: ''
+ operationId: testStringMapReference
+ responses:
+ '200':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/MapOfString'
+ description: request body
+ required: true
+ /fake/inline-additionalProperties:
+ post:
+ tags:
+ - fake
+ summary: test inline additionalProperties
+ description: ''
+ operationId: testInlineAdditionalProperties
+ responses:
+ '200':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ additionalProperties:
+ type: string
+ description: request body
+ required: true
+ /fake/inline-freeform-additionalProperties:
+ post:
+ tags:
+ - fake
+ summary: test inline free-form additionalProperties
+ description: ''
+ operationId: testInlineFreeformAdditionalProperties
+ responses:
+ '200':
+ description: successful operation
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ someProperty:
+ type: string
+ additionalProperties: true
+ description: request body
+ required: true
+ /fake/nullable:
+ post:
+ tags:
+ - fake
+ summary: test nullable parent property
+ description: ""
+ operationId: testNullable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChildWithNullable'
+ description: request body
+ required: true
+ responses:
+ "200":
+ description: successful operation
+ /fake/body-with-query-params:
+ put:
+ tags:
+ - fake
+ operationId: testBodyWithQueryParams
+ parameters:
+ - name: query
+ in: query
+ required: true
+ schema:
+ type: string
+ responses:
+ '200':
+ description: Success
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/User'
+ required: true
+ /another-fake/dummy:
+ patch:
+ tags:
+ - $another-fake?
+ summary: To test special tags
+ description: To test special tags and operation ID starting with number
+ operationId: '123_test_@#$%_special_tags'
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ requestBody:
+ $ref: '#/components/requestBodies/Client'
+ /fake/body-with-file-schema:
+ put:
+ tags:
+ - fake
+ description: >-
+ For this test, the body for this request must reference a schema named
+ `File`.
+ operationId: testBodyWithFileSchema
+ responses:
+ '200':
+ description: Success
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FileSchemaTestClass'
+ required: true
+ /fake/body-with-binary:
+ put:
+ tags:
+ - fake
+ description: >-
+ For this test, the body has to be a binary file.
+ operationId: testBodyWithBinary
+ responses:
+ '200':
+ description: Success
+ requestBody:
+ content:
+ image/png:
+ schema:
+ type: string
+ nullable: true
+ format: binary
+ description: image to upload
+ required: true
+ /fake/test-query-parameters:
+ put:
+ tags:
+ - fake
+ description: To test the collection format in query parameters
+ operationId: testQueryParameterCollectionFormat
+ parameters:
+ - name: pipe
+ in: query
+ required: true
+ style: pipeDelimited
+ schema:
+ type: array
+ items:
+ type: string
+ - name: ioutil
+ in: query
+ required: true
+ style: form
+ explode: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: http
+ in: query
+ required: true
+ style: spaceDelimited
+ schema:
+ type: array
+ items:
+ type: string
+ - name: url
+ in: query
+ required: true
+ style: form
+ explode: false
+ schema:
+ type: array
+ items:
+ type: string
+ - name: context
+ in: query
+ required: true
+ explode: true
+ schema:
+ type: array
+ items:
+ type: string
+ - name: language
+ in: query
+ required: false
+ schema:
+ type: object
+ additionalProperties:
+ type: string
+ format: string
+ - name: allowEmpty
+ in: query
+ required: true
+ allowEmptyValue: true
+ schema:
+ type: string
+ responses:
+ "200":
+ description: Success
+ '/fake/{petId}/uploadImageWithRequiredFile':
+ post:
+ tags:
+ - pet
+ summary: uploads an image (required)
+ description: ''
+ operationId: uploadFileWithRequiredFile
+ parameters:
+ - name: petId
+ in: path
+ description: ID of pet to update
+ required: true
+ schema:
+ type: integer
+ format: int64
+ responses:
+ '200':
+ description: successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiResponse'
+ security:
+ - petstore_auth:
+ - 'write:pets'
+ - 'read:pets'
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ additionalMetadata:
+ description: Additional data to pass to server
+ type: string
+ requiredFile:
+ description: file to upload
+ type: string
+ format: binary
+ required:
+ - requiredFile
+ /fake/health:
+ get:
+ tags:
+ - fake
+ summary: Health check endpoint
+ responses:
+ 200:
+ description: The instance started successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/HealthCheckResult'
+ /fake/http-signature-test:
+ get:
+ tags:
+ - fake
+ summary: test http signature authentication
+ operationId: fake-http-signature-test
+ parameters:
+ - name: query_1
+ in: query
+ description: query parameter
+ required: optional
+ schema:
+ type: string
+ - name: header_1
+ in: header
+ description: header parameter
+ required: optional
+ schema:
+ type: string
+ security:
+ - http_signature_test: []
+ requestBody:
+ $ref: '#/components/requestBodies/Pet'
+ responses:
+ 200:
+ description: The instance started successfully
+servers:
+ - url: 'http://{server}.swagger.io:{port}/v2'
+ description: petstore server
+ variables:
+ server:
+ enum:
+ - 'petstore'
+ - 'qa-petstore'
+ - 'dev-petstore'
+ default: 'petstore'
+ port:
+ enum:
+ - 80
+ - 8080
+ default: 80
+ - url: https://localhost:8080/{version}
+ description: The local server
+ variables:
+ version:
+ enum:
+ - 'v1'
+ - 'v2'
+ default: 'v2'
+ - url: https://127.0.0.1/no_varaible
+ description: The local server without variables
+components:
+ requestBodies:
+ UserArray:
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/User'
+ description: List of user object
+ required: true
+ Client:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Client'
+ description: client model
+ required: true
+ Pet:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/Pet'
+ description: Pet object that needs to be added to the store
+ required: true
+ securitySchemes:
+ petstore_auth:
+ type: oauth2
+ flows:
+ implicit:
+ authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
+ scopes:
+ 'write:pets': modify pets in your account
+ 'read:pets': read your pets
+ api_key:
+ type: apiKey
+ name: api_key
+ in: header
+ api_key_query:
+ type: apiKey
+ name: api_key_query
+ in: query
+ http_basic_test:
+ type: http
+ scheme: basic
+ bearer_test:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT
+ http_signature_test:
+ type: http
+ scheme: signature
+ schemas:
+ Foo:
+ type: object
+ properties:
+ bar:
+ $ref: '#/components/schemas/Bar'
+ Bar:
+ type: string
+ default: bar
+ Order:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ petId:
+ type: integer
+ format: int64
+ quantity:
+ type: integer
+ format: int32
+ shipDate:
+ type: string
+ format: date-time
+ status:
+ type: string
+ description: Order Status
+ enum:
+ - placed
+ - approved
+ - delivered
+ complete:
+ type: boolean
+ default: false
+ xml:
+ name: Order
+ Category:
+ type: object
+ required:
+ - name
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ default: default-name
+ xml:
+ name: Category
+ User:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ x-is-unique: true
+ username:
+ type: string
+ firstName:
+ type: string
+ lastName:
+ type: string
+ email:
+ type: string
+ password:
+ type: string
+ phone:
+ type: string
+ userStatus:
+ type: integer
+ format: int32
+ description: User Status
+ xml:
+ name: User
+ Tag:
+ type: object
+ properties:
+ id:
+ type: integer
+ format: int64
+ name:
+ type: string
+ xml:
+ name: Tag
+ Pet:
+ type: object
+ required:
+ - name
+ - photoUrls
+ properties:
+ id:
+ type: integer
+ format: int64
+ x-is-unique: true
+ category:
+ $ref: '#/components/schemas/Category'
+ name:
+ type: string
+ example: doggie
+ photoUrls:
+ type: array
+ xml:
+ wrapped: true
+ items:
+ type: string
+ xml:
+ name: photoUrl
+ uniqueItems: true
+ tags:
+ type: array
+ xml:
+ name: tag
+ wrapped: true
+ items:
+ $ref: '#/components/schemas/Tag'
+ status:
+ type: string
+ description: pet status in the store
+ enum:
+ - available
+ - pending
+ - sold
+ xml:
+ name: Pet
+ ApiResponse:
+ type: object
+ properties:
+ code:
+ type: integer
+ format: int32
+ type:
+ type: string
+ message:
+ type: string
+ Return:
+ description: Model for testing reserved words
+ properties:
+ return:
+ type: integer
+ format: int32
+ xml:
+ name: Return
+ Name:
+ description: Model for testing model name same as property name
+ required:
+ - name
+ properties:
+ name:
+ type: integer
+ format: int32
+ snake_case:
+ readOnly: true
+ type: integer
+ format: int32
+ property:
+ type: string
+ 123Number:
+ type: integer
+ readOnly: true
+ xml:
+ name: Name
+ 200_response:
+ description: Model for testing model name starting with number
+ properties:
+ name:
+ type: integer
+ format: int32
+ class:
+ type: string
+ xml:
+ name: Name
+ ClassModel:
+ description: Model for testing model with "_class" property
+ properties:
+ _class:
+ type: string
+ Dog:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - type: object
+ properties:
+ breed:
+ type: string
+ Cat:
+ allOf:
+ - $ref: '#/components/schemas/Animal'
+ - type: object
+ properties:
+ declawed:
+ type: boolean
+ Animal:
+ type: object
+ discriminator:
+ propertyName: className
+ mapping:
+ DOG: '#/components/schemas/Dog'
+ CAT: '#/components/schemas/Cat'
+ required:
+ - className
+ properties:
+ className:
+ type: string
+ color:
+ type: string
+ default: red
+ AnimalFarm:
+ type: array
+ items:
+ $ref: '#/components/schemas/Animal'
+ format_test:
+ type: object
+ required:
+ - number
+ - byte
+ - date
+ - password
+ properties:
+ integer:
+ type: integer
+ maximum: 100
+ minimum: 10
+ int32:
+ type: integer
+ format: int32
+ maximum: 200
+ minimum: 20
+ int64:
+ type: integer
+ format: int64
+ number:
+ maximum: 543.2
+ minimum: 32.1
+ type: number
+ float:
+ type: number
+ format: float
+ maximum: 987.6
+ minimum: 54.3
+ double:
+ type: number
+ format: double
+ maximum: 123.4
+ minimum: 67.8
+ decimal:
+ type: string
+ format: number
+ string:
+ type: string
+ pattern: '/[a-z]/i'
+ byte:
+ type: string
+ format: byte
+ binary:
+ type: string
+ format: binary
+ date:
+ type: string
+ format: date
+ dateTime:
+ type: string
+ format: date-time
+ uuid:
+ type: string
+ format: uuid
+ example: 72f98069-206d-4f12-9f12-3d1e525a8e84
+ password:
+ type: string
+ format: password
+ maxLength: 64
+ minLength: 10
+ pattern_with_digits:
+ description: A string that is a 10 digit number. Can have leading zeros.
+ type: string
+ pattern: '^\d{10}$'
+ pattern_with_digits_and_delimiter:
+ description: A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
+ type: string
+ pattern: '/^image_\d{1,3}$/i'
+ EnumClass:
+ type: string
+ default: '-efg'
+ enum:
+ - _abc
+ - '-efg'
+ - (xyz)
+ - TEST
+ - TEST_A
+ - TEST_A_ABC
+ - TEST_a
+ - tEST
+ Enum_Test:
+ type: object
+ required:
+ - enum_string_required
+ properties:
+ enum_string:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ - ''
+ enum_string_required:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ - ''
+ enum_integer:
+ type: integer
+ format: int32
+ enum:
+ - 1
+ - -1
+ enum_number:
+ type: number
+ format: double
+ enum:
+ - 1.1
+ - -1.2
+ outerEnum:
+ $ref: '#/components/schemas/OuterEnum'
+ outerEnumInteger:
+ $ref: '#/components/schemas/OuterEnumInteger'
+ outerEnumDefaultValue:
+ $ref: '#/components/schemas/OuterEnumDefaultValue'
+ outerEnumIntegerDefaultValue:
+ $ref: '#/components/schemas/OuterEnumIntegerDefaultValue'
+ AdditionalPropertiesClass:
+ type: object
+ properties:
+ map_property:
+ type: object
+ additionalProperties:
+ type: string
+ map_of_map_property:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: string
+ MixedPropertiesAndAdditionalPropertiesClass:
+ type: object
+ properties:
+ uuid:
+ type: string
+ format: uuid
+ dateTime:
+ type: string
+ format: date-time
+ map:
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/Animal'
+ List:
+ type: object
+ properties:
+ 123-list:
+ type: string
+ Client:
+ type: object
+ properties:
+ client:
+ type: string
+ ReadOnlyFirst:
+ type: object
+ properties:
+ bar:
+ type: string
+ readOnly: true
+ baz:
+ type: string
+ hasOnlyReadOnly:
+ type: object
+ properties:
+ bar:
+ type: string
+ readOnly: true
+ foo:
+ type: string
+ readOnly: true
+ Capitalization:
+ type: object
+ properties:
+ smallCamel:
+ type: string
+ CapitalCamel:
+ type: string
+ small_Snake:
+ type: string
+ Capital_Snake:
+ type: string
+ SCA_ETH_Flow_Points:
+ type: string
+ ATT_NAME:
+ description: |
+ Name of the pet
+ type: string
+ MapTest:
+ type: object
+ properties:
+ map_map_of_string:
+ type: object
+ additionalProperties:
+ type: object
+ additionalProperties:
+ type: string
+ map_of_enum_string:
+ type: object
+ additionalProperties:
+ type: string
+ enum:
+ - UPPER
+ - lower
+ direct_map:
+ type: object
+ additionalProperties:
+ type: boolean
+ indirect_map:
+ $ref: '#/components/schemas/StringBooleanMap'
+ ArrayTest:
+ type: object
+ properties:
+ array_of_string:
+ type: array
+ items:
+ type: string
+ minItems: 0
+ maxItems: 3
+ array_array_of_integer:
+ type: array
+ items:
+ type: array
+ items:
+ type: integer
+ format: int64
+ array_array_of_model:
+ type: array
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/ReadOnlyFirst'
+ NumberOnly:
+ type: object
+ properties:
+ JustNumber:
+ type: number
+ ArrayOfNumberOnly:
+ type: object
+ properties:
+ ArrayNumber:
+ type: array
+ items:
+ type: number
+ ArrayOfArrayOfNumberOnly:
+ type: object
+ properties:
+ ArrayArrayNumber:
+ type: array
+ items:
+ type: array
+ items:
+ type: number
+ EnumArrays:
+ type: object
+ properties:
+ just_symbol:
+ type: string
+ enum:
+ - '>='
+ - $
+ array_enum:
+ type: array
+ items:
+ type: string
+ enum:
+ - fish
+ - crab
+ FreeFormObject:
+ type: object
+ description: A schema consisting only of additional properties
+ additionalProperties: true
+ MapOfString:
+ type: object
+ description: A schema consisting only of additional properties of type string
+ additionalProperties:
+ type: string
+ OuterEnum:
+ nullable: true
+ type: string
+ enum:
+ - placed
+ - approved
+ - delivered
+ OuterEnumInteger:
+ type: integer
+ enum:
+ - 0
+ - 1
+ - 2
+ example: 2
+ OuterEnumDefaultValue:
+ type: string
+ enum:
+ - placed
+ - approved
+ - delivered
+ default: placed
+ OuterEnumIntegerDefaultValue:
+ type: integer
+ enum:
+ - 0
+ - 1
+ - 2
+ default: 0
+ OuterComposite:
+ type: object
+ properties:
+ my_number:
+ $ref: '#/components/schemas/OuterNumber'
+ my_string:
+ $ref: '#/components/schemas/OuterString'
+ my_boolean:
+ $ref: '#/components/schemas/OuterBoolean'
+ OuterNumber:
+ type: number
+ OuterString:
+ type: string
+ OuterBoolean:
+ type: boolean
+ x-codegen-body-parameter-name: boolean_post_body
+ ParentWithNullable:
+ type: object
+ discriminator:
+ propertyName: type
+ properties:
+ type:
+ type: string
+ enum:
+ - ChildWithNullable
+ nullableProperty:
+ type: string
+ nullable: true
+ ChildWithNullable:
+ allOf:
+ - $ref: '#/components/schemas/ParentWithNullable'
+ - type: object
+ properties:
+ otherProperty:
+ type: string
+ StringBooleanMap:
+ additionalProperties:
+ type: boolean
+ FileSchemaTestClass:
+ type: object
+ properties:
+ file:
+ $ref: '#/components/schemas/File'
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/File'
+ File:
+ type: object
+ description: Must be named `File` for test.
+ properties:
+ sourceURI:
+ description: Test capitalization
+ type: string
+ _special_model.name_:
+ properties:
+ '$special[property.name]':
+ type: integer
+ format: int64
+ xml:
+ name: '$special[model.name]'
+ HealthCheckResult:
+ type: object
+ properties:
+ NullableMessage:
+ nullable: true
+ type: string
+ description: Just a string to inform instance is up and running. Make it nullable in hope to get it as pointer in generated model.
+ NullableClass:
+ type: object
+ properties:
+ integer_prop:
+ type: integer
+ nullable: true
+ number_prop:
+ type: number
+ nullable: true
+ boolean_prop:
+ type: boolean
+ nullable: true
+ string_prop:
+ type: string
+ nullable: true
+ date_prop:
+ type: string
+ format: date
+ nullable: true
+ datetime_prop:
+ type: string
+ format: date-time
+ nullable: true
+ array_nullable_prop:
+ type: array
+ nullable: true
+ items:
+ type: object
+ array_and_items_nullable_prop:
+ type: array
+ nullable: true
+ items:
+ type: object
+ nullable: true
+ array_items_nullable:
+ type: array
+ items:
+ type: object
+ nullable: true
+ object_nullable_prop:
+ type: object
+ nullable: true
+ additionalProperties:
+ type: object
+ object_and_items_nullable_prop:
+ type: object
+ nullable: true
+ additionalProperties:
+ type: object
+ nullable: true
+ object_items_nullable:
+ type: object
+ additionalProperties:
+ type: object
+ nullable: true
+ additionalProperties:
+ type: object
+ nullable: true
+ OuterObjectWithEnumProperty:
+ type: object
+ example:
+ value: 2
+ required:
+ - value
+ properties:
+ value:
+ $ref: '#/components/schemas/OuterEnumInteger'
+ DeprecatedObject:
+ type: object
+ deprecated: true
+ properties:
+ name:
+ type: string
+ ObjectWithDeprecatedFields:
+ type: object
+ properties:
+ uuid:
+ type: string
+ id:
+ type: number
+ deprecated: true
+ deprecatedRef:
+ $ref: '#/components/schemas/DeprecatedObject'
+ bars:
+ type: array
+ deprecated: true
+ items:
+ $ref: '#/components/schemas/Bar'
+ AllOfWithSingleRef:
+ type: object
+ properties:
+ username:
+ type: string
+ SingleRefType:
+ allOf:
+ - $ref: '#/components/schemas/SingleRefType'
+ SingleRefType:
+ type: string
+ title: SingleRefType
+ enum:
+ - admin
+ - user
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.gitignore b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.gitignore
new file mode 100644
index 000000000000..4298cdcbd1a2
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.gitignore
@@ -0,0 +1,41 @@
+# See https://dart.dev/guides/libraries/private-files
+
+# Files and directories created by pub
+.dart_tool/
+.buildlog
+.packages
+.project
+.pub/
+build/
+**/packages/
+
+# Files created by dart2js
+# (Most Dart developers will use pub build to compile Dart, use/modify these
+# rules if you intend to use dart2js directly
+# Convention is to use extension '.dart.js' for Dart compiled to Javascript to
+# differentiate from explicit Javascript files)
+*.dart.js
+*.part.js
+*.js.deps
+*.js.map
+*.info.json
+
+# Directory created by dartdoc
+doc/api/
+
+# Don't commit pubspec lock file
+# (Library packages only! Remove pattern if developing an application package)
+pubspec.lock
+
+# Don’t commit files and directories created by other development environments.
+# For example, if your development environment creates any of the following files,
+# consider putting them in a global ignore file:
+
+# IntelliJ
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# Mac
+.DS_Store
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator-ignore b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator-ignore
new file mode 100644
index 000000000000..7484ee590a38
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/FILES
new file mode 100644
index 000000000000..1a5e5be75940
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/FILES
@@ -0,0 +1,127 @@
+.gitignore
+README.md
+analysis_options.yaml
+build.yaml
+doc/AdditionalPropertiesClass.md
+doc/AllOfWithSingleRef.md
+doc/Animal.md
+doc/AnotherFakeApi.md
+doc/ApiResponse.md
+doc/ArrayOfArrayOfNumberOnly.md
+doc/ArrayOfNumberOnly.md
+doc/ArrayTest.md
+doc/Capitalization.md
+doc/Cat.md
+doc/Category.md
+doc/ChildWithNullable.md
+doc/ClassModel.md
+doc/DefaultApi.md
+doc/DeprecatedObject.md
+doc/Dog.md
+doc/EnumArrays.md
+doc/EnumTest.md
+doc/FakeApi.md
+doc/FakeBigDecimalMap200Response.md
+doc/FakeClassnameTags123Api.md
+doc/FileSchemaTestClass.md
+doc/Foo.md
+doc/FooGetDefaultResponse.md
+doc/FormatTest.md
+doc/HasOnlyReadOnly.md
+doc/HealthCheckResult.md
+doc/MapTest.md
+doc/MixedPropertiesAndAdditionalPropertiesClass.md
+doc/Model200Response.md
+doc/ModelClient.md
+doc/ModelEnumClass.md
+doc/ModelFile.md
+doc/ModelList.md
+doc/ModelReturn.md
+doc/Name.md
+doc/NullableClass.md
+doc/NumberOnly.md
+doc/ObjectWithDeprecatedFields.md
+doc/Order.md
+doc/OuterComposite.md
+doc/OuterEnum.md
+doc/OuterEnumDefaultValue.md
+doc/OuterEnumInteger.md
+doc/OuterEnumIntegerDefaultValue.md
+doc/OuterObjectWithEnumProperty.md
+doc/ParentWithNullable.md
+doc/Pet.md
+doc/PetApi.md
+doc/ReadOnlyFirst.md
+doc/SingleRefType.md
+doc/SpecialModelName.md
+doc/StoreApi.md
+doc/Tag.md
+doc/TestInlineFreeformAdditionalPropertiesRequest.md
+doc/User.md
+doc/UserApi.md
+lib/openapi.dart
+lib/src/api.dart
+lib/src/api/another_fake_api.dart
+lib/src/api/default_api.dart
+lib/src/api/fake_api.dart
+lib/src/api/fake_classname_tags123_api.dart
+lib/src/api/pet_api.dart
+lib/src/api/store_api.dart
+lib/src/api/user_api.dart
+lib/src/auth/api_key_auth.dart
+lib/src/auth/auth.dart
+lib/src/auth/basic_auth.dart
+lib/src/auth/bearer_auth.dart
+lib/src/auth/oauth.dart
+lib/src/deserialize.dart
+lib/src/model/additional_properties_class.dart
+lib/src/model/all_of_with_single_ref.dart
+lib/src/model/animal.dart
+lib/src/model/api_response.dart
+lib/src/model/array_of_array_of_number_only.dart
+lib/src/model/array_of_number_only.dart
+lib/src/model/array_test.dart
+lib/src/model/capitalization.dart
+lib/src/model/cat.dart
+lib/src/model/category.dart
+lib/src/model/child_with_nullable.dart
+lib/src/model/class_model.dart
+lib/src/model/deprecated_object.dart
+lib/src/model/dog.dart
+lib/src/model/enum_arrays.dart
+lib/src/model/enum_test.dart
+lib/src/model/fake_big_decimal_map200_response.dart
+lib/src/model/file_schema_test_class.dart
+lib/src/model/foo.dart
+lib/src/model/foo_get_default_response.dart
+lib/src/model/format_test.dart
+lib/src/model/has_only_read_only.dart
+lib/src/model/health_check_result.dart
+lib/src/model/map_test.dart
+lib/src/model/mixed_properties_and_additional_properties_class.dart
+lib/src/model/model200_response.dart
+lib/src/model/model_client.dart
+lib/src/model/model_enum_class.dart
+lib/src/model/model_file.dart
+lib/src/model/model_list.dart
+lib/src/model/model_return.dart
+lib/src/model/name.dart
+lib/src/model/nullable_class.dart
+lib/src/model/number_only.dart
+lib/src/model/object_with_deprecated_fields.dart
+lib/src/model/order.dart
+lib/src/model/outer_composite.dart
+lib/src/model/outer_enum.dart
+lib/src/model/outer_enum_default_value.dart
+lib/src/model/outer_enum_integer.dart
+lib/src/model/outer_enum_integer_default_value.dart
+lib/src/model/outer_object_with_enum_property.dart
+lib/src/model/parent_with_nullable.dart
+lib/src/model/pet.dart
+lib/src/model/read_only_first.dart
+lib/src/model/single_ref_type.dart
+lib/src/model/special_model_name.dart
+lib/src/model/tag.dart
+lib/src/model/test_inline_freeform_additional_properties_request.dart
+lib/src/model/user.dart
+pubspec.yaml
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/VERSION b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/VERSION
new file mode 100644
index 000000000000..4c631cf217a2
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/.openapi-generator/VERSION
@@ -0,0 +1 @@
+7.14.0-SNAPSHOT
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/README.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/README.md
new file mode 100644
index 000000000000..5a5211d271a0
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/README.md
@@ -0,0 +1,212 @@
+# openapi (EXPERIMENTAL)
+This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
+
+This Dart package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 1.0.0
+- Generator version: 7.14.0-SNAPSHOT
+- Build package: org.openapitools.codegen.languages.DartDioClientCodegen
+
+## Requirements
+
+* Dart 2.15.0+ or Flutter 2.8.0+
+* Dio 5.0.0+ (https://pub.dev/packages/dio)
+* JSON Serializable 6.1.5+ (https://pub.dev/packages/json_serializable)
+
+## Installation & Usage
+
+### pub.dev
+To use the package from [pub.dev](https://pub.dev), please include the following in pubspec.yaml
+```yaml
+dependencies:
+ openapi: 1.0.0
+```
+
+### Github
+If this Dart package is published to Github, please include the following in pubspec.yaml
+```yaml
+dependencies:
+ openapi:
+ git:
+ url: https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+ #ref: main
+```
+
+### Local development
+To use the package from your local drive, please include the following in pubspec.yaml
+```yaml
+dependencies:
+ openapi:
+ path: /path/to/openapi
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```dart
+import 'package:openapi/openapi.dart';
+
+
+final api = Openapi().getAnotherFakeApi();
+final ModelClient modelClient = ; // ModelClient | client model
+
+try {
+ final response = await api.call123testSpecialTags(modelClient);
+ print(response);
+} catch on DioException (e) {
+ print("Exception when calling AnotherFakeApi->call123testSpecialTags: $e\n");
+}
+
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+[*AnotherFakeApi*](doc/AnotherFakeApi.md) | [**call123testSpecialTags**](doc/AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
+[*DefaultApi*](doc/DefaultApi.md) | [**fooGet**](doc/DefaultApi.md#fooget) | **GET** /foo |
+[*FakeApi*](doc/FakeApi.md) | [**fakeBigDecimalMap**](doc/FakeApi.md#fakebigdecimalmap) | **GET** /fake/BigDecimalMap |
+[*FakeApi*](doc/FakeApi.md) | [**fakeHealthGet**](doc/FakeApi.md#fakehealthget) | **GET** /fake/health | Health check endpoint
+[*FakeApi*](doc/FakeApi.md) | [**fakeHttpSignatureTest**](doc/FakeApi.md#fakehttpsignaturetest) | **GET** /fake/http-signature-test | test http signature authentication
+[*FakeApi*](doc/FakeApi.md) | [**fakeOuterBooleanSerialize**](doc/FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean |
+[*FakeApi*](doc/FakeApi.md) | [**fakeOuterCompositeSerialize**](doc/FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite |
+[*FakeApi*](doc/FakeApi.md) | [**fakeOuterNumberSerialize**](doc/FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number |
+[*FakeApi*](doc/FakeApi.md) | [**fakeOuterStringSerialize**](doc/FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string |
+[*FakeApi*](doc/FakeApi.md) | [**fakePropertyEnumIntegerSerialize**](doc/FakeApi.md#fakepropertyenumintegerserialize) | **POST** /fake/property/enum-int |
+[*FakeApi*](doc/FakeApi.md) | [**testAdditionalPropertiesReference**](doc/FakeApi.md#testadditionalpropertiesreference) | **POST** /fake/additionalProperties-reference | test referenced additionalProperties
+[*FakeApi*](doc/FakeApi.md) | [**testBodyWithBinary**](doc/FakeApi.md#testbodywithbinary) | **PUT** /fake/body-with-binary |
+[*FakeApi*](doc/FakeApi.md) | [**testBodyWithFileSchema**](doc/FakeApi.md#testbodywithfileschema) | **PUT** /fake/body-with-file-schema |
+[*FakeApi*](doc/FakeApi.md) | [**testBodyWithQueryParams**](doc/FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params |
+[*FakeApi*](doc/FakeApi.md) | [**testClientModel**](doc/FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model
+[*FakeApi*](doc/FakeApi.md) | [**testEndpointParameters**](doc/FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+[*FakeApi*](doc/FakeApi.md) | [**testEnumParameters**](doc/FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters
+[*FakeApi*](doc/FakeApi.md) | [**testGroupParameters**](doc/FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional)
+[*FakeApi*](doc/FakeApi.md) | [**testInlineAdditionalProperties**](doc/FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+[*FakeApi*](doc/FakeApi.md) | [**testInlineFreeformAdditionalProperties**](doc/FakeApi.md#testinlinefreeformadditionalproperties) | **POST** /fake/inline-freeform-additionalProperties | test inline free-form additionalProperties
+[*FakeApi*](doc/FakeApi.md) | [**testJsonFormData**](doc/FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data
+[*FakeApi*](doc/FakeApi.md) | [**testNullable**](doc/FakeApi.md#testnullable) | **POST** /fake/nullable | test nullable parent property
+[*FakeApi*](doc/FakeApi.md) | [**testQueryParameterCollectionFormat**](doc/FakeApi.md#testqueryparametercollectionformat) | **PUT** /fake/test-query-parameters |
+[*FakeApi*](doc/FakeApi.md) | [**testStringMapReference**](doc/FakeApi.md#teststringmapreference) | **POST** /fake/stringMap-reference | test referenced string map
+[*FakeClassnameTags123Api*](doc/FakeClassnameTags123Api.md) | [**testClassname**](doc/FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case
+[*PetApi*](doc/PetApi.md) | [**addPet**](doc/PetApi.md#addpet) | **POST** /pet | Add a new pet to the store
+[*PetApi*](doc/PetApi.md) | [**deletePet**](doc/PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet
+[*PetApi*](doc/PetApi.md) | [**findPetsByStatus**](doc/PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status
+[*PetApi*](doc/PetApi.md) | [**findPetsByTags**](doc/PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags
+[*PetApi*](doc/PetApi.md) | [**getPetById**](doc/PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID
+[*PetApi*](doc/PetApi.md) | [**updatePet**](doc/PetApi.md#updatepet) | **PUT** /pet | Update an existing pet
+[*PetApi*](doc/PetApi.md) | [**updatePetWithForm**](doc/PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data
+[*PetApi*](doc/PetApi.md) | [**uploadFile**](doc/PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image
+[*PetApi*](doc/PetApi.md) | [**uploadFileWithRequiredFile**](doc/PetApi.md#uploadfilewithrequiredfile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+[*StoreApi*](doc/StoreApi.md) | [**deleteOrder**](doc/StoreApi.md#deleteorder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+[*StoreApi*](doc/StoreApi.md) | [**getInventory**](doc/StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status
+[*StoreApi*](doc/StoreApi.md) | [**getOrderById**](doc/StoreApi.md#getorderbyid) | **GET** /store/order/{order_id} | Find purchase order by ID
+[*StoreApi*](doc/StoreApi.md) | [**placeOrder**](doc/StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet
+[*UserApi*](doc/UserApi.md) | [**createUser**](doc/UserApi.md#createuser) | **POST** /user | Create user
+[*UserApi*](doc/UserApi.md) | [**createUsersWithArrayInput**](doc/UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array
+[*UserApi*](doc/UserApi.md) | [**createUsersWithListInput**](doc/UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array
+[*UserApi*](doc/UserApi.md) | [**deleteUser**](doc/UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user
+[*UserApi*](doc/UserApi.md) | [**getUserByName**](doc/UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name
+[*UserApi*](doc/UserApi.md) | [**loginUser**](doc/UserApi.md#loginuser) | **GET** /user/login | Logs user into the system
+[*UserApi*](doc/UserApi.md) | [**logoutUser**](doc/UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session
+[*UserApi*](doc/UserApi.md) | [**updateUser**](doc/UserApi.md#updateuser) | **PUT** /user/{username} | Updated user
+
+
+## Documentation For Models
+
+ - [AdditionalPropertiesClass](doc/AdditionalPropertiesClass.md)
+ - [AllOfWithSingleRef](doc/AllOfWithSingleRef.md)
+ - [Animal](doc/Animal.md)
+ - [ApiResponse](doc/ApiResponse.md)
+ - [ArrayOfArrayOfNumberOnly](doc/ArrayOfArrayOfNumberOnly.md)
+ - [ArrayOfNumberOnly](doc/ArrayOfNumberOnly.md)
+ - [ArrayTest](doc/ArrayTest.md)
+ - [Capitalization](doc/Capitalization.md)
+ - [Cat](doc/Cat.md)
+ - [Category](doc/Category.md)
+ - [ChildWithNullable](doc/ChildWithNullable.md)
+ - [ClassModel](doc/ClassModel.md)
+ - [DeprecatedObject](doc/DeprecatedObject.md)
+ - [Dog](doc/Dog.md)
+ - [EnumArrays](doc/EnumArrays.md)
+ - [EnumTest](doc/EnumTest.md)
+ - [FakeBigDecimalMap200Response](doc/FakeBigDecimalMap200Response.md)
+ - [FileSchemaTestClass](doc/FileSchemaTestClass.md)
+ - [Foo](doc/Foo.md)
+ - [FooGetDefaultResponse](doc/FooGetDefaultResponse.md)
+ - [FormatTest](doc/FormatTest.md)
+ - [HasOnlyReadOnly](doc/HasOnlyReadOnly.md)
+ - [HealthCheckResult](doc/HealthCheckResult.md)
+ - [MapTest](doc/MapTest.md)
+ - [MixedPropertiesAndAdditionalPropertiesClass](doc/MixedPropertiesAndAdditionalPropertiesClass.md)
+ - [Model200Response](doc/Model200Response.md)
+ - [ModelClient](doc/ModelClient.md)
+ - [ModelEnumClass](doc/ModelEnumClass.md)
+ - [ModelFile](doc/ModelFile.md)
+ - [ModelList](doc/ModelList.md)
+ - [ModelReturn](doc/ModelReturn.md)
+ - [Name](doc/Name.md)
+ - [NullableClass](doc/NullableClass.md)
+ - [NumberOnly](doc/NumberOnly.md)
+ - [ObjectWithDeprecatedFields](doc/ObjectWithDeprecatedFields.md)
+ - [Order](doc/Order.md)
+ - [OuterComposite](doc/OuterComposite.md)
+ - [OuterEnum](doc/OuterEnum.md)
+ - [OuterEnumDefaultValue](doc/OuterEnumDefaultValue.md)
+ - [OuterEnumInteger](doc/OuterEnumInteger.md)
+ - [OuterEnumIntegerDefaultValue](doc/OuterEnumIntegerDefaultValue.md)
+ - [OuterObjectWithEnumProperty](doc/OuterObjectWithEnumProperty.md)
+ - [ParentWithNullable](doc/ParentWithNullable.md)
+ - [Pet](doc/Pet.md)
+ - [ReadOnlyFirst](doc/ReadOnlyFirst.md)
+ - [SingleRefType](doc/SingleRefType.md)
+ - [SpecialModelName](doc/SpecialModelName.md)
+ - [Tag](doc/Tag.md)
+ - [TestInlineFreeformAdditionalPropertiesRequest](doc/TestInlineFreeformAdditionalPropertiesRequest.md)
+ - [User](doc/User.md)
+
+
+## Documentation For Authorization
+
+
+Authentication schemes defined for the API:
+### petstore_auth
+
+- **Type**: OAuth
+- **Flow**: implicit
+- **Authorization URL**: http://petstore.swagger.io/api/oauth/dialog
+- **Scopes**:
+ - **write:pets**: modify pets in your account
+ - **read:pets**: read your pets
+
+### api_key
+
+- **Type**: API key
+- **API key parameter name**: api_key
+- **Location**: HTTP header
+
+### api_key_query
+
+- **Type**: API key
+- **API key parameter name**: api_key_query
+- **Location**: URL query string
+
+### http_basic_test
+
+- **Type**: HTTP basic authentication
+
+### bearer_test
+
+- **Type**: HTTP Bearer Token authentication (JWT)
+
+### http_signature_test
+
+- **Type**: HTTP signature authentication
+
+
+## Author
+
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/analysis_options.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/analysis_options.yaml
new file mode 100644
index 000000000000..70524126e3fe
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/analysis_options.yaml
@@ -0,0 +1,10 @@
+analyzer:
+ language:
+ strict-inference: true
+ strict-raw-types: true
+ strict-casts: false
+ exclude:
+ - test/*.dart
+ - lib/src/model/*.g.dart
+ errors:
+ deprecated_member_use_from_same_package: ignore
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/build.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/build.yaml
new file mode 100644
index 000000000000..89a4dd6e1c2e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/build.yaml
@@ -0,0 +1,18 @@
+targets:
+ $default:
+ builders:
+ json_serializable:
+ options:
+ # Options configure how source code is generated for every
+ # `@JsonSerializable`-annotated class in the package.
+ #
+ # The default value for each is listed.
+ any_map: false
+ checked: true
+ create_factory: true
+ create_to_json: true
+ disallow_unrecognized_keys: true
+ explicit_to_json: true
+ field_rename: none
+ ignore_unannotated: false
+ include_if_null: false
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AdditionalPropertiesClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AdditionalPropertiesClass.md
new file mode 100644
index 000000000000..863b8503db83
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AdditionalPropertiesClass.md
@@ -0,0 +1,16 @@
+# openapi.model.AdditionalPropertiesClass
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapProperty** | **Map<String, String>** | | [optional]
+**mapOfMapProperty** | [**Map<String, Map<String, String>>**](Map.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AllOfWithSingleRef.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AllOfWithSingleRef.md
new file mode 100644
index 000000000000..4c6f3ab2fe11
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AllOfWithSingleRef.md
@@ -0,0 +1,16 @@
+# openapi.model.AllOfWithSingleRef
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**username** | **String** | | [optional]
+**singleRefType** | [**SingleRefType**](SingleRefType.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Animal.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Animal.md
new file mode 100644
index 000000000000..415b56e9bc2e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Animal.md
@@ -0,0 +1,16 @@
+# openapi.model.Animal
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**className** | **String** | |
+**color** | **String** | | [optional] [default to 'red']
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AnotherFakeApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AnotherFakeApi.md
new file mode 100644
index 000000000000..36a94e6bb703
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/AnotherFakeApi.md
@@ -0,0 +1,57 @@
+# openapi.api.AnotherFakeApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**call123testSpecialTags**](AnotherFakeApi.md#call123testspecialtags) | **PATCH** /another-fake/dummy | To test special tags
+
+
+# **call123testSpecialTags**
+> ModelClient call123testSpecialTags(modelClient)
+
+To test special tags
+
+To test special tags and operation ID starting with number
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getAnotherFakeApi();
+final ModelClient modelClient = ; // ModelClient | client model
+
+try {
+ final response = api.call123testSpecialTags(modelClient);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling AnotherFakeApi->call123testSpecialTags: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **modelClient** | [**ModelClient**](ModelClient.md)| client model |
+
+### Return type
+
+[**ModelClient**](ModelClient.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ApiResponse.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ApiResponse.md
new file mode 100644
index 000000000000..7ad5da0f89e4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ApiResponse.md
@@ -0,0 +1,17 @@
+# openapi.model.ApiResponse
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **int** | | [optional]
+**type** | **String** | | [optional]
+**message** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfArrayOfNumberOnly.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfArrayOfNumberOnly.md
new file mode 100644
index 000000000000..e5b9d669a436
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfArrayOfNumberOnly.md
@@ -0,0 +1,15 @@
+# openapi.model.ArrayOfArrayOfNumberOnly
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayArrayNumber** | [**List<List<num>>**](List.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfNumberOnly.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfNumberOnly.md
new file mode 100644
index 000000000000..fe8e071eb45c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayOfNumberOnly.md
@@ -0,0 +1,15 @@
+# openapi.model.ArrayOfNumberOnly
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayNumber** | **List<num>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayTest.md
new file mode 100644
index 000000000000..8ae11de10022
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ArrayTest.md
@@ -0,0 +1,17 @@
+# openapi.model.ArrayTest
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**arrayOfString** | **List<String>** | | [optional]
+**arrayArrayOfInteger** | [**List<List<int>>**](List.md) | | [optional]
+**arrayArrayOfModel** | [**List<List<ReadOnlyFirst>>**](List.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Capitalization.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Capitalization.md
new file mode 100644
index 000000000000..4a07b4eb820d
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Capitalization.md
@@ -0,0 +1,20 @@
+# openapi.model.Capitalization
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**smallCamel** | **String** | | [optional]
+**capitalCamel** | **String** | | [optional]
+**smallSnake** | **String** | | [optional]
+**capitalSnake** | **String** | | [optional]
+**sCAETHFlowPoints** | **String** | | [optional]
+**ATT_NAME** | **String** | Name of the pet | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Cat.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Cat.md
new file mode 100644
index 000000000000..6552eea4b435
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Cat.md
@@ -0,0 +1,17 @@
+# openapi.model.Cat
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**className** | **String** | |
+**color** | **String** | | [optional] [default to 'red']
+**declawed** | **bool** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Category.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Category.md
new file mode 100644
index 000000000000..ae6bc52e89d8
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Category.md
@@ -0,0 +1,16 @@
+# openapi.model.Category
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**name** | **String** | | [default to 'default-name']
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ChildWithNullable.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ChildWithNullable.md
new file mode 100644
index 000000000000..770494fcf4cc
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ChildWithNullable.md
@@ -0,0 +1,17 @@
+# openapi.model.ChildWithNullable
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **String** | | [optional]
+**nullableProperty** | **String** | | [optional]
+**otherProperty** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ClassModel.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ClassModel.md
new file mode 100644
index 000000000000..13ae5d3a4708
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ClassModel.md
@@ -0,0 +1,15 @@
+# openapi.model.ClassModel
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**class_** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DefaultApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DefaultApi.md
new file mode 100644
index 000000000000..6abd2b44f9c4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DefaultApi.md
@@ -0,0 +1,51 @@
+# openapi.api.DefaultApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**fooGet**](DefaultApi.md#fooget) | **GET** /foo |
+
+
+# **fooGet**
+> FooGetDefaultResponse fooGet()
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getDefaultApi();
+
+try {
+ final response = api.fooGet();
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling DefaultApi->fooGet: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**FooGetDefaultResponse**](FooGetDefaultResponse.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DeprecatedObject.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DeprecatedObject.md
new file mode 100644
index 000000000000..bf2ef67a26fc
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/DeprecatedObject.md
@@ -0,0 +1,15 @@
+# openapi.model.DeprecatedObject
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Dog.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Dog.md
new file mode 100644
index 000000000000..d36439b767bb
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Dog.md
@@ -0,0 +1,17 @@
+# openapi.model.Dog
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**className** | **String** | |
+**color** | **String** | | [optional] [default to 'red']
+**breed** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumArrays.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumArrays.md
new file mode 100644
index 000000000000..1d4fd1363b59
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumArrays.md
@@ -0,0 +1,16 @@
+# openapi.model.EnumArrays
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justSymbol** | **String** | | [optional]
+**arrayEnum** | **List<String>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumTest.md
new file mode 100644
index 000000000000..7c24fe2347b4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/EnumTest.md
@@ -0,0 +1,22 @@
+# openapi.model.EnumTest
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enumString** | **String** | | [optional]
+**enumStringRequired** | **String** | |
+**enumInteger** | **int** | | [optional]
+**enumNumber** | **double** | | [optional]
+**outerEnum** | [**OuterEnum**](OuterEnum.md) | | [optional]
+**outerEnumInteger** | [**OuterEnumInteger**](OuterEnumInteger.md) | | [optional]
+**outerEnumDefaultValue** | [**OuterEnumDefaultValue**](OuterEnumDefaultValue.md) | | [optional]
+**outerEnumIntegerDefaultValue** | [**OuterEnumIntegerDefaultValue**](OuterEnumIntegerDefaultValue.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeApi.md
new file mode 100644
index 000000000000..1b5e1ca297c8
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeApi.md
@@ -0,0 +1,1028 @@
+# openapi.api.FakeApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**fakeBigDecimalMap**](FakeApi.md#fakebigdecimalmap) | **GET** /fake/BigDecimalMap |
+[**fakeHealthGet**](FakeApi.md#fakehealthget) | **GET** /fake/health | Health check endpoint
+[**fakeHttpSignatureTest**](FakeApi.md#fakehttpsignaturetest) | **GET** /fake/http-signature-test | test http signature authentication
+[**fakeOuterBooleanSerialize**](FakeApi.md#fakeouterbooleanserialize) | **POST** /fake/outer/boolean |
+[**fakeOuterCompositeSerialize**](FakeApi.md#fakeoutercompositeserialize) | **POST** /fake/outer/composite |
+[**fakeOuterNumberSerialize**](FakeApi.md#fakeouternumberserialize) | **POST** /fake/outer/number |
+[**fakeOuterStringSerialize**](FakeApi.md#fakeouterstringserialize) | **POST** /fake/outer/string |
+[**fakePropertyEnumIntegerSerialize**](FakeApi.md#fakepropertyenumintegerserialize) | **POST** /fake/property/enum-int |
+[**testAdditionalPropertiesReference**](FakeApi.md#testadditionalpropertiesreference) | **POST** /fake/additionalProperties-reference | test referenced additionalProperties
+[**testBodyWithBinary**](FakeApi.md#testbodywithbinary) | **PUT** /fake/body-with-binary |
+[**testBodyWithFileSchema**](FakeApi.md#testbodywithfileschema) | **PUT** /fake/body-with-file-schema |
+[**testBodyWithQueryParams**](FakeApi.md#testbodywithqueryparams) | **PUT** /fake/body-with-query-params |
+[**testClientModel**](FakeApi.md#testclientmodel) | **PATCH** /fake | To test \"client\" model
+[**testEndpointParameters**](FakeApi.md#testendpointparameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+[**testEnumParameters**](FakeApi.md#testenumparameters) | **GET** /fake | To test enum parameters
+[**testGroupParameters**](FakeApi.md#testgroupparameters) | **DELETE** /fake | Fake endpoint to test group parameters (optional)
+[**testInlineAdditionalProperties**](FakeApi.md#testinlineadditionalproperties) | **POST** /fake/inline-additionalProperties | test inline additionalProperties
+[**testInlineFreeformAdditionalProperties**](FakeApi.md#testinlinefreeformadditionalproperties) | **POST** /fake/inline-freeform-additionalProperties | test inline free-form additionalProperties
+[**testJsonFormData**](FakeApi.md#testjsonformdata) | **GET** /fake/jsonFormData | test json serialization of form data
+[**testNullable**](FakeApi.md#testnullable) | **POST** /fake/nullable | test nullable parent property
+[**testQueryParameterCollectionFormat**](FakeApi.md#testqueryparametercollectionformat) | **PUT** /fake/test-query-parameters |
+[**testStringMapReference**](FakeApi.md#teststringmapreference) | **POST** /fake/stringMap-reference | test referenced string map
+
+
+# **fakeBigDecimalMap**
+> FakeBigDecimalMap200Response fakeBigDecimalMap()
+
+
+
+for Java apache and Java native, test toUrlQueryString for maps with BegDecimal keys
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+
+try {
+ final response = api.fakeBigDecimalMap();
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeBigDecimalMap: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**FakeBigDecimalMap200Response**](FakeBigDecimalMap200Response.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeHealthGet**
+> HealthCheckResult fakeHealthGet()
+
+Health check endpoint
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+
+try {
+ final response = api.fakeHealthGet();
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeHealthGet: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**HealthCheckResult**](HealthCheckResult.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeHttpSignatureTest**
+> fakeHttpSignatureTest(pet, query1, header1)
+
+test http signature authentication
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final Pet pet = ; // Pet | Pet object that needs to be added to the store
+final String query1 = query1_example; // String | query parameter
+final String header1 = header1_example; // String | header parameter
+
+try {
+ api.fakeHttpSignatureTest(pet, query1, header1);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeHttpSignatureTest: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+ **query1** | **String**| query parameter | [optional]
+ **header1** | **String**| header parameter | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[http_signature_test](../README.md#http_signature_test)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeOuterBooleanSerialize**
+> bool fakeOuterBooleanSerialize(body)
+
+
+
+Test serialization of outer boolean types
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final bool body = true; // bool | Input boolean as post body
+
+try {
+ final response = api.fakeOuterBooleanSerialize(body);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeOuterBooleanSerialize: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **bool**| Input boolean as post body | [optional]
+
+### Return type
+
+**bool**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeOuterCompositeSerialize**
+> OuterComposite fakeOuterCompositeSerialize(outerComposite)
+
+
+
+Test serialization of object with outer number type
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final OuterComposite outerComposite = ; // OuterComposite | Input composite as post body
+
+try {
+ final response = api.fakeOuterCompositeSerialize(outerComposite);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeOuterCompositeSerialize: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **outerComposite** | [**OuterComposite**](OuterComposite.md)| Input composite as post body | [optional]
+
+### Return type
+
+[**OuterComposite**](OuterComposite.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeOuterNumberSerialize**
+> num fakeOuterNumberSerialize(body)
+
+
+
+Test serialization of outer number types
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final num body = 8.14; // num | Input number as post body
+
+try {
+ final response = api.fakeOuterNumberSerialize(body);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeOuterNumberSerialize: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **num**| Input number as post body | [optional]
+
+### Return type
+
+**num**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakeOuterStringSerialize**
+> String fakeOuterStringSerialize(body)
+
+
+
+Test serialization of outer string types
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final String body = body_example; // String | Input string as post body
+
+try {
+ final response = api.fakeOuterStringSerialize(body);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakeOuterStringSerialize: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **String**| Input string as post body | [optional]
+
+### Return type
+
+**String**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **fakePropertyEnumIntegerSerialize**
+> OuterObjectWithEnumProperty fakePropertyEnumIntegerSerialize(outerObjectWithEnumProperty)
+
+
+
+Test serialization of enum (int) properties with examples
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final OuterObjectWithEnumProperty outerObjectWithEnumProperty = ; // OuterObjectWithEnumProperty | Input enum (int) as post body
+
+try {
+ final response = api.fakePropertyEnumIntegerSerialize(outerObjectWithEnumProperty);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->fakePropertyEnumIntegerSerialize: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **outerObjectWithEnumProperty** | [**OuterObjectWithEnumProperty**](OuterObjectWithEnumProperty.md)| Input enum (int) as post body |
+
+### Return type
+
+[**OuterObjectWithEnumProperty**](OuterObjectWithEnumProperty.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: */*
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testAdditionalPropertiesReference**
+> testAdditionalPropertiesReference(requestBody)
+
+test referenced additionalProperties
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final Map requestBody = Object; // Map | request body
+
+try {
+ api.testAdditionalPropertiesReference(requestBody);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testAdditionalPropertiesReference: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **requestBody** | [**Map<String, Object>**](Object.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testBodyWithBinary**
+> testBodyWithBinary(body)
+
+
+
+For this test, the body has to be a binary file.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final MultipartFile body = BINARY_DATA_HERE; // MultipartFile | image to upload
+
+try {
+ api.testBodyWithBinary(body);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testBodyWithBinary: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **MultipartFile**| image to upload |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: image/png
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testBodyWithFileSchema**
+> testBodyWithFileSchema(fileSchemaTestClass)
+
+
+
+For this test, the body for this request must reference a schema named `File`.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final FileSchemaTestClass fileSchemaTestClass = ; // FileSchemaTestClass |
+
+try {
+ api.testBodyWithFileSchema(fileSchemaTestClass);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testBodyWithFileSchema: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **fileSchemaTestClass** | [**FileSchemaTestClass**](FileSchemaTestClass.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testBodyWithQueryParams**
+> testBodyWithQueryParams(query, user)
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final String query = query_example; // String |
+final User user = ; // User |
+
+try {
+ api.testBodyWithQueryParams(query, user);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testBodyWithQueryParams: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **query** | **String**| |
+ **user** | [**User**](User.md)| |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testClientModel**
+> ModelClient testClientModel(modelClient)
+
+To test \"client\" model
+
+To test \"client\" model
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final ModelClient modelClient = ; // ModelClient | client model
+
+try {
+ final response = api.testClientModel(modelClient);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testClientModel: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **modelClient** | [**ModelClient**](ModelClient.md)| client model |
+
+### Return type
+
+[**ModelClient**](ModelClient.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testEndpointParameters**
+> testEndpointParameters(number, double_, patternWithoutDelimiter, byte, integer, int32, int64, float, string, binary, date, dateTime, password, callback)
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure HTTP basic authorization: http_basic_test
+//defaultApiClient.getAuthentication('http_basic_test').username = 'YOUR_USERNAME'
+//defaultApiClient.getAuthentication('http_basic_test').password = 'YOUR_PASSWORD';
+
+final api = Openapi().getFakeApi();
+final num number = 8.14; // num | None
+final double double_ = 1.2; // double | None
+final String patternWithoutDelimiter = patternWithoutDelimiter_example; // String | None
+final String byte = BYTE_ARRAY_DATA_HERE; // String | None
+final int integer = 56; // int | None
+final int int32 = 56; // int | None
+final int int64 = 789; // int | None
+final double float = 3.4; // double | None
+final String string = string_example; // String | None
+final MultipartFile binary = BINARY_DATA_HERE; // MultipartFile | None
+final DateTime date = 2013-10-20; // DateTime | None
+final DateTime dateTime = 2013-10-20T19:20:30+01:00; // DateTime | None
+final String password = password_example; // String | None
+final String callback = callback_example; // String | None
+
+try {
+ api.testEndpointParameters(number, double_, patternWithoutDelimiter, byte, integer, int32, int64, float, string, binary, date, dateTime, password, callback);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testEndpointParameters: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **number** | **num**| None |
+ **double_** | **double**| None |
+ **patternWithoutDelimiter** | **String**| None |
+ **byte** | **String**| None |
+ **integer** | **int**| None | [optional]
+ **int32** | **int**| None | [optional]
+ **int64** | **int**| None | [optional]
+ **float** | **double**| None | [optional]
+ **string** | **String**| None | [optional]
+ **binary** | **MultipartFile**| None | [optional]
+ **date** | **DateTime**| None | [optional]
+ **dateTime** | **DateTime**| None | [optional]
+ **password** | **String**| None | [optional]
+ **callback** | **String**| None | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[http_basic_test](../README.md#http_basic_test)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testEnumParameters**
+> testEnumParameters(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumQueryModelArray, enumFormStringArray, enumFormString)
+
+To test enum parameters
+
+To test enum parameters
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final List enumHeaderStringArray = ; // List | Header parameter enum test (string array)
+final String enumHeaderString = enumHeaderString_example; // String | Header parameter enum test (string)
+final List enumQueryStringArray = ; // List | Query parameter enum test (string array)
+final String enumQueryString = enumQueryString_example; // String | Query parameter enum test (string)
+final int enumQueryInteger = 56; // int | Query parameter enum test (double)
+final double enumQueryDouble = 1.2; // double | Query parameter enum test (double)
+final List enumQueryModelArray = ; // List |
+final List enumFormStringArray = ; // List | Form parameter enum test (string array)
+final String enumFormString = enumFormString_example; // String | Form parameter enum test (string)
+
+try {
+ api.testEnumParameters(enumHeaderStringArray, enumHeaderString, enumQueryStringArray, enumQueryString, enumQueryInteger, enumQueryDouble, enumQueryModelArray, enumFormStringArray, enumFormString);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testEnumParameters: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **enumHeaderStringArray** | [**List<String>**](String.md)| Header parameter enum test (string array) | [optional]
+ **enumHeaderString** | **String**| Header parameter enum test (string) | [optional] [default to '-efg']
+ **enumQueryStringArray** | [**List<String>**](String.md)| Query parameter enum test (string array) | [optional]
+ **enumQueryString** | **String**| Query parameter enum test (string) | [optional] [default to '-efg']
+ **enumQueryInteger** | **int**| Query parameter enum test (double) | [optional]
+ **enumQueryDouble** | **double**| Query parameter enum test (double) | [optional]
+ **enumQueryModelArray** | [**List<ModelEnumClass>**](ModelEnumClass.md)| | [optional]
+ **enumFormStringArray** | [**List<String>**](String.md)| Form parameter enum test (string array) | [optional] [default to '$']
+ **enumFormString** | **String**| Form parameter enum test (string) | [optional] [default to '-efg']
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testGroupParameters**
+> testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group)
+
+Fake endpoint to test group parameters (optional)
+
+Fake endpoint to test group parameters (optional)
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final int requiredStringGroup = 56; // int | Required String in group parameters
+final bool requiredBooleanGroup = true; // bool | Required Boolean in group parameters
+final int requiredInt64Group = 789; // int | Required Integer in group parameters
+final int stringGroup = 56; // int | String in group parameters
+final bool booleanGroup = true; // bool | Boolean in group parameters
+final int int64Group = 789; // int | Integer in group parameters
+
+try {
+ api.testGroupParameters(requiredStringGroup, requiredBooleanGroup, requiredInt64Group, stringGroup, booleanGroup, int64Group);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testGroupParameters: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **requiredStringGroup** | **int**| Required String in group parameters |
+ **requiredBooleanGroup** | **bool**| Required Boolean in group parameters |
+ **requiredInt64Group** | **int**| Required Integer in group parameters |
+ **stringGroup** | **int**| String in group parameters | [optional]
+ **booleanGroup** | **bool**| Boolean in group parameters | [optional]
+ **int64Group** | **int**| Integer in group parameters | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[bearer_test](../README.md#bearer_test)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testInlineAdditionalProperties**
+> testInlineAdditionalProperties(requestBody)
+
+test inline additionalProperties
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final Map requestBody = ; // Map | request body
+
+try {
+ api.testInlineAdditionalProperties(requestBody);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testInlineAdditionalProperties: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **requestBody** | [**Map<String, String>**](String.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testInlineFreeformAdditionalProperties**
+> testInlineFreeformAdditionalProperties(testInlineFreeformAdditionalPropertiesRequest)
+
+test inline free-form additionalProperties
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final TestInlineFreeformAdditionalPropertiesRequest testInlineFreeformAdditionalPropertiesRequest = ; // TestInlineFreeformAdditionalPropertiesRequest | request body
+
+try {
+ api.testInlineFreeformAdditionalProperties(testInlineFreeformAdditionalPropertiesRequest);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testInlineFreeformAdditionalProperties: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **testInlineFreeformAdditionalPropertiesRequest** | [**TestInlineFreeformAdditionalPropertiesRequest**](TestInlineFreeformAdditionalPropertiesRequest.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testJsonFormData**
+> testJsonFormData(param, param2)
+
+test json serialization of form data
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final String param = param_example; // String | field1
+final String param2 = param2_example; // String | field2
+
+try {
+ api.testJsonFormData(param, param2);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testJsonFormData: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **param** | **String**| field1 |
+ **param2** | **String**| field2 |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testNullable**
+> testNullable(childWithNullable)
+
+test nullable parent property
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final ChildWithNullable childWithNullable = ; // ChildWithNullable | request body
+
+try {
+ api.testNullable(childWithNullable);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testNullable: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **childWithNullable** | [**ChildWithNullable**](ChildWithNullable.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testQueryParameterCollectionFormat**
+> testQueryParameterCollectionFormat(pipe, ioutil, http, url, context, allowEmpty, language)
+
+
+
+To test the collection format in query parameters
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final List pipe = ; // List |
+final List ioutil = ; // List |
+final List http = ; // List |
+final List url = ; // List |
+final List context = ; // List |
+final String allowEmpty = allowEmpty_example; // String |
+final Map language = ; // Map |
+
+try {
+ api.testQueryParameterCollectionFormat(pipe, ioutil, http, url, context, allowEmpty, language);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testQueryParameterCollectionFormat: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pipe** | [**List<String>**](String.md)| |
+ **ioutil** | [**List<String>**](String.md)| |
+ **http** | [**List<String>**](String.md)| |
+ **url** | [**List<String>**](String.md)| |
+ **context** | [**List<String>**](String.md)| |
+ **allowEmpty** | **String**| |
+ **language** | [**Map<String, String>**](String.md)| | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **testStringMapReference**
+> testStringMapReference(requestBody)
+
+test referenced string map
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getFakeApi();
+final Map requestBody = ; // Map | request body
+
+try {
+ api.testStringMapReference(requestBody);
+} catch on DioException (e) {
+ print('Exception when calling FakeApi->testStringMapReference: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **requestBody** | [**Map<String, String>**](String.md)| request body |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeBigDecimalMap200Response.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeBigDecimalMap200Response.md
new file mode 100644
index 000000000000..281dfc44fd8c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeBigDecimalMap200Response.md
@@ -0,0 +1,16 @@
+# openapi.model.FakeBigDecimalMap200Response
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**someId** | **num** | | [optional]
+**someMap** | **Map<String, num>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeClassnameTags123Api.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeClassnameTags123Api.md
new file mode 100644
index 000000000000..645aebf399f0
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FakeClassnameTags123Api.md
@@ -0,0 +1,61 @@
+# openapi.api.FakeClassnameTags123Api
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**testClassname**](FakeClassnameTags123Api.md#testclassname) | **PATCH** /fake_classname_test | To test class name in snake case
+
+
+# **testClassname**
+> ModelClient testClassname(modelClient)
+
+To test class name in snake case
+
+To test class name in snake case
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure API key authorization: api_key_query
+//defaultApiClient.getAuthentication('api_key_query').apiKey = 'YOUR_API_KEY';
+// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+//defaultApiClient.getAuthentication('api_key_query').apiKeyPrefix = 'Bearer';
+
+final api = Openapi().getFakeClassnameTags123Api();
+final ModelClient modelClient = ; // ModelClient | client model
+
+try {
+ final response = api.testClassname(modelClient);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling FakeClassnameTags123Api->testClassname: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **modelClient** | [**ModelClient**](ModelClient.md)| client model |
+
+### Return type
+
+[**ModelClient**](ModelClient.md)
+
+### Authorization
+
+[api_key_query](../README.md#api_key_query)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FileSchemaTestClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FileSchemaTestClass.md
new file mode 100644
index 000000000000..d14ac319d294
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FileSchemaTestClass.md
@@ -0,0 +1,16 @@
+# openapi.model.FileSchemaTestClass
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**file** | [**ModelFile**](ModelFile.md) | | [optional]
+**files** | [**List<ModelFile>**](ModelFile.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Foo.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Foo.md
new file mode 100644
index 000000000000..185b76e3f5b4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Foo.md
@@ -0,0 +1,15 @@
+# openapi.model.Foo
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** | | [optional] [default to 'bar']
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FooGetDefaultResponse.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FooGetDefaultResponse.md
new file mode 100644
index 000000000000..10d0133abd95
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FooGetDefaultResponse.md
@@ -0,0 +1,15 @@
+# openapi.model.FooGetDefaultResponse
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**string** | [**Foo**](Foo.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FormatTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FormatTest.md
new file mode 100644
index 000000000000..83b60545eb61
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/FormatTest.md
@@ -0,0 +1,30 @@
+# openapi.model.FormatTest
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**integer** | **int** | | [optional]
+**int32** | **int** | | [optional]
+**int64** | **int** | | [optional]
+**number** | **num** | |
+**float** | **double** | | [optional]
+**double_** | **double** | | [optional]
+**decimal** | **double** | | [optional]
+**string** | **String** | | [optional]
+**byte** | **String** | |
+**binary** | [**MultipartFile**](MultipartFile.md) | | [optional]
+**date** | [**DateTime**](DateTime.md) | |
+**dateTime** | [**DateTime**](DateTime.md) | | [optional]
+**uuid** | **String** | | [optional]
+**password** | **String** | |
+**patternWithDigits** | **String** | A string that is a 10 digit number. Can have leading zeros. | [optional]
+**patternWithDigitsAndDelimiter** | **String** | A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HasOnlyReadOnly.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HasOnlyReadOnly.md
new file mode 100644
index 000000000000..32cae937155d
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HasOnlyReadOnly.md
@@ -0,0 +1,16 @@
+# openapi.model.HasOnlyReadOnly
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** | | [optional]
+**foo** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HealthCheckResult.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HealthCheckResult.md
new file mode 100644
index 000000000000..4d6aeb75d965
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/HealthCheckResult.md
@@ -0,0 +1,15 @@
+# openapi.model.HealthCheckResult
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**nullableMessage** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MapTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MapTest.md
new file mode 100644
index 000000000000..197fe780a25a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MapTest.md
@@ -0,0 +1,18 @@
+# openapi.model.MapTest
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**mapMapOfString** | [**Map<String, Map<String, String>>**](Map.md) | | [optional]
+**mapOfEnumString** | **Map<String, String>** | | [optional]
+**directMap** | **Map<String, bool>** | | [optional]
+**indirectMap** | **Map<String, bool>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MixedPropertiesAndAdditionalPropertiesClass.md
new file mode 100644
index 000000000000..66d0d39c42be
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/MixedPropertiesAndAdditionalPropertiesClass.md
@@ -0,0 +1,17 @@
+# openapi.model.MixedPropertiesAndAdditionalPropertiesClass
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **String** | | [optional]
+**dateTime** | [**DateTime**](DateTime.md) | | [optional]
+**map** | [**Map<String, Animal>**](Animal.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Model200Response.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Model200Response.md
new file mode 100644
index 000000000000..5aa3fb97c32e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Model200Response.md
@@ -0,0 +1,16 @@
+# openapi.model.Model200Response
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **int** | | [optional]
+**class_** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelClient.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelClient.md
new file mode 100644
index 000000000000..f7b922f4a398
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelClient.md
@@ -0,0 +1,15 @@
+# openapi.model.ModelClient
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**client** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelEnumClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelEnumClass.md
new file mode 100644
index 000000000000..ebaafb44c7f7
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelEnumClass.md
@@ -0,0 +1,14 @@
+# openapi.model.ModelEnumClass
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelFile.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelFile.md
new file mode 100644
index 000000000000..4be260e93f6e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelFile.md
@@ -0,0 +1,15 @@
+# openapi.model.ModelFile
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**sourceURI** | **String** | Test capitalization | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelList.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelList.md
new file mode 100644
index 000000000000..283aa1f6b711
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelList.md
@@ -0,0 +1,15 @@
+# openapi.model.ModelList
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**n123list** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelReturn.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelReturn.md
new file mode 100644
index 000000000000..bc02df7a3692
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ModelReturn.md
@@ -0,0 +1,15 @@
+# openapi.model.ModelReturn
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**return_** | **int** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Name.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Name.md
new file mode 100644
index 000000000000..25f49ea946b4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Name.md
@@ -0,0 +1,18 @@
+# openapi.model.Name
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **int** | |
+**snakeCase** | **int** | | [optional]
+**property** | **String** | | [optional]
+**n123number** | **int** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NullableClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NullableClass.md
new file mode 100644
index 000000000000..70ac1091d417
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NullableClass.md
@@ -0,0 +1,26 @@
+# openapi.model.NullableClass
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**integerProp** | **int** | | [optional]
+**numberProp** | **num** | | [optional]
+**booleanProp** | **bool** | | [optional]
+**stringProp** | **String** | | [optional]
+**dateProp** | [**DateTime**](DateTime.md) | | [optional]
+**datetimeProp** | [**DateTime**](DateTime.md) | | [optional]
+**arrayNullableProp** | **List<Object>** | | [optional]
+**arrayAndItemsNullableProp** | **List<Object>** | | [optional]
+**arrayItemsNullable** | **List<Object>** | | [optional]
+**objectNullableProp** | **Map<String, Object>** | | [optional]
+**objectAndItemsNullableProp** | **Map<String, Object>** | | [optional]
+**objectItemsNullable** | **Map<String, Object>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NumberOnly.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NumberOnly.md
new file mode 100644
index 000000000000..d8096a3db37a
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/NumberOnly.md
@@ -0,0 +1,15 @@
+# openapi.model.NumberOnly
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**justNumber** | **num** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ObjectWithDeprecatedFields.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ObjectWithDeprecatedFields.md
new file mode 100644
index 000000000000..dda2836d8d54
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ObjectWithDeprecatedFields.md
@@ -0,0 +1,18 @@
+# openapi.model.ObjectWithDeprecatedFields
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**uuid** | **String** | | [optional]
+**id** | **num** | | [optional]
+**deprecatedRef** | [**DeprecatedObject**](DeprecatedObject.md) | | [optional]
+**bars** | **List<String>** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Order.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Order.md
new file mode 100644
index 000000000000..bde5ffe51a2c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Order.md
@@ -0,0 +1,20 @@
+# openapi.model.Order
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**petId** | **int** | | [optional]
+**quantity** | **int** | | [optional]
+**shipDate** | [**DateTime**](DateTime.md) | | [optional]
+**status** | **String** | Order Status | [optional]
+**complete** | **bool** | | [optional] [default to false]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterComposite.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterComposite.md
new file mode 100644
index 000000000000..04bab7eff5d1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterComposite.md
@@ -0,0 +1,17 @@
+# openapi.model.OuterComposite
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**myNumber** | **num** | | [optional]
+**myString** | **String** | | [optional]
+**myBoolean** | **bool** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnum.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnum.md
new file mode 100644
index 000000000000..af62ad87ab2e
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnum.md
@@ -0,0 +1,14 @@
+# openapi.model.OuterEnum
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumDefaultValue.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumDefaultValue.md
new file mode 100644
index 000000000000..c1bf8b0dec44
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumDefaultValue.md
@@ -0,0 +1,14 @@
+# openapi.model.OuterEnumDefaultValue
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumInteger.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumInteger.md
new file mode 100644
index 000000000000..8c80a9e5c85f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumInteger.md
@@ -0,0 +1,14 @@
+# openapi.model.OuterEnumInteger
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumIntegerDefaultValue.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumIntegerDefaultValue.md
new file mode 100644
index 000000000000..eb8b55d70249
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterEnumIntegerDefaultValue.md
@@ -0,0 +1,14 @@
+# openapi.model.OuterEnumIntegerDefaultValue
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterObjectWithEnumProperty.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterObjectWithEnumProperty.md
new file mode 100644
index 000000000000..eab2ae8f66b4
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/OuterObjectWithEnumProperty.md
@@ -0,0 +1,15 @@
+# openapi.model.OuterObjectWithEnumProperty
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**OuterEnumInteger**](OuterEnumInteger.md) | |
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ParentWithNullable.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ParentWithNullable.md
new file mode 100644
index 000000000000..17aa5ca02941
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ParentWithNullable.md
@@ -0,0 +1,16 @@
+# openapi.model.ParentWithNullable
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **String** | | [optional]
+**nullableProperty** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Pet.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Pet.md
new file mode 100644
index 000000000000..3cd230bfb213
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Pet.md
@@ -0,0 +1,20 @@
+# openapi.model.Pet
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**category** | [**Category**](Category.md) | | [optional]
+**name** | **String** | |
+**photoUrls** | **Set<String>** | |
+**tags** | [**List<Tag>**](Tag.md) | | [optional]
+**status** | **String** | pet status in the store | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/PetApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/PetApi.md
new file mode 100644
index 000000000000..5fc7fbd2657f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/PetApi.md
@@ -0,0 +1,439 @@
+# openapi.api.PetApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**addPet**](PetApi.md#addpet) | **POST** /pet | Add a new pet to the store
+[**deletePet**](PetApi.md#deletepet) | **DELETE** /pet/{petId} | Deletes a pet
+[**findPetsByStatus**](PetApi.md#findpetsbystatus) | **GET** /pet/findByStatus | Finds Pets by status
+[**findPetsByTags**](PetApi.md#findpetsbytags) | **GET** /pet/findByTags | Finds Pets by tags
+[**getPetById**](PetApi.md#getpetbyid) | **GET** /pet/{petId} | Find pet by ID
+[**updatePet**](PetApi.md#updatepet) | **PUT** /pet | Update an existing pet
+[**updatePetWithForm**](PetApi.md#updatepetwithform) | **POST** /pet/{petId} | Updates a pet in the store with form data
+[**uploadFile**](PetApi.md#uploadfile) | **POST** /pet/{petId}/uploadImage | uploads an image
+[**uploadFileWithRequiredFile**](PetApi.md#uploadfilewithrequiredfile) | **POST** /fake/{petId}/uploadImageWithRequiredFile | uploads an image (required)
+
+
+# **addPet**
+> addPet(pet)
+
+Add a new pet to the store
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final Pet pet = ; // Pet | Pet object that needs to be added to the store
+
+try {
+ api.addPet(pet);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->addPet: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **deletePet**
+> deletePet(petId, apiKey)
+
+Deletes a pet
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final int petId = 789; // int | Pet id to delete
+final String apiKey = apiKey_example; // String |
+
+try {
+ api.deletePet(petId, apiKey);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->deletePet: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **int**| Pet id to delete |
+ **apiKey** | **String**| | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **findPetsByStatus**
+> List findPetsByStatus(status)
+
+Finds Pets by status
+
+Multiple status values can be provided with comma separated strings
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final List status = ; // List | Status values that need to be considered for filter
+
+try {
+ final response = api.findPetsByStatus(status);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->findPetsByStatus: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **status** | [**List<String>**](String.md)| Status values that need to be considered for filter |
+
+### Return type
+
+[**List<Pet>**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **findPetsByTags**
+> Set findPetsByTags(tags)
+
+Finds Pets by tags
+
+Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final Set tags = ; // Set | Tags to filter by
+
+try {
+ final response = api.findPetsByTags(tags);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->findPetsByTags: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **tags** | [**Set<String>**](String.md)| Tags to filter by |
+
+### Return type
+
+[**Set<Pet>**](Pet.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **getPetById**
+> Pet getPetById(petId)
+
+Find pet by ID
+
+Returns a single pet
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure API key authorization: api_key
+//defaultApiClient.getAuthentication('api_key').apiKey = 'YOUR_API_KEY';
+// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+//defaultApiClient.getAuthentication('api_key').apiKeyPrefix = 'Bearer';
+
+final api = Openapi().getPetApi();
+final int petId = 789; // int | ID of pet to return
+
+try {
+ final response = api.getPetById(petId);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->getPetById: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **int**| ID of pet to return |
+
+### Return type
+
+[**Pet**](Pet.md)
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **updatePet**
+> updatePet(pet)
+
+Update an existing pet
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final Pet pet = ; // Pet | Pet object that needs to be added to the store
+
+try {
+ api.updatePet(pet);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->updatePet: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **pet** | [**Pet**](Pet.md)| Pet object that needs to be added to the store |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json, application/xml
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **updatePetWithForm**
+> updatePetWithForm(petId, name, status)
+
+Updates a pet in the store with form data
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final int petId = 789; // int | ID of pet that needs to be updated
+final String name = name_example; // String | Updated name of the pet
+final String status = status_example; // String | Updated status of the pet
+
+try {
+ api.updatePetWithForm(petId, name, status);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->updatePetWithForm: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **int**| ID of pet that needs to be updated |
+ **name** | **String**| Updated name of the pet | [optional]
+ **status** | **String**| Updated status of the pet | [optional]
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/x-www-form-urlencoded
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **uploadFile**
+> ApiResponse uploadFile(petId, additionalMetadata, file)
+
+uploads an image
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final int petId = 789; // int | ID of pet to update
+final String additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server
+final MultipartFile file = BINARY_DATA_HERE; // MultipartFile | file to upload
+
+try {
+ final response = api.uploadFile(petId, additionalMetadata, file);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->uploadFile: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **int**| ID of pet to update |
+ **additionalMetadata** | **String**| Additional data to pass to server | [optional]
+ **file** | **MultipartFile**| file to upload | [optional]
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **uploadFileWithRequiredFile**
+> ApiResponse uploadFileWithRequiredFile(petId, requiredFile, additionalMetadata)
+
+uploads an image (required)
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure OAuth2 access token for authorization: petstore_auth
+//defaultApiClient.getAuthentication('petstore_auth').accessToken = 'YOUR_ACCESS_TOKEN';
+
+final api = Openapi().getPetApi();
+final int petId = 789; // int | ID of pet to update
+final MultipartFile requiredFile = BINARY_DATA_HERE; // MultipartFile | file to upload
+final String additionalMetadata = additionalMetadata_example; // String | Additional data to pass to server
+
+try {
+ final response = api.uploadFileWithRequiredFile(petId, requiredFile, additionalMetadata);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling PetApi->uploadFileWithRequiredFile: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **petId** | **int**| ID of pet to update |
+ **requiredFile** | **MultipartFile**| file to upload |
+ **additionalMetadata** | **String**| Additional data to pass to server | [optional]
+
+### Return type
+
+[**ApiResponse**](ApiResponse.md)
+
+### Authorization
+
+[petstore_auth](../README.md#petstore_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ReadOnlyFirst.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ReadOnlyFirst.md
new file mode 100644
index 000000000000..8f612e8ba19f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/ReadOnlyFirst.md
@@ -0,0 +1,16 @@
+# openapi.model.ReadOnlyFirst
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bar** | **String** | | [optional]
+**baz** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SingleRefType.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SingleRefType.md
new file mode 100644
index 000000000000..0dc93840cd7f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SingleRefType.md
@@ -0,0 +1,14 @@
+# openapi.model.SingleRefType
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SpecialModelName.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SpecialModelName.md
new file mode 100644
index 000000000000..5fcfa98e0b36
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/SpecialModelName.md
@@ -0,0 +1,15 @@
+# openapi.model.SpecialModelName
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**dollarSpecialLeftSquareBracketPropertyPeriodNameRightSquareBracket** | **int** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/StoreApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/StoreApi.md
new file mode 100644
index 000000000000..42028947229f
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/StoreApi.md
@@ -0,0 +1,188 @@
+# openapi.api.StoreApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**deleteOrder**](StoreApi.md#deleteorder) | **DELETE** /store/order/{order_id} | Delete purchase order by ID
+[**getInventory**](StoreApi.md#getinventory) | **GET** /store/inventory | Returns pet inventories by status
+[**getOrderById**](StoreApi.md#getorderbyid) | **GET** /store/order/{order_id} | Find purchase order by ID
+[**placeOrder**](StoreApi.md#placeorder) | **POST** /store/order | Place an order for a pet
+
+
+# **deleteOrder**
+> deleteOrder(orderId)
+
+Delete purchase order by ID
+
+For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getStoreApi();
+final String orderId = orderId_example; // String | ID of the order that needs to be deleted
+
+try {
+ api.deleteOrder(orderId);
+} catch on DioException (e) {
+ print('Exception when calling StoreApi->deleteOrder: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **orderId** | **String**| ID of the order that needs to be deleted |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **getInventory**
+> Map getInventory()
+
+Returns pet inventories by status
+
+Returns a map of status codes to quantities
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+// TODO Configure API key authorization: api_key
+//defaultApiClient.getAuthentication('api_key').apiKey = 'YOUR_API_KEY';
+// uncomment below to setup prefix (e.g. Bearer) for API key, if needed
+//defaultApiClient.getAuthentication('api_key').apiKeyPrefix = 'Bearer';
+
+final api = Openapi().getStoreApi();
+
+try {
+ final response = api.getInventory();
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling StoreApi->getInventory: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+**Map<String, int>**
+
+### Authorization
+
+[api_key](../README.md#api_key)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **getOrderById**
+> Order getOrderById(orderId)
+
+Find purchase order by ID
+
+For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getStoreApi();
+final int orderId = 789; // int | ID of pet that needs to be fetched
+
+try {
+ final response = api.getOrderById(orderId);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling StoreApi->getOrderById: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **orderId** | **int**| ID of pet that needs to be fetched |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **placeOrder**
+> Order placeOrder(order)
+
+Place an order for a pet
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getStoreApi();
+final Order order = ; // Order | order placed for purchasing the pet
+
+try {
+ final response = api.placeOrder(order);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling StoreApi->placeOrder: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **order** | [**Order**](Order.md)| order placed for purchasing the pet |
+
+### Return type
+
+[**Order**](Order.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Tag.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Tag.md
new file mode 100644
index 000000000000..c219f987c19c
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/Tag.md
@@ -0,0 +1,16 @@
+# openapi.model.Tag
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**name** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/TestInlineFreeformAdditionalPropertiesRequest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/TestInlineFreeformAdditionalPropertiesRequest.md
new file mode 100644
index 000000000000..e2b2f1fd4468
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/TestInlineFreeformAdditionalPropertiesRequest.md
@@ -0,0 +1,15 @@
+# openapi.model.TestInlineFreeformAdditionalPropertiesRequest
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**someProperty** | **String** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/User.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/User.md
new file mode 100644
index 000000000000..fa87e64d8595
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/User.md
@@ -0,0 +1,22 @@
+# openapi.model.User
+
+## Load the model package
+```dart
+import 'package:openapi/api.dart';
+```
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **int** | | [optional]
+**username** | **String** | | [optional]
+**firstName** | **String** | | [optional]
+**lastName** | **String** | | [optional]
+**email** | **String** | | [optional]
+**password** | **String** | | [optional]
+**phone** | **String** | | [optional]
+**userStatus** | **int** | User Status | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/UserApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/UserApi.md
new file mode 100644
index 000000000000..49b79d76b8a1
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/doc/UserApi.md
@@ -0,0 +1,359 @@
+# openapi.api.UserApi
+
+## Load the API package
+```dart
+import 'package:openapi/api.dart';
+```
+
+All URIs are relative to *http://petstore.swagger.io:80/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**createUser**](UserApi.md#createuser) | **POST** /user | Create user
+[**createUsersWithArrayInput**](UserApi.md#createuserswitharrayinput) | **POST** /user/createWithArray | Creates list of users with given input array
+[**createUsersWithListInput**](UserApi.md#createuserswithlistinput) | **POST** /user/createWithList | Creates list of users with given input array
+[**deleteUser**](UserApi.md#deleteuser) | **DELETE** /user/{username} | Delete user
+[**getUserByName**](UserApi.md#getuserbyname) | **GET** /user/{username} | Get user by user name
+[**loginUser**](UserApi.md#loginuser) | **GET** /user/login | Logs user into the system
+[**logoutUser**](UserApi.md#logoutuser) | **GET** /user/logout | Logs out current logged in user session
+[**updateUser**](UserApi.md#updateuser) | **PUT** /user/{username} | Updated user
+
+
+# **createUser**
+> createUser(user)
+
+Create user
+
+This can only be done by the logged in user.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final User user = ; // User | Created user object
+
+try {
+ api.createUser(user);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->createUser: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**User**](User.md)| Created user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **createUsersWithArrayInput**
+> createUsersWithArrayInput(user)
+
+Creates list of users with given input array
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final List user = ; // List | List of user object
+
+try {
+ api.createUsersWithArrayInput(user);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->createUsersWithArrayInput: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**List<User>**](User.md)| List of user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **createUsersWithListInput**
+> createUsersWithListInput(user)
+
+Creates list of users with given input array
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final List user = ; // List | List of user object
+
+try {
+ api.createUsersWithListInput(user);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->createUsersWithListInput: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **user** | [**List<User>**](User.md)| List of user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **deleteUser**
+> deleteUser(username)
+
+Delete user
+
+This can only be done by the logged in user.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final String username = username_example; // String | The name that needs to be deleted
+
+try {
+ api.deleteUser(username);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->deleteUser: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The name that needs to be deleted |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **getUserByName**
+> User getUserByName(username)
+
+Get user by user name
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final String username = username_example; // String | The name that needs to be fetched. Use user1 for testing.
+
+try {
+ final response = api.getUserByName(username);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->getUserByName: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The name that needs to be fetched. Use user1 for testing. |
+
+### Return type
+
+[**User**](User.md)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **loginUser**
+> String loginUser(username, password)
+
+Logs user into the system
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final String username = username_example; // String | The user name for login
+final String password = password_example; // String | The password for login in clear text
+
+try {
+ final response = api.loginUser(username, password);
+ print(response);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->loginUser: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| The user name for login |
+ **password** | **String**| The password for login in clear text |
+
+### Return type
+
+**String**
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **logoutUser**
+> logoutUser()
+
+Logs out current logged in user session
+
+
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+
+try {
+ api.logoutUser();
+} catch on DioException (e) {
+ print('Exception when calling UserApi->logoutUser: $e\n');
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **updateUser**
+> updateUser(username, user)
+
+Updated user
+
+This can only be done by the logged in user.
+
+### Example
+```dart
+import 'package:openapi/api.dart';
+
+final api = Openapi().getUserApi();
+final String username = username_example; // String | name that need to be deleted
+final User user = ; // User | Updated user object
+
+try {
+ api.updateUser(username, user);
+} catch on DioException (e) {
+ print('Exception when calling UserApi->updateUser: $e\n');
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **username** | **String**| name that need to be deleted |
+ **user** | [**User**](User.md)| Updated user object |
+
+### Return type
+
+void (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: Not defined
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/openapi.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/openapi.dart
new file mode 100644
index 000000000000..a462009ebf73
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/openapi.dart
@@ -0,0 +1,70 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+export 'package:openapi/src/api.dart';
+export 'package:openapi/src/auth/api_key_auth.dart';
+export 'package:openapi/src/auth/basic_auth.dart';
+export 'package:openapi/src/auth/bearer_auth.dart';
+export 'package:openapi/src/auth/oauth.dart';
+
+
+export 'package:openapi/src/api/another_fake_api.dart';
+export 'package:openapi/src/api/default_api.dart';
+export 'package:openapi/src/api/fake_api.dart';
+export 'package:openapi/src/api/fake_classname_tags123_api.dart';
+export 'package:openapi/src/api/pet_api.dart';
+export 'package:openapi/src/api/store_api.dart';
+export 'package:openapi/src/api/user_api.dart';
+
+export 'package:openapi/src/model/additional_properties_class.dart';
+export 'package:openapi/src/model/all_of_with_single_ref.dart';
+export 'package:openapi/src/model/animal.dart';
+export 'package:openapi/src/model/api_response.dart';
+export 'package:openapi/src/model/array_of_array_of_number_only.dart';
+export 'package:openapi/src/model/array_of_number_only.dart';
+export 'package:openapi/src/model/array_test.dart';
+export 'package:openapi/src/model/capitalization.dart';
+export 'package:openapi/src/model/cat.dart';
+export 'package:openapi/src/model/category.dart';
+export 'package:openapi/src/model/child_with_nullable.dart';
+export 'package:openapi/src/model/class_model.dart';
+export 'package:openapi/src/model/deprecated_object.dart';
+export 'package:openapi/src/model/dog.dart';
+export 'package:openapi/src/model/enum_arrays.dart';
+export 'package:openapi/src/model/enum_test.dart';
+export 'package:openapi/src/model/fake_big_decimal_map200_response.dart';
+export 'package:openapi/src/model/file_schema_test_class.dart';
+export 'package:openapi/src/model/foo.dart';
+export 'package:openapi/src/model/foo_get_default_response.dart';
+export 'package:openapi/src/model/format_test.dart';
+export 'package:openapi/src/model/has_only_read_only.dart';
+export 'package:openapi/src/model/health_check_result.dart';
+export 'package:openapi/src/model/map_test.dart';
+export 'package:openapi/src/model/mixed_properties_and_additional_properties_class.dart';
+export 'package:openapi/src/model/model200_response.dart';
+export 'package:openapi/src/model/model_client.dart';
+export 'package:openapi/src/model/model_enum_class.dart';
+export 'package:openapi/src/model/model_file.dart';
+export 'package:openapi/src/model/model_list.dart';
+export 'package:openapi/src/model/model_return.dart';
+export 'package:openapi/src/model/name.dart';
+export 'package:openapi/src/model/nullable_class.dart';
+export 'package:openapi/src/model/number_only.dart';
+export 'package:openapi/src/model/object_with_deprecated_fields.dart';
+export 'package:openapi/src/model/order.dart';
+export 'package:openapi/src/model/outer_composite.dart';
+export 'package:openapi/src/model/outer_enum.dart';
+export 'package:openapi/src/model/outer_enum_default_value.dart';
+export 'package:openapi/src/model/outer_enum_integer.dart';
+export 'package:openapi/src/model/outer_enum_integer_default_value.dart';
+export 'package:openapi/src/model/outer_object_with_enum_property.dart';
+export 'package:openapi/src/model/parent_with_nullable.dart';
+export 'package:openapi/src/model/pet.dart';
+export 'package:openapi/src/model/read_only_first.dart';
+export 'package:openapi/src/model/single_ref_type.dart';
+export 'package:openapi/src/model/special_model_name.dart';
+export 'package:openapi/src/model/tag.dart';
+export 'package:openapi/src/model/test_inline_freeform_additional_properties_request.dart';
+export 'package:openapi/src/model/user.dart';
+
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api.dart
new file mode 100644
index 000000000000..835b76584b2d
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api.dart
@@ -0,0 +1,110 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'package:dio/dio.dart';
+import 'package:openapi/src/auth/api_key_auth.dart';
+import 'package:openapi/src/auth/basic_auth.dart';
+import 'package:openapi/src/auth/bearer_auth.dart';
+import 'package:openapi/src/auth/oauth.dart';
+import 'package:openapi/src/api/another_fake_api.dart';
+import 'package:openapi/src/api/default_api.dart';
+import 'package:openapi/src/api/fake_api.dart';
+import 'package:openapi/src/api/fake_classname_tags123_api.dart';
+import 'package:openapi/src/api/pet_api.dart';
+import 'package:openapi/src/api/store_api.dart';
+import 'package:openapi/src/api/user_api.dart';
+
+class Openapi {
+ static const String basePath = r'http://petstore.swagger.io:80/v2';
+
+ final Dio dio;
+ Openapi({
+ Dio? dio,
+ String? basePathOverride,
+ List? interceptors,
+ }) :
+ this.dio = dio ??
+ Dio(BaseOptions(
+ baseUrl: basePathOverride ?? basePath,
+ connectTimeout: const Duration(milliseconds: 5000),
+ receiveTimeout: const Duration(milliseconds: 3000),
+ )) {
+ if (interceptors == null) {
+ this.dio.interceptors.addAll([
+ OAuthInterceptor(),
+ BasicAuthInterceptor(),
+ BearerAuthInterceptor(),
+ ApiKeyAuthInterceptor(),
+ ]);
+ } else {
+ this.dio.interceptors.addAll(interceptors);
+ }
+ }
+
+ void setOAuthToken(String name, String token) {
+ if (this.dio.interceptors.any((i) => i is OAuthInterceptor)) {
+ (this.dio.interceptors.firstWhere((i) => i is OAuthInterceptor) as OAuthInterceptor).tokens[name] = token;
+ }
+ }
+
+ void setBearerAuth(String name, String token) {
+ if (this.dio.interceptors.any((i) => i is BearerAuthInterceptor)) {
+ (this.dio.interceptors.firstWhere((i) => i is BearerAuthInterceptor) as BearerAuthInterceptor).tokens[name] = token;
+ }
+ }
+
+ void setBasicAuth(String name, String username, String password) {
+ if (this.dio.interceptors.any((i) => i is BasicAuthInterceptor)) {
+ (this.dio.interceptors.firstWhere((i) => i is BasicAuthInterceptor) as BasicAuthInterceptor).authInfo[name] = BasicAuthInfo(username, password);
+ }
+ }
+
+ void setApiKey(String name, String apiKey) {
+ if (this.dio.interceptors.any((i) => i is ApiKeyAuthInterceptor)) {
+ (this.dio.interceptors.firstWhere((element) => element is ApiKeyAuthInterceptor) as ApiKeyAuthInterceptor).apiKeys[name] = apiKey;
+ }
+ }
+
+ /// Get AnotherFakeApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ AnotherFakeApi getAnotherFakeApi() {
+ return AnotherFakeApi(dio);
+ }
+
+ /// Get DefaultApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ DefaultApi getDefaultApi() {
+ return DefaultApi(dio);
+ }
+
+ /// Get FakeApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ FakeApi getFakeApi() {
+ return FakeApi(dio);
+ }
+
+ /// Get FakeClassnameTags123Api instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ FakeClassnameTags123Api getFakeClassnameTags123Api() {
+ return FakeClassnameTags123Api(dio);
+ }
+
+ /// Get PetApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ PetApi getPetApi() {
+ return PetApi(dio);
+ }
+
+ /// Get StoreApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ StoreApi getStoreApi() {
+ return StoreApi(dio);
+ }
+
+ /// Get UserApi instance, base route and serializer can be overridden by a given but be careful,
+ /// by doing that all interceptors will not be executed
+ UserApi getUserApi() {
+ return UserApi(dio);
+ }
+}
diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api/another_fake_api.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api/another_fake_api.dart
new file mode 100644
index 000000000000..d98f3c23f4f7
--- /dev/null
+++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_use_lower_camel_case/lib/src/api/another_fake_api.dart
@@ -0,0 +1,109 @@
+//
+// AUTO-GENERATED FILE, DO NOT MODIFY!
+//
+
+import 'dart:async';
+
+// ignore: unused_import
+import 'dart:convert';
+import 'package:openapi/src/deserialize.dart';
+import 'package:dio/dio.dart';
+
+import 'package:openapi/src/model/model_client.dart';
+
+class AnotherFakeApi {
+
+ final Dio _dio;
+
+ const AnotherFakeApi(this._dio);
+
+ /// To test special tags
+ /// To test special tags and operation ID starting with number
+ ///
+ /// Parameters:
+ /// * [modelClient] - client model
+ /// * [cancelToken] - A [CancelToken] that can be used to cancel the operation
+ /// * [headers] - Can be used to add additional headers to the request
+ /// * [extras] - Can be used to add flags to the request
+ /// * [validateStatus] - A [ValidateStatus] callback that can be used to determine request success based on the HTTP status of the response
+ /// * [onSendProgress] - A [ProgressCallback] that can be used to get the send progress
+ /// * [onReceiveProgress] - A [ProgressCallback] that can be used to get the receive progress
+ ///
+ /// Returns a [Future] containing a [Response] with a [ModelClient] as data
+ /// Throws [DioException] if API call or serialization fails
+ Future> call123testSpecialTags({
+ required ModelClient modelClient,
+ CancelToken? cancelToken,
+ Map? headers,
+ Map? extra,
+ ValidateStatus? validateStatus,
+ ProgressCallback? onSendProgress,
+ ProgressCallback? onReceiveProgress,
+ }) async {
+ final _path = r'/another-fake/dummy';
+ final _options = Options(
+ method: r'PATCH',
+ headers: {
+ ...?headers,
+ },
+ extra: {
+ 'secure':