diff --git a/samples/client/petstore/java/default/docs/EnumClass.md b/samples/client/petstore/java/default/docs/EnumClass.md
new file mode 100644
index 0000000000..de0bc8a95a
--- /dev/null
+++ b/samples/client/petstore/java/default/docs/EnumClass.md
@@ -0,0 +1,8 @@
+
+# EnumClass
+
+## Enum
+
+* `{values=[_abc, -efg, (xyz)], enumVars=[{name=_ABC, value="_abc"}, {name=_EFG, value="-efg"}, {name=_XYZ_, value="(xyz)"}]}`
+
+
diff --git a/samples/client/petstore/java/default/docs/EnumTest.md b/samples/client/petstore/java/default/docs/EnumTest.md
new file mode 100644
index 0000000000..deb1951c55
--- /dev/null
+++ b/samples/client/petstore/java/default/docs/EnumTest.md
@@ -0,0 +1,36 @@
+
+# EnumTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enumString** | [**EnumStringEnum**](#EnumStringEnum) | | [optional]
+**enumInteger** | [**EnumIntegerEnum**](#EnumIntegerEnum) | | [optional]
+**enumNumber** | [**EnumNumberEnum**](#EnumNumberEnum) | | [optional]
+
+
+
+## Enum: EnumStringEnum
+Name | Value
+---- | -----
+UPPER | "UPPER"
+LOWER | "lower"
+
+
+
+## Enum: EnumIntegerEnum
+Name | Value
+---- | -----
+NUMBER_1 | 1
+NUMBER_MINUS_1 | -1
+
+
+
+## Enum: EnumNumberEnum
+Name | Value
+---- | -----
+NUMBER_1_DOT_1 | 1.1
+NUMBER_MINUS_1_DOT_2 | -1.2
+
+
+
diff --git a/samples/client/petstore/java/default/docs/FakeApi.md b/samples/client/petstore/java/default/docs/FakeApi.md
index c1fdd31032..f642566c8e 100644
--- a/samples/client/petstore/java/default/docs/FakeApi.md
+++ b/samples/client/petstore/java/default/docs/FakeApi.md
@@ -23,7 +23,7 @@ Fake endpoint for testing various parameters
FakeApi apiInstance = new FakeApi();
-BigDecimal number = new BigDecimal(); // BigDecimal | None
+String number = "number_example"; // String | None
Double _double = 3.4D; // Double | None
String string = "string_example"; // String | None
byte[] _byte = B; // byte[] | None
@@ -47,7 +47,7 @@ try {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **number** | **BigDecimal**| None |
+ **number** | **String**| None |
**_double** | **Double**| None |
**string** | **String**| None |
**_byte** | **byte[]**| None |
diff --git a/samples/client/petstore/java/default/src/main/java/io/swagger/client/api/FakeApi.java b/samples/client/petstore/java/default/src/main/java/io/swagger/client/api/FakeApi.java
index 59d58fc6c7..ddfaff67d0 100644
--- a/samples/client/petstore/java/default/src/main/java/io/swagger/client/api/FakeApi.java
+++ b/samples/client/petstore/java/default/src/main/java/io/swagger/client/api/FakeApi.java
@@ -8,7 +8,6 @@ import io.swagger.client.Configuration;
import io.swagger.client.Pair;
import java.util.Date;
-import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
@@ -52,7 +51,7 @@ public class FakeApi {
* @param password None (optional)
* @throws ApiException if fails to make API call
*/
- public void testEndpointParameters(BigDecimal number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password) throws ApiException {
+ public void testEndpointParameters(String number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password) throws ApiException {
Object localVarPostBody = null;
// verify the required parameter 'number' is set
diff --git a/samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/FakeApi.java b/samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/FakeApi.java
new file mode 100644
index 0000000000..b92a064d3e
--- /dev/null
+++ b/samples/client/petstore/java/feign/src/main/java/io/swagger/client/api/FakeApi.java
@@ -0,0 +1,40 @@
+package io.swagger.client.api;
+
+import io.swagger.client.ApiClient;
+
+import java.util.Date;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import feign.*;
+
+@javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2016-04-27T23:17:22.230+08:00")
+public interface FakeApi extends ApiClient.Api {
+
+
+ /**
+ * Fake endpoint for testing various parameters
+ * Fake endpoint for testing various parameters
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @return void
+ */
+ @RequestLine("POST /fake")
+ @Headers({
+ "Content-type: application/x-www-form-urlencoded",
+ "Accepts: application/json",
+ })
+ void testEndpointParameters(@Param("number") String number, @Param("_double") Double _double, @Param("string") String string, @Param("_byte") byte[] _byte, @Param("integer") Integer integer, @Param("int32") Integer int32, @Param("int64") Long int64, @Param("_float") Float _float, @Param("binary") byte[] binary, @Param("date") Date date, @Param("dateTime") Date dateTime, @Param("password") String password);
+}
diff --git a/samples/client/petstore/java/okhttp-gson/docs/EnumClass.md b/samples/client/petstore/java/okhttp-gson/docs/EnumClass.md
new file mode 100644
index 0000000000..d03195a19a
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/docs/EnumClass.md
@@ -0,0 +1,14 @@
+
+# EnumClass
+
+## Enum
+
+
+* `_ABC` (value: `"_abc"`)
+
+* `_EFG` (value: `"-efg"`)
+
+* `_XYZ_` (value: `"(xyz)"`)
+
+
+
diff --git a/samples/client/petstore/java/okhttp-gson/docs/EnumTest.md b/samples/client/petstore/java/okhttp-gson/docs/EnumTest.md
new file mode 100644
index 0000000000..deb1951c55
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/docs/EnumTest.md
@@ -0,0 +1,36 @@
+
+# EnumTest
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**enumString** | [**EnumStringEnum**](#EnumStringEnum) | | [optional]
+**enumInteger** | [**EnumIntegerEnum**](#EnumIntegerEnum) | | [optional]
+**enumNumber** | [**EnumNumberEnum**](#EnumNumberEnum) | | [optional]
+
+
+
+## Enum: EnumStringEnum
+Name | Value
+---- | -----
+UPPER | "UPPER"
+LOWER | "lower"
+
+
+
+## Enum: EnumIntegerEnum
+Name | Value
+---- | -----
+NUMBER_1 | 1
+NUMBER_MINUS_1 | -1
+
+
+
+## Enum: EnumNumberEnum
+Name | Value
+---- | -----
+NUMBER_1_DOT_1 | 1.1
+NUMBER_MINUS_1_DOT_2 | -1.2
+
+
+
diff --git a/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md
new file mode 100644
index 0000000000..f642566c8e
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/docs/FakeApi.md
@@ -0,0 +1,75 @@
+# FakeApi
+
+All URIs are relative to *http://petstore.swagger.io/v2*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**testEndpointParameters**](FakeApi.md#testEndpointParameters) | **POST** /fake | Fake endpoint for testing various parameters
+
+
+
+# **testEndpointParameters**
+> testEndpointParameters(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password)
+
+Fake endpoint for testing various parameters
+
+Fake endpoint for testing various parameters
+
+### Example
+```java
+// Import classes:
+//import io.swagger.client.ApiException;
+//import io.swagger.client.api.FakeApi;
+
+
+FakeApi apiInstance = new FakeApi();
+String number = "number_example"; // String | None
+Double _double = 3.4D; // Double | None
+String string = "string_example"; // String | None
+byte[] _byte = B; // byte[] | None
+Integer integer = 56; // Integer | None
+Integer int32 = 56; // Integer | None
+Long int64 = 789L; // Long | None
+Float _float = 3.4F; // Float | None
+byte[] binary = B; // byte[] | None
+Date date = new Date(); // Date | None
+Date dateTime = new Date(); // Date | None
+String password = "password_example"; // String | None
+try {
+ apiInstance.testEndpointParameters(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password);
+} catch (ApiException e) {
+ System.err.println("Exception when calling FakeApi#testEndpointParameters");
+ e.printStackTrace();
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **number** | **String**| None |
+ **_double** | **Double**| None |
+ **string** | **String**| None |
+ **_byte** | **byte[]**| None |
+ **integer** | **Integer**| None | [optional]
+ **int32** | **Integer**| None | [optional]
+ **int64** | **Long**| None | [optional]
+ **_float** | **Float**| None | [optional]
+ **binary** | **byte[]**| None | [optional]
+ **date** | **Date**| None | [optional]
+ **dateTime** | **Date**| None | [optional]
+ **password** | **String**| None | [optional]
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+No authorization required
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/xml, application/json
+
diff --git a/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/api/FakeApi.java b/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/api/FakeApi.java
new file mode 100644
index 0000000000..dd6d823660
--- /dev/null
+++ b/samples/client/petstore/java/okhttp-gson/src/main/java/io/swagger/client/api/FakeApi.java
@@ -0,0 +1,221 @@
+package io.swagger.client.api;
+
+import io.swagger.client.ApiCallback;
+import io.swagger.client.ApiClient;
+import io.swagger.client.ApiException;
+import io.swagger.client.ApiResponse;
+import io.swagger.client.Configuration;
+import io.swagger.client.Pair;
+import io.swagger.client.ProgressRequestBody;
+import io.swagger.client.ProgressResponseBody;
+
+import com.google.gson.reflect.TypeToken;
+
+import com.squareup.okhttp.Call;
+import com.squareup.okhttp.Interceptor;
+import com.squareup.okhttp.Response;
+
+import java.io.IOException;
+
+import java.util.Date;
+
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class FakeApi {
+ private ApiClient apiClient;
+
+ public FakeApi() {
+ this(Configuration.getDefaultApiClient());
+ }
+
+ public FakeApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /* Build call for testEndpointParameters */
+ private Call testEndpointParametersCall(String number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password, final ProgressResponseBody.ProgressListener progressListener, final ProgressRequestBody.ProgressRequestListener progressRequestListener) throws ApiException {
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'number' is set
+ if (number == null) {
+ throw new ApiException("Missing the required parameter 'number' when calling testEndpointParameters(Async)");
+ }
+
+ // verify the required parameter '_double' is set
+ if (_double == null) {
+ throw new ApiException("Missing the required parameter '_double' when calling testEndpointParameters(Async)");
+ }
+
+ // verify the required parameter 'string' is set
+ if (string == null) {
+ throw new ApiException("Missing the required parameter 'string' when calling testEndpointParameters(Async)");
+ }
+
+ // verify the required parameter '_byte' is set
+ if (_byte == null) {
+ throw new ApiException("Missing the required parameter '_byte' when calling testEndpointParameters(Async)");
+ }
+
+
+ // create path and map variables
+ String localVarPath = "/fake".replaceAll("\\{format\\}","json");
+
+ List localVarQueryParams = new ArrayList();
+
+ Map localVarHeaderParams = new HashMap();
+
+ Map localVarFormParams = new HashMap();
+ if (integer != null)
+ localVarFormParams.put("integer", integer);
+ if (int32 != null)
+ localVarFormParams.put("int32", int32);
+ if (int64 != null)
+ localVarFormParams.put("int64", int64);
+ if (number != null)
+ localVarFormParams.put("number", number);
+ if (_float != null)
+ localVarFormParams.put("float", _float);
+ if (_double != null)
+ localVarFormParams.put("double", _double);
+ if (string != null)
+ localVarFormParams.put("string", string);
+ if (_byte != null)
+ localVarFormParams.put("byte", _byte);
+ if (binary != null)
+ localVarFormParams.put("binary", binary);
+ if (date != null)
+ localVarFormParams.put("date", date);
+ if (dateTime != null)
+ localVarFormParams.put("dateTime", dateTime);
+ if (password != null)
+ localVarFormParams.put("password", password);
+
+ final String[] localVarAccepts = {
+ "application/xml", "application/json"
+ };
+ final String localVarAccept = apiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) localVarHeaderParams.put("Accept", localVarAccept);
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = apiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ if(progressListener != null) {
+ apiClient.getHttpClient().networkInterceptors().add(new Interceptor() {
+ @Override
+ public Response intercept(Interceptor.Chain chain) throws IOException {
+ Response originalResponse = chain.proceed(chain.request());
+ return originalResponse.newBuilder()
+ .body(new ProgressResponseBody(originalResponse.body(), progressListener))
+ .build();
+ }
+ });
+ }
+
+ String[] localVarAuthNames = new String[] { };
+ return apiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarAuthNames, progressRequestListener);
+ }
+
+ /**
+ * Fake endpoint for testing various parameters
+ * Fake endpoint for testing various parameters
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ */
+ public void testEndpointParameters(String number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password) throws ApiException {
+ testEndpointParametersWithHttpInfo(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password);
+ }
+
+ /**
+ * Fake endpoint for testing various parameters
+ * Fake endpoint for testing various parameters
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @return ApiResponse
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ */
+ public ApiResponse testEndpointParametersWithHttpInfo(String number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password) throws ApiException {
+ Call call = testEndpointParametersCall(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password, null, null);
+ return apiClient.execute(call);
+ }
+
+ /**
+ * Fake endpoint for testing various parameters (asynchronously)
+ * Fake endpoint for testing various parameters
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @param callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ */
+ public Call testEndpointParametersAsync(String number, Double _double, String string, byte[] _byte, Integer integer, Integer int32, Long int64, Float _float, byte[] binary, Date date, Date dateTime, String password, final ApiCallback callback) throws ApiException {
+
+ ProgressResponseBody.ProgressListener progressListener = null;
+ ProgressRequestBody.ProgressRequestListener progressRequestListener = null;
+
+ if (callback != null) {
+ progressListener = new ProgressResponseBody.ProgressListener() {
+ @Override
+ public void update(long bytesRead, long contentLength, boolean done) {
+ callback.onDownloadProgress(bytesRead, contentLength, done);
+ }
+ };
+
+ progressRequestListener = new ProgressRequestBody.ProgressRequestListener() {
+ @Override
+ public void onRequestProgress(long bytesWritten, long contentLength, boolean done) {
+ callback.onUploadProgress(bytesWritten, contentLength, done);
+ }
+ };
+ }
+
+ Call call = testEndpointParametersCall(number, _double, string, _byte, integer, int32, int64, _float, binary, date, dateTime, password, progressListener, progressRequestListener);
+ apiClient.executeAsync(call, callback);
+ return call;
+ }
+}
diff --git a/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/api/FakeApi.java b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/api/FakeApi.java
new file mode 100644
index 0000000000..03f5b9aff1
--- /dev/null
+++ b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/api/FakeApi.java
@@ -0,0 +1,66 @@
+package io.swagger.client.api;
+
+import io.swagger.client.CollectionFormats.*;
+
+import retrofit.Callback;
+import retrofit.http.*;
+import retrofit.mime.*;
+
+import java.util.Date;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public interface FakeApi {
+ /**
+ * Fake endpoint for testing various parameters
+ * Sync method
+ * Fake endpoint for testing various parameters
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @return Void
+ */
+
+ @FormUrlEncoded
+ @POST("/fake")
+ Void testEndpointParameters(
+ @Field("number") String number, @Field("double") Double _double, @Field("string") String string, @Field("byte") byte[] _byte, @Field("integer") Integer integer, @Field("int32") Integer int32, @Field("int64") Long int64, @Field("float") Float _float, @Field("binary") byte[] binary, @Field("date") Date date, @Field("dateTime") Date dateTime, @Field("password") String password
+ );
+
+ /**
+ * Fake endpoint for testing various parameters
+ * Async method
+ * @param number None (required)
+ * @param _double None (required)
+ * @param string None (required)
+ * @param _byte None (required)
+ * @param integer None (optional)
+ * @param int32 None (optional)
+ * @param int64 None (optional)
+ * @param _float None (optional)
+ * @param binary None (optional)
+ * @param date None (optional)
+ * @param dateTime None (optional)
+ * @param password None (optional)
+ * @param cb callback method
+ * @return void
+ */
+
+ @FormUrlEncoded
+ @POST("/fake")
+ void testEndpointParameters(
+ @Field("number") String number, @Field("double") Double _double, @Field("string") String string, @Field("byte") byte[] _byte, @Field("integer") Integer integer, @Field("int32") Integer int32, @Field("int64") Long int64, @Field("float") Float _float, @Field("binary") byte[] binary, @Field("date") Date date, @Field("dateTime") Date dateTime, @Field("password") String password, Callback cb
+ );
+}
diff --git a/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumClass.java b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumClass.java
new file mode 100644
index 0000000000..8f9357fbd3
--- /dev/null
+++ b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumClass.java
@@ -0,0 +1,50 @@
+package io.swagger.client.model;
+
+import java.util.Objects;
+
+import com.google.gson.annotations.SerializedName;
+
+
+
+
+
+public class EnumClass {
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumClass enumClass = (EnumClass) o;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumClass {\n");
+
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumTest.java b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumTest.java
new file mode 100644
index 0000000000..8db392afcc
--- /dev/null
+++ b/samples/client/petstore/java/retrofit/src/main/java/io/swagger/client/model/EnumTest.java
@@ -0,0 +1,165 @@
+package io.swagger.client.model;
+
+import java.util.Objects;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import com.google.gson.annotations.SerializedName;
+
+
+
+
+
+public class EnumTest {
+
+
+ /**
+ * Gets or Sets enumString
+ */
+ public enum EnumStringEnum {
+ @SerializedName("UPPER")
+ UPPER("UPPER"),
+
+ @SerializedName("lower")
+ LOWER("lower");
+
+ private String value;
+
+ EnumStringEnum(String value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_string")
+ private EnumStringEnum enumString = null;
+
+
+ /**
+ * Gets or Sets enumInteger
+ */
+ public enum EnumIntegerEnum {
+ @SerializedName("1")
+ NUMBER_1(1),
+
+ @SerializedName("-1")
+ NUMBER_MINUS_1(-1);
+
+ private Integer value;
+
+ EnumIntegerEnum(Integer value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_integer")
+ private EnumIntegerEnum enumInteger = null;
+
+
+ /**
+ * Gets or Sets enumNumber
+ */
+ public enum EnumNumberEnum {
+ @SerializedName("1.1")
+ NUMBER_1_DOT_1(1.1),
+
+ @SerializedName("-1.2")
+ NUMBER_MINUS_1_DOT_2(-1.2);
+
+ private Double value;
+
+ EnumNumberEnum(Double value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_number")
+ private EnumNumberEnum enumNumber = null;
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumStringEnum getEnumString() {
+ return enumString;
+ }
+ public void setEnumString(EnumStringEnum enumString) {
+ this.enumString = enumString;
+ }
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumIntegerEnum getEnumInteger() {
+ return enumInteger;
+ }
+ public void setEnumInteger(EnumIntegerEnum enumInteger) {
+ this.enumInteger = enumInteger;
+ }
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumNumberEnum getEnumNumber() {
+ return enumNumber;
+ }
+ public void setEnumNumber(EnumNumberEnum enumNumber) {
+ this.enumNumber = enumNumber;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumTest enumTest = (EnumTest) o;
+ return Objects.equals(enumString, enumTest.enumString) &&
+ Objects.equals(enumInteger, enumTest.enumInteger) &&
+ Objects.equals(enumNumber, enumTest.enumNumber);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enumString, enumInteger, enumNumber);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumTest {\n");
+
+ sb.append(" enumString: ").append(toIndentedString(enumString)).append("\n");
+ sb.append(" enumInteger: ").append(toIndentedString(enumInteger)).append("\n");
+ sb.append(" enumNumber: ").append(toIndentedString(enumNumber)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumClass.java b/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumClass.java
new file mode 100644
index 0000000000..8f9357fbd3
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumClass.java
@@ -0,0 +1,50 @@
+package io.swagger.client.model;
+
+import java.util.Objects;
+
+import com.google.gson.annotations.SerializedName;
+
+
+
+
+
+public class EnumClass {
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumClass enumClass = (EnumClass) o;
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash();
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumClass {\n");
+
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}
diff --git a/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumTest.java b/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumTest.java
new file mode 100644
index 0000000000..8db392afcc
--- /dev/null
+++ b/samples/client/petstore/java/retrofit2/src/main/java/io/swagger/client/model/EnumTest.java
@@ -0,0 +1,165 @@
+package io.swagger.client.model;
+
+import java.util.Objects;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import com.google.gson.annotations.SerializedName;
+
+
+
+
+
+public class EnumTest {
+
+
+ /**
+ * Gets or Sets enumString
+ */
+ public enum EnumStringEnum {
+ @SerializedName("UPPER")
+ UPPER("UPPER"),
+
+ @SerializedName("lower")
+ LOWER("lower");
+
+ private String value;
+
+ EnumStringEnum(String value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_string")
+ private EnumStringEnum enumString = null;
+
+
+ /**
+ * Gets or Sets enumInteger
+ */
+ public enum EnumIntegerEnum {
+ @SerializedName("1")
+ NUMBER_1(1),
+
+ @SerializedName("-1")
+ NUMBER_MINUS_1(-1);
+
+ private Integer value;
+
+ EnumIntegerEnum(Integer value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_integer")
+ private EnumIntegerEnum enumInteger = null;
+
+
+ /**
+ * Gets or Sets enumNumber
+ */
+ public enum EnumNumberEnum {
+ @SerializedName("1.1")
+ NUMBER_1_DOT_1(1.1),
+
+ @SerializedName("-1.2")
+ NUMBER_MINUS_1_DOT_2(-1.2);
+
+ private Double value;
+
+ EnumNumberEnum(Double value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+ }
+
+ @SerializedName("enum_number")
+ private EnumNumberEnum enumNumber = null;
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumStringEnum getEnumString() {
+ return enumString;
+ }
+ public void setEnumString(EnumStringEnum enumString) {
+ this.enumString = enumString;
+ }
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumIntegerEnum getEnumInteger() {
+ return enumInteger;
+ }
+ public void setEnumInteger(EnumIntegerEnum enumInteger) {
+ this.enumInteger = enumInteger;
+ }
+
+ /**
+ **/
+ @ApiModelProperty(value = "")
+ public EnumNumberEnum getEnumNumber() {
+ return enumNumber;
+ }
+ public void setEnumNumber(EnumNumberEnum enumNumber) {
+ this.enumNumber = enumNumber;
+ }
+
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ EnumTest enumTest = (EnumTest) o;
+ return Objects.equals(enumString, enumTest.enumString) &&
+ Objects.equals(enumInteger, enumTest.enumInteger) &&
+ Objects.equals(enumNumber, enumTest.enumNumber);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(enumString, enumInteger, enumNumber);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class EnumTest {\n");
+
+ sb.append(" enumString: ").append(toIndentedString(enumString)).append("\n");
+ sb.append(" enumInteger: ").append(toIndentedString(enumInteger)).append("\n");
+ sb.append(" enumNumber: ").append(toIndentedString(enumNumber)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+}