diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java index 565cda9194d..623ad634ae1 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/InlineModelResolver.java @@ -30,6 +30,7 @@ import io.swagger.v3.oas.models.parameters.Parameter; import io.swagger.v3.oas.models.parameters.RequestBody; import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.responses.ApiResponses; +import java.util.stream.Collectors; import org.apache.commons.lang3.StringUtils; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; @@ -417,7 +418,18 @@ public class InlineModelResolver { if (schema.getAllOf().size() == 1) { // handle earlier in this function when looping through properties } else if (schema.getAllOf().size() > 1) { - LOGGER.warn("allOf schema `{}` containing multiple types (not model) is not supported at the moment.", schema.getName()); + // Check if there is only one "non metadata" schema. + // For example, there may be an `description` only schema that is used to override the descrption. + // In these cases, we can simply discard those schemas. + List nonMetadataOnlySchemas = (List) schema.getAllOf().stream() + .filter(v -> ModelUtils.isMetadataOnlySchema((Schema) v)) + .collect(Collectors.toList()); + + if (nonMetadataOnlySchemas.size() == 1) { + schema.setAllOf(nonMetadataOnlySchemas); + } else { + LOGGER.warn("allOf schema `{}` containing multiple types (not model) is not supported at the moment.", schema.getName()); + } } else { LOGGER.error("allOf schema `{}` contains no items.", schema.getName()); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java index dfa8c879f68..e1f9a932588 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ModelUtils.java @@ -2336,6 +2336,32 @@ public class ModelUtils { return false; } + /** + * Returns true if a schema is only metadata and not an actual type. + * For example, a schema that only has a `description` without any `properties` or `$ref` defined. + * + * @param schema the schema + * @return if the schema is only metadata and not an actual type + */ + public static boolean isMetadataOnlySchema(Schema schema) { + return schema.get$ref() != null || + schema.getProperties() != null || + schema.getType() != null || + schema.getAdditionalProperties() != null || + schema.getAllOf() != null || + schema.getAnyOf() != null || + schema.getOneOf() != null || + schema.getPrefixItems() != null || + schema.getItems() != null || + schema.getTypes() != null || + schema.getPatternProperties() != null || + schema.getContains() != null || + schema.get$dynamicAnchor() != null || + schema.get$anchor() != null || + schema.getContentSchema() != null; + } + + @FunctionalInterface private interface OpenAPISchemaVisitor { diff --git a/modules/openapi-generator/src/test/resources/3_0/rust/petstore.yaml b/modules/openapi-generator/src/test/resources/3_0/rust/petstore.yaml index a907621754e..3e49f5606d1 100644 --- a/modules/openapi-generator/src/test/resources/3_0/rust/petstore.yaml +++ b/modules/openapi-generator/src/test/resources/3_0/rust/petstore.yaml @@ -1088,3 +1088,22 @@ components: properties: name: type: string + existing_tags_array: + type: array + items: + type: string + nullable: true + description: 'existing_tags_array' + example: + - base-image + - prod + TestAllOfWithMultiMetadataOnly: + type: object + properties: + id: + type: integer + format: int64 + foo: + allOf: + - $ref: '#/components/schemas/existing_tags_array' + - description: This is a test for allOf with metadata only fields diff --git a/samples/client/petstore/gdscript/addons/oas.petstore.client/models/DemoActionContainerModel.gd b/samples/client/petstore/gdscript/addons/oas.petstore.client/models/DemoActionContainerModel.gd index 7abe3a2a462..146b652507f 100644 --- a/samples/client/petstore/gdscript/addons/oas.petstore.client/models/DemoActionContainerModel.gd +++ b/samples/client/petstore/gdscript/addons/oas.petstore.client/models/DemoActionContainerModel.gd @@ -12,7 +12,7 @@ class_name DemoActionContainerModel # Required: True # isArray: false -@export var action: DemoBazModel: +@export var action: Baz: set(value): __action__was__set = true action = value @@ -37,7 +37,7 @@ func bzz_normalize() -> Dictionary: static func bzz_denormalize_single(from_dict: Dictionary): var me := new() if from_dict.has("action"): - me.action = DemoBazModel.bzz_denormalize_single(from_dict["action"]) + me.action = from_dict["action"] return me diff --git a/samples/client/petstore/rust/hyper/petstore/.openapi-generator/FILES b/samples/client/petstore/rust/hyper/petstore/.openapi-generator/FILES index ca8f580456b..207b30d42fd 100644 --- a/samples/client/petstore/rust/hyper/petstore/.openapi-generator/FILES +++ b/samples/client/petstore/rust/hyper/petstore/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -63,6 +64,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/hyper/petstore/README.md b/samples/client/petstore/rust/hyper/petstore/README.md index 1f71adb9afa..c98da4fa301 100644 --- a/samples/client/petstore/rust/hyper/petstore/README.md +++ b/samples/client/petstore/rust/hyper/petstore/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/hyper/petstore/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/hyper/petstore/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/hyper/petstore/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/hyper/petstore/src/models/action_container.rs b/samples/client/petstore/rust/hyper/petstore/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/hyper/petstore/src/models/action_container.rs +++ b/samples/client/petstore/rust/hyper/petstore/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/hyper/petstore/src/models/mod.rs b/samples/client/petstore/rust/hyper/petstore/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/hyper/petstore/src/models/mod.rs +++ b/samples/client/petstore/rust/hyper/petstore/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/hyper/petstore/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/hyper/petstore/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/hyper/petstore/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/hyper0x/petstore/.openapi-generator/FILES b/samples/client/petstore/rust/hyper0x/petstore/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/hyper0x/petstore/.openapi-generator/FILES +++ b/samples/client/petstore/rust/hyper0x/petstore/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/hyper0x/petstore/README.md b/samples/client/petstore/rust/hyper0x/petstore/README.md index 75de658ecaf..e0f2b8473ad 100644 --- a/samples/client/petstore/rust/hyper0x/petstore/README.md +++ b/samples/client/petstore/rust/hyper0x/petstore/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/hyper0x/petstore/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/hyper0x/petstore/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/hyper0x/petstore/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/hyper0x/petstore/src/models/action_container.rs b/samples/client/petstore/rust/hyper0x/petstore/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/hyper0x/petstore/src/models/action_container.rs +++ b/samples/client/petstore/rust/hyper0x/petstore/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/hyper0x/petstore/src/models/mod.rs b/samples/client/petstore/rust/hyper0x/petstore/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/hyper0x/petstore/src/models/mod.rs +++ b/samples/client/petstore/rust/hyper0x/petstore/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/hyper0x/petstore/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/hyper0x/petstore/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/hyper0x/petstore/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest-trait/petstore/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest-trait/petstore/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest-trait/petstore/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest-trait/petstore/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest-trait/petstore/README.md b/samples/client/petstore/rust/reqwest-trait/petstore/README.md index 65cafcaa65d..0c243e50204 100644 --- a/samples/client/petstore/rust/reqwest-trait/petstore/README.md +++ b/samples/client/petstore/rust/reqwest-trait/petstore/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest-trait/petstore/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest-trait/petstore/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest-trait/petstore/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest-trait/petstore/src/models/action_container.rs b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest-trait/petstore/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest-trait/petstore/src/models/mod.rs b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest-trait/petstore/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest-trait/petstore/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest-trait/petstore/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-async-middleware/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-middleware/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/README.md b/samples/client/petstore/rust/reqwest/petstore-async-middleware/README.md index 01492e26db9..839ce4e4943 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-middleware/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-async-middleware/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-async-middleware/src/models/action_container.rs b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async-middleware/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/README.md b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/README.md index f5fd4ab16c5..c17a99e4fbf 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/action_container.rs b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async-tokensource/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-async/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-async/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-async/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-async/README.md b/samples/client/petstore/rust/reqwest/petstore-async/README.md index efa163c4a2c..cb529c9b330 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-async/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-async/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-async/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-async/src/models/action_container.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore-async/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-async/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore-async/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-async/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-async/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-avoid-box/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-avoid-box/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore-avoid-box/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-avoid-box/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-avoid-box/README.md b/samples/client/petstore/rust/reqwest/petstore-avoid-box/README.md index 35cc9a9cb4d..f3b6f83412a 100644 --- a/samples/client/petstore/rust/reqwest/petstore-avoid-box/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-avoid-box/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-avoid-box/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-avoid-box/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-avoid-box/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-avoid-box/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-avoid-box/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/README.md b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/README.md index 39d368b7ced..8457ec4a0a5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/action_container.rs b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-awsv4signature/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/.openapi-generator/FILES index e47fbb0db59..f30b5806dff 100644 --- a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/.openapi-generator/FILES @@ -22,6 +22,7 @@ docs/FooPropertyTest.md docs/FooRef.md docs/FooReturn.md docs/FooTag.md +docs/FooTestAllOfWithMultiMetadataOnly.md docs/FooTestsDiscriminatorDuplicateEnumsGet200Response.md docs/FooTypeTesting.md docs/FooUniqueItemArrayTesting.md @@ -60,6 +61,7 @@ src/models/foo_property_test.rs src/models/foo_ref.rs src/models/foo_return.rs src/models/foo_tag.rs +src/models/foo_test_all_of_with_multi_metadata_only.rs src/models/foo_type_testing.rs src/models/foo_unique_item_array_testing.rs src/models/foo_user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/README.md b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/README.md index 1b9fcdef894..98af49395b7 100644 --- a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/README.md +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [FooRef](docs/FooRef.md) - [FooReturn](docs/FooReturn.md) - [FooTag](docs/FooTag.md) + - [FooTestAllOfWithMultiMetadataOnly](docs/FooTestAllOfWithMultiMetadataOnly.md) - [FooTestsDiscriminatorDuplicateEnumsGet200Response](docs/FooTestsDiscriminatorDuplicateEnumsGet200Response.md) - [FooTypeTesting](docs/FooTypeTesting.md) - [FooUniqueItemArrayTesting](docs/FooUniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/docs/FooTestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/docs/FooTestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..ea6c80aab59 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/docs/FooTestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# FooTestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_action_container.rs b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_action_container.rs index 986f7013e3a..25ba31f646e 100644 --- a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct FooActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::FooBaz, } impl FooActionContainer { pub fn new(action: models::FooBaz) -> FooActionContainer { FooActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..50ea98b4954 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/foo_test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct FooTestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl FooTestAllOfWithMultiMetadataOnly { + pub fn new() -> FooTestAllOfWithMultiMetadataOnly { + FooTestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/mod.rs index b2c2f9214c6..4bf93a9d6c4 100644 --- a/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore-model-name-prefix/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod foo_return; pub use self::foo_return::FooReturn; pub mod foo_tag; pub use self::foo_tag::FooTag; +pub mod foo_test_all_of_with_multi_metadata_only; +pub use self::foo_test_all_of_with_multi_metadata_only::FooTestAllOfWithMultiMetadataOnly; pub mod foo__tests_discriminator_duplicate_enums_get_200_response; pub use self::foo__tests_discriminator_duplicate_enums_get_200_response::FooTestsDiscriminatorDuplicateEnumsGet200Response; pub mod foo_type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore/.openapi-generator/FILES b/samples/client/petstore/rust/reqwest/petstore/.openapi-generator/FILES index 82dd159124b..917d2d668aa 100644 --- a/samples/client/petstore/rust/reqwest/petstore/.openapi-generator/FILES +++ b/samples/client/petstore/rust/reqwest/petstore/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/Ref.md docs/Return.md docs/StoreApi.md docs/Tag.md +docs/TestAllOfWithMultiMetadataOnly.md docs/TestingApi.md docs/TestsDiscriminatorDuplicateEnumsGet200Response.md docs/TypeTesting.md @@ -61,6 +62,7 @@ src/models/person.rs src/models/pet.rs src/models/property_test.rs src/models/tag.rs +src/models/test_all_of_with_multi_metadata_only.rs src/models/type_testing.rs src/models/unique_item_array_testing.rs src/models/user.rs diff --git a/samples/client/petstore/rust/reqwest/petstore/README.md b/samples/client/petstore/rust/reqwest/petstore/README.md index 65cafcaa65d..0c243e50204 100644 --- a/samples/client/petstore/rust/reqwest/petstore/README.md +++ b/samples/client/petstore/rust/reqwest/petstore/README.md @@ -74,6 +74,7 @@ Class | Method | HTTP request | Description - [Ref](docs/Ref.md) - [Return](docs/Return.md) - [Tag](docs/Tag.md) + - [TestAllOfWithMultiMetadataOnly](docs/TestAllOfWithMultiMetadataOnly.md) - [TestsDiscriminatorDuplicateEnumsGet200Response](docs/TestsDiscriminatorDuplicateEnumsGet200Response.md) - [TypeTesting](docs/TypeTesting.md) - [UniqueItemArrayTesting](docs/UniqueItemArrayTesting.md) diff --git a/samples/client/petstore/rust/reqwest/petstore/docs/TestAllOfWithMultiMetadataOnly.md b/samples/client/petstore/rust/reqwest/petstore/docs/TestAllOfWithMultiMetadataOnly.md new file mode 100644 index 00000000000..e460a947053 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore/docs/TestAllOfWithMultiMetadataOnly.md @@ -0,0 +1,12 @@ +# TestAllOfWithMultiMetadataOnly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | Option<**i64**> | | [optional] +**foo** | Option<**Vec**> | existing_tags_array | [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/client/petstore/rust/reqwest/petstore/src/models/action_container.rs b/samples/client/petstore/rust/reqwest/petstore/src/models/action_container.rs index 11d2f0b8712..0dd27c0e5c8 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/models/action_container.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/models/action_container.rs @@ -14,13 +14,13 @@ use serde::{Deserialize, Serialize}; #[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] pub struct ActionContainer { #[serde(rename = "action")] - pub action: Box, + pub action: models::Baz, } impl ActionContainer { pub fn new(action: models::Baz) -> ActionContainer { ActionContainer { - action: Box::new(action), + action, } } } diff --git a/samples/client/petstore/rust/reqwest/petstore/src/models/mod.rs b/samples/client/petstore/rust/reqwest/petstore/src/models/mod.rs index 35c70822ca8..aada8fbd0f5 100644 --- a/samples/client/petstore/rust/reqwest/petstore/src/models/mod.rs +++ b/samples/client/petstore/rust/reqwest/petstore/src/models/mod.rs @@ -36,6 +36,8 @@ pub mod model_return; pub use self::model_return::Return; pub mod tag; pub use self::tag::Tag; +pub mod test_all_of_with_multi_metadata_only; +pub use self::test_all_of_with_multi_metadata_only::TestAllOfWithMultiMetadataOnly; pub mod _tests_discriminator_duplicate_enums_get_200_response; pub use self::_tests_discriminator_duplicate_enums_get_200_response::TestsDiscriminatorDuplicateEnumsGet200Response; pub mod type_testing; diff --git a/samples/client/petstore/rust/reqwest/petstore/src/models/test_all_of_with_multi_metadata_only.rs b/samples/client/petstore/rust/reqwest/petstore/src/models/test_all_of_with_multi_metadata_only.rs new file mode 100644 index 00000000000..a19b2e1b288 --- /dev/null +++ b/samples/client/petstore/rust/reqwest/petstore/src/models/test_all_of_with_multi_metadata_only.rs @@ -0,0 +1,31 @@ +/* + * OpenAPI Petstore + * + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + +use crate::models; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)] +pub struct TestAllOfWithMultiMetadataOnly { + #[serde(rename = "id", skip_serializing_if = "Option::is_none")] + pub id: Option, + /// existing_tags_array + #[serde(rename = "foo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")] + pub foo: Option>>, +} + +impl TestAllOfWithMultiMetadataOnly { + pub fn new() -> TestAllOfWithMultiMetadataOnly { + TestAllOfWithMultiMetadataOnly { + id: None, + foo: None, + } + } +} + diff --git a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/DefaultApi.md b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/DefaultApi.md index 113ee9f3d03..2ba40d8b1c5 100644 --- a/samples/openapi3/client/petstore/typescript/builds/composed-schemas/DefaultApi.md +++ b/samples/openapi3/client/petstore/typescript/builds/composed-schemas/DefaultApi.md @@ -26,7 +26,7 @@ const apiInstance = new DefaultApi(configuration); const request: DefaultApiFilePostRequest = { filePostRequest: { - file: null, +null, }, };