Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Python] Additional properties with array types #6594

Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -416,12 +416,17 @@ public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
}
}

// fix the imports that each model has, change them to absolute
fixModelImports(cm.imports);

Schema modelSchema = ModelUtils.getSchema(this.openAPI, cm.name);
CodegenProperty modelProperty = fromProperty("value", modelSchema);

// import complex type from additional properties
if (cm.additionalPropertiesType != null && modelProperty.items != null && modelProperty.items.complexType != null) {
cm.imports.add(modelProperty.items.complexType);
}

// fix the imports that each model has, change them to absolute
fixModelImports(cm.imports);

if (cm.isEnum || cm.isAlias) {
if (!modelProperty.isEnum && !modelProperty.hasValidation && !cm.isArrayModel) {
// remove these models because they are aliases and do not have any enums or validations
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1112,6 +1112,19 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/ArrayOfEnums'
/fake/additional-properties-with-array-of-enums:
get:
tags:
- fake
summary: Additional Properties with Array of Enums
operationId: getAdditionalPropertiesWithArrayOfEnums
responses:
200:
description: Got object with additional properties with array of enums
content:
application/json:
schema:
$ref: '#/components/schemas/AdditionalPropertiesWithArrayOfEnums'
servers:
- url: 'http://{server}.swagger.io:{port}/v2'
description: petstore server
Expand Down Expand Up @@ -2091,6 +2104,12 @@ components:
type: array
items:
$ref: '#/components/schemas/OuterEnum'
AdditionalPropertiesWithArrayOfEnums:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/EnumClass'
DateTimeTest:
type: string
default: '2010-01-01T10:10:10.000111+01:00'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ Class | Method | HTTP request | Description
*FakeApi* | [**fakeOuterCompositeSerialize**](docs/FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite |
*FakeApi* | [**fakeOuterNumberSerialize**](docs/FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number |
*FakeApi* | [**fakeOuterStringSerialize**](docs/FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string |
*FakeApi* | [**getAdditionalPropertiesWithArrayOfEnums**](docs/FakeApi.md#getAdditionalPropertiesWithArrayOfEnums) | **GET** /fake/additional-properties-with-array-of-enums | Additional Properties with Array of Enums
*FakeApi* | [**getArrayOfEnums**](docs/FakeApi.md#getArrayOfEnums) | **GET** /fake/array-of-enums | Array of Enums
*FakeApi* | [**testBodyWithFileSchema**](docs/FakeApi.md#testBodyWithFileSchema) | **PUT** /fake/body-with-file-schema |
*FakeApi* | [**testBodyWithQueryParams**](docs/FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1250,6 +1250,20 @@ paths:
tags:
- fake
x-accepts: application/json
/fake/additional-properties-with-array-of-enums:
get:
operationId: getAdditionalPropertiesWithArrayOfEnums
responses:
"200":
content:
application/json:
schema:
$ref: '#/components/schemas/AdditionalPropertiesWithArrayOfEnums'
description: Got object with additional properties with array of enums
summary: Additional Properties with Array of Enums
tags:
- fake
x-accepts: application/json
components:
requestBodies:
UserArray:
Expand Down Expand Up @@ -2237,6 +2251,12 @@ components:
items:
$ref: '#/components/schemas/OuterEnum'
type: array
AdditionalPropertiesWithArrayOfEnums:
additionalProperties:
items:
$ref: '#/components/schemas/EnumClass'
type: array
type: object
DateTimeTest:
default: 2010-01-01T10:10:10.000111+01:00
example: 2010-01-01T10:10:10.000111+01:00
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Method | HTTP request | Description
[**fakeOuterCompositeSerialize**](FakeApi.md#fakeOuterCompositeSerialize) | **POST** /fake/outer/composite |
[**fakeOuterNumberSerialize**](FakeApi.md#fakeOuterNumberSerialize) | **POST** /fake/outer/number |
[**fakeOuterStringSerialize**](FakeApi.md#fakeOuterStringSerialize) | **POST** /fake/outer/string |
[**getAdditionalPropertiesWithArrayOfEnums**](FakeApi.md#getAdditionalPropertiesWithArrayOfEnums) | **GET** /fake/additional-properties-with-array-of-enums | Additional Properties with Array of Enums
[**getArrayOfEnums**](FakeApi.md#getArrayOfEnums) | **GET** /fake/array-of-enums | Array of Enums
[**testBodyWithFileSchema**](FakeApi.md#testBodyWithFileSchema) | **PUT** /fake/body-with-file-schema |
[**testBodyWithQueryParams**](FakeApi.md#testBodyWithQueryParams) | **PUT** /fake/body-with-query-params |
Expand Down Expand Up @@ -341,6 +342,65 @@ No authorization required
| **200** | Output string | - |


## getAdditionalPropertiesWithArrayOfEnums

> Map&lt;String, List&lt;EnumClass&gt;&gt; getAdditionalPropertiesWithArrayOfEnums()

Additional Properties with Array of Enums

### Example

```java
// Import classes:
import org.openapitools.client.ApiClient;
import org.openapitools.client.ApiException;
import org.openapitools.client.Configuration;
import org.openapitools.client.models.*;
import org.openapitools.client.api.FakeApi;

public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("http://petstore.swagger.io:80/v2");

FakeApi apiInstance = new FakeApi(defaultClient);
try {
Map<String, List<EnumClass>> result = apiInstance.getAdditionalPropertiesWithArrayOfEnums();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling FakeApi#getAdditionalPropertiesWithArrayOfEnums");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
e.printStackTrace();
}
}
}
```

### Parameters

This endpoint does not need any parameter.

### Return type

[**Map&lt;String, List&lt;EnumClass&gt;&gt;**](List.md)

### Authorization

No authorization required

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
| **200** | Got object with additional properties with array of enums | - |


## getArrayOfEnums

> List&lt;OuterEnum&gt; getArrayOfEnums()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,66 @@ public ApiResponse<String> fakeOuterStringSerializeWithHttpInfo(String body) thr
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
}
/**
* Additional Properties with Array of Enums
*
* @return Map&lt;String, List&lt;EnumClass&gt;&gt;
* @throws ApiException if fails to make API call
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> Got object with additional properties with array of enums </td><td> - </td></tr>
</table>
*/
public Map<String, List<EnumClass>> getAdditionalPropertiesWithArrayOfEnums() throws ApiException {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like Java is suffering the same issue with missing import and not using named class for mapping.

@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @bkabrda (2020/01)

return getAdditionalPropertiesWithArrayOfEnumsWithHttpInfo().getData();
}

/**
* Additional Properties with Array of Enums
*
* @return ApiResponse&lt;Map&lt;String, List&lt;EnumClass&gt;&gt;&gt;
* @throws ApiException if fails to make API call
* @http.response.details
<table summary="Response Details" border="1">
<tr><td> Status Code </td><td> Description </td><td> Response Headers </td></tr>
<tr><td> 200 </td><td> Got object with additional properties with array of enums </td><td> - </td></tr>
</table>
*/
public ApiResponse<Map<String, List<EnumClass>>> getAdditionalPropertiesWithArrayOfEnumsWithHttpInfo() throws ApiException {
Object localVarPostBody = null;

// create path and map variables
String localVarPath = "/fake/additional-properties-with-array-of-enums";

// query params
List<Pair> localVarQueryParams = new ArrayList<Pair>();
Map<String, String> localVarHeaderParams = new HashMap<String, String>();
Map<String, String> localVarCookieParams = new HashMap<String, String>();
Map<String, Object> localVarFormParams = new HashMap<String, Object>();





final String[] localVarAccepts = {
"application/json"
};
final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);

final String[] localVarContentTypes = {

};
final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);

String[] localVarAuthNames = new String[] { };

GenericType<Map<String, List<EnumClass>>> localVarReturnType = new GenericType<Map<String, List<EnumClass>>>() {};

return apiClient.invokeAPI("FakeApi.getAdditionalPropertiesWithArrayOfEnums", localVarPath, "GET", localVarQueryParams, localVarPostBody,
localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAccept, localVarContentType,
localVarAuthNames, localVarReturnType);
}
/**
* Array of Enums
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
.travis.yml
README.md
docs/AdditionalPropertiesClass.md
docs/AdditionalPropertiesWithArrayOfEnums.md
docs/Address.md
docs/Animal.md
docs/AnimalFarm.md
Expand Down Expand Up @@ -109,6 +110,7 @@ petstore_api/configuration.py
petstore_api/exceptions.py
petstore_api/model/__init__.py
petstore_api/model/additional_properties_class.py
petstore_api/model/additional_properties_with_array_of_enums.py
petstore_api/model/address.py
petstore_api/model/animal.py
petstore_api/model/animal_farm.py
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ Class | Method | HTTP request | Description
*FakeApi* | [**fake_outer_composite_serialize**](docs/FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite |
*FakeApi* | [**fake_outer_number_serialize**](docs/FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number |
*FakeApi* | [**fake_outer_string_serialize**](docs/FakeApi.md#fake_outer_string_serialize) | **POST** /fake/outer/string |
*FakeApi* | [**get_additional_properties_with_array_of_enums**](docs/FakeApi.md#get_additional_properties_with_array_of_enums) | **GET** /fake/additional-properties-with-array-of-enums | Additional Properties with Array of Enums
*FakeApi* | [**get_array_of_enums**](docs/FakeApi.md#get_array_of_enums) | **GET** /fake/array-of-enums | Array of Enums
*FakeApi* | [**test_body_with_file_schema**](docs/FakeApi.md#test_body_with_file_schema) | **PUT** /fake/body-with-file-schema |
*FakeApi* | [**test_body_with_query_params**](docs/FakeApi.md#test_body_with_query_params) | **PUT** /fake/body-with-query-params |
Expand Down Expand Up @@ -124,6 +125,7 @@ Class | Method | HTTP request | Description
## Documentation For Models

- [additional_properties_class.AdditionalPropertiesClass](docs/AdditionalPropertiesClass.md)
- [additional_properties_with_array_of_enums.AdditionalPropertiesWithArrayOfEnums](docs/AdditionalPropertiesWithArrayOfEnums.md)
- [address.Address](docs/Address.md)
- [animal.Animal](docs/Animal.md)
- [animal_farm.AnimalFarm](docs/AnimalFarm.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# additional_properties_with_array_of_enums.AdditionalPropertiesWithArrayOfEnums

## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**any string name** | **[enum_class.EnumClass]** | any string name can be used but the value must be the correct type | [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)


Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Method | HTTP request | Description
[**fake_outer_composite_serialize**](FakeApi.md#fake_outer_composite_serialize) | **POST** /fake/outer/composite |
[**fake_outer_number_serialize**](FakeApi.md#fake_outer_number_serialize) | **POST** /fake/outer/number |
[**fake_outer_string_serialize**](FakeApi.md#fake_outer_string_serialize) | **POST** /fake/outer/string |
[**get_additional_properties_with_array_of_enums**](FakeApi.md#get_additional_properties_with_array_of_enums) | **GET** /fake/additional-properties-with-array-of-enums | Additional Properties with Array of Enums
[**get_array_of_enums**](FakeApi.md#get_array_of_enums) | **GET** /fake/array-of-enums | Array of Enums
[**test_body_with_file_schema**](FakeApi.md#test_body_with_file_schema) | **PUT** /fake/body-with-file-schema |
[**test_body_with_query_params**](FakeApi.md#test_body_with_query_params) | **PUT** /fake/body-with-query-params |
Expand Down Expand Up @@ -332,6 +333,64 @@ No authorization required

[[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)

# **get_additional_properties_with_array_of_enums**
> additional_properties_with_array_of_enums.AdditionalPropertiesWithArrayOfEnums get_additional_properties_with_array_of_enums()

Additional Properties with Array of Enums

### Example

```python
from __future__ import print_function
import time
import petstore_api
from petstore_api.api import fake_api
from petstore_api.model import additional_properties_with_array_of_enums
from pprint import pprint
# Defining the host is optional and defaults to http://petstore.swagger.io:80/v2
# See configuration.py for a list of all supported configuration parameters.
configuration = petstore_api.Configuration(
host = "http://petstore.swagger.io:80/v2"
)


# Enter a context with an instance of the API client
with petstore_api.ApiClient() as api_client:
# Create an instance of the API class
api_instance = fake_api.FakeApi(api_client)

# example, this endpoint has no required or optional parameters
try:
# Additional Properties with Array of Enums
api_response = api_instance.get_additional_properties_with_array_of_enums()
spacether marked this conversation as resolved.
Show resolved Hide resolved
pprint(api_response)
except petstore_api.ApiException as e:
print("Exception when calling FakeApi->get_additional_properties_with_array_of_enums: %s\n" % e)
```

### Parameters
This endpoint does not need any parameter.

### Return type

[**additional_properties_with_array_of_enums.AdditionalPropertiesWithArrayOfEnums**](AdditionalPropertiesWithArrayOfEnums.md)

### Authorization

No authorization required

### HTTP request headers

- **Content-Type**: Not defined
- **Accept**: application/json

### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | Got object with additional properties with array of enums | - |

[[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)

# **get_array_of_enums**
> array_of_enums.ArrayOfEnums get_array_of_enums()

Expand Down
Loading