* add error body and type to api exception class
* add option to specify error object
* add option, update api doc with better error handling
* update samples
* update doc
* add custom gson deserializer
* add check for additional fields, required fields
* add tests for custom deserializer
* add custom adapter
* add custom adapter
* register type adapter factory
* comment out custom deserializer and use adapter instead
* add okhttp-gson-nextgen
* add new files
* restore okhttp-gson
* switch to adapter
* remove custom de/serializer
* add comment
* update tests
* test nextgen in ci
* update doc
* use full model name in JSON.java
* undo changes
* add oneof discriminator support
* fix anyOf
* remove mappings
* add more tests
* fix oneof deserialization, add more tests
* add error body and type to api exception class
* JSON to use instance variables/methods
* Revert "add error body and type to api exception class"
This reverts commit 07f34e2c450ad9f808b728173018b1e4d8fed458.
The [docs for ofInputStream](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.BodySubscribers.html#ofInputStream()) say:
> To ensure that all resources associated with the corresponding exchange are properly released the caller must ensure to either read all lines until the stream is exhausted, or call BaseStream.close() if it is unable or unwilling to do so. Calling close before exhausting the stream may cause the underlying HTTP connection to be closed and prevent it from being reused for subsequent operations.
When ObjectMapper.readValue is called with an InputStream it implicitly closes it, but when the library is not expecting a return type it's not passing the InputStream to Jackson, so the stream needs to be manually drained and closed as per the docs
Failure to do this leads to a leak of HttpClient socket handles, and ultimately the exception `java.net.BindException: Cannot assign requested address` when trying to make API calls
* Add Operation Servers to {operation}Call method
* add getter/setter methods
Add methods for hostIndex and customBaseUrl
* Fix return types for getters
* Add custom baseUrl logic
if you dont specifically declare a custom base url using the set method then it uses the 1st server in the operation host index array
if no custom url is set and the operation base path array is empty however, the call throws an exception
* Update server selection logic
First checks to see if a custom url is provided
If not, checks to see if operation level server is defined and uses the supplied host index (default 0)
If neither is supplied, uses the ApiClient default base path
* Update samples and docs
* [Java] deserialize to LinkedHashSet when unique items
* [Java] fix deserialization of readonly properties
* [Java] deserialize to LinkedHashSet when unique items
* Make Java libraries compatible with Gradle 7
* Make kotlin-spring compatible with Gradle 7
* Update samples to comply to Gradle 7.2
* Generate samples