-
-
Notifications
You must be signed in to change notification settings - Fork 7.5k
Expand file tree
/
Copy pathjava.md
More file actions
378 lines (351 loc) · 23.2 KB
/
java.md
File metadata and controls
378 lines (351 loc) · 23.2 KB
Edit and raw actions
OlderNewer
1
---
2
title: Documentation for the java Generator
3
---
4
5
## METADATA
6
7
| Property | Value | Notes |
8
| -------- | ----- | ----- |
9
| generator name | java | pass this to the generate command after -g |
10
| generator stability | STABLE | |
11
| generator type | CLIENT | |
12
| generator language | Java | |
13
| generator default templating engine | mustache | |
14
| helpTxt | Generates a Java client library (HTTP lib: Jersey (1.x, 2.x), Retrofit (2.x), OpenFeign (10.x) and more. | |
15
16
## CONFIG OPTIONS
17
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details.
18
19
| Option | Description | Values | Default |
20
| ------ | ----------- | ------ | ------- |
21
|additionalEnumTypeAnnotations|Additional annotations for enum type(class level annotations)| |null|
22
|additionalModelTypeAnnotations|Additional annotations for model type(class level annotations). List separated by semicolon(;) or new line (Linux or Windows)| |null|
23
|additionalOneOfTypeAnnotations|Additional annotations for oneOf interfaces(class level annotations). List separated by semicolon(;) or new line (Linux or Windows)| |null|
24
|allowUnicodeIdentifiers|boolean, toggles whether unicode identifiers are allowed in names or not, default is false| |false|
25
|annotationLibrary|Select the complementary documentation annotation library.|<dl><dt>**none**</dt><dd>Do not annotate Model and Api with complementary annotations.</dd><dt>**swagger1**</dt><dd>Annotate Model and Api using the Swagger Annotations 1.x library.</dd><dt>**swagger2**</dt><dd>Annotate Model and Api using the Swagger Annotations 2.x library.</dd></dl>|none|
26
|apiPackage|package for generated api classes| |org.openapitools.client.api|
27
|artifactDescription|artifact description in generated pom.xml| |OpenAPI Java|
28
|artifactId|artifactId in generated pom.xml. This also becomes part of the generated library's filename| |openapi-java-client|
29
|artifactUrl|artifact URL in generated pom.xml| |https://github.com/openapitools/openapi-generator|
30
|artifactVersion|artifact version in generated pom.xml. This also becomes part of the generated library's filename. If not provided, uses the version from the OpenAPI specification file. If that's also not present, uses the default value of the artifactVersion option.| |1.0.0|
31
|asyncNative|If true, async handlers will be used, instead of the sync version| |false|
32
|bigDecimalAsString|Treat BigDecimal values as Strings to avoid precision loss.| |false|
33
|booleanGetterPrefix|Set booleanGetterPrefix| |get|
34
|camelCaseDollarSign|Fix camelCase when starting with $ sign. when true : $Value when false : $value| |false|
35
|caseInsensitiveResponseHeaders|Make API response's headers case-insensitive. Available on okhttp-gson, jersey2 libraries| |false|
36
|configKey|Config key in @RegisterRestClient. Default to none. Only `microprofile` supports this option.| |null|
37
|configKeyFromClassName|If true, set tag as key in @RegisterRestClient. Default to false. Only `microprofile` supports this option.| |null|
38
|containerDefaultToNull|Set containers (array, set, map) default to null| |false|
39
|dateLibrary|Option. Date library to use|<dl><dt>**joda**</dt><dd>Joda (for legacy app only)</dd><dt>**legacy**</dt><dd>Legacy java.util.Date</dd><dt>**java8-localdatetime**</dt><dd>Java 8 using LocalDateTime (for legacy app only)</dd><dt>**java8**</dt><dd>Java 8 native JSR310 (preferred for jdk 1.8+)</dd></dl>|java8|
40
|defaultToEmptyContainer|Initialize containers (array/set/map) to empty containers instead of null by default. Usage: https://github.com/OpenAPITools/openapi-generator/blob/master/docs/customization.md#default-values| |null|
41
|developerEmail|developer email in generated pom.xml| |[email protected]|
42
|developerName|developer name in generated pom.xml| |OpenAPI-Generator Contributors|
43
|developerOrganization|developer organization in generated pom.xml| |OpenAPITools.org|
44
|developerOrganizationUrl|developer organization URL in generated pom.xml| |http://openapitools.org|
45
|disableDiscriminatorJsonIgnoreProperties|Ignore discriminator field type for Jackson serialization| |false|
46
|disableHtmlEscaping|Disable HTML escaping of JSON strings when using gson (needed to avoid problems with byte[] fields)| |false|
47
|disallowAdditionalPropertiesIfNotPresent|If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.|<dl><dt>**false**</dt><dd>The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.</dd><dt>**true**</dt><dd>Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.</dd></dl>|true|
48
|discriminatorCaseSensitive|Whether the discriminator value lookup should be case-sensitive or not. This option only works for Java API client| |true|
49
|documentationProvider|Select the OpenAPI documentation provider.|<dl><dt>**none**</dt><dd>Do not publish an OpenAPI specification.</dd><dt>**source**</dt><dd>Publish the original input OpenAPI specification.</dd></dl>|source|
50
|dynamicOperations|Generate operations dynamically at runtime from an OAS| |false|
51
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
52
|enumPropertyNaming|Naming convention for enum properties: 'MACRO_CASE', 'legacy' and 'original'| |MACRO_CASE|
53
|enumUnknownDefaultCase|If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response. With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case.|<dl><dt>**false**</dt><dd>No changes to the enums are made, this is the default option.</dd><dt>**true**</dt><dd>With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the enum case sent by the server is not known by the client/spec, can safely be decoded to this case.</dd></dl>|false|
54
|errorObjectType|Error Object type. (This option is for okhttp-gson only)| |null|
55
|failOnUnknownProperties|Fail Jackson de-serialization on unknown properties| |false|
56
|generateBuilders|Whether to generate builders for models| |false|
57
|generateClientAsBean|For resttemplate, restclient and webclient, configure whether to create `ApiClient.java` and Apis clients as bean (with `@Component` annotation).| |false|
58
|generateConstructorWithAllArgs|whether to generate a constructor for all arguments| |false|
59
|gradleProperties|Append additional Gradle properties to the gradle.properties file| |null|
60
|groupId|groupId in generated pom.xml| |org.openapitools|
61
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |false|
62
|ignoreAnyOfInEnum|Ignore anyOf keyword in enum| |false|
63
|implicitHeaders|Skip header parameters in the generated API methods using @ApiImplicitParams annotation.| |false|
64
|implicitHeadersRegex|Skip header parameters that matches given regex in the generated API methods using @ApiImplicitParams annotation. Note: this parameter is ignored when implicitHeaders=true| |null|
65
|invokerPackage|root package for generated code| |org.openapitools.client|
66
|legacyDiscriminatorBehavior|Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default).|<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true|
67
|library|library template (sub-template) to use|<dl><dt>**jersey2**</dt><dd>HTTP client: Jersey client 2.25.1. JSON processing: Jackson 2.17.1</dd><dt>**jersey3**</dt><dd>HTTP client: Jersey client 3.1.1. JSON processing: Jackson 2.17.1</dd><dt>**feign**</dt><dd>HTTP client: OpenFeign 13.2.1. JSON processing: Jackson 2.17.1 or Gson 2.10.1</dd><dt>**feign-hc5**</dt><dd>HTTP client: OpenFeign 13.2.1/HttpClient5 5.4.2. JSON processing: Jackson 2.17.1 or Gson 2.10.1</dd><dt>**okhttp-gson**</dt><dd>[DEFAULT] HTTP client: OkHttp 4.11.0. JSON processing: Gson 2.10.1. Enable Parcelable models on Android using '-DparcelableModel=true'. Enable gzip request encoding using '-DuseGzipFeature=true'.</dd><dt>**retrofit2**</dt><dd>HTTP client: OkHttp 4.11.0. JSON processing: Gson 2.10.1 (Retrofit 2.5.0) or Jackson 2.17.1. Enable the RxJava adapter using '-DuseRxJava[2/3]=true'. (RxJava 1.x or 2.x or 3.x)</dd><dt>**resttemplate**</dt><dd>HTTP client: Spring RestTemplate 5.3.33 (6.2.x if `useJakartaEe=true`, 7.x.x if `useSpringBoot4=true`). JSON processing: Jackson 2.x (3.x if `useJackson3=true`)</dd><dt>**webclient**</dt><dd>HTTP client: Spring WebClient 5.1.18 (7.x.x if `useSpringBoot4=true`). JSON processing: Jackson 2.17.1 (3.x if `useJackson3=true`)</dd><dt>**restclient**</dt><dd>HTTP client: Spring RestClient 6.1.6 (7.x.x if `useSpringBoot4=true`). JSON processing: Jackson 2.17.1 (3.x if `useJackson3=true`)</dd><dt>**resteasy**</dt><dd>HTTP client: Resteasy client 4.7.6. JSON processing: Jackson 2.17.1</dd><dt>**vertx**</dt><dd>HTTP client: VertX client 3.5.2. JSON processing: Jackson 2.17.1</dd><dt>**google-api-client**</dt><dd>HTTP client: Google API client 2.2.0. JSON processing: Jackson 2.17.1</dd><dt>**rest-assured**</dt><dd>HTTP client: rest-assured 5.3.2. JSON processing: Gson 2.10.1 or Jackson 2.17.1. Only for Java 8</dd><dt>**native**</dt><dd>HTTP client: Java native HttpClient. JSON processing: Jackson 2.17.1 (3.x if `useJackson3=true`). Only for Java11+</dd><dt>**microprofile**</dt><dd>HTTP client: Microprofile client 2.0 (default, set desired version via `microprofileRestClientVersion=x.x.x`). JSON processing: JSON-B 1.0.2 or Jackson 2.17.1</dd><dt>**apache-httpclient**</dt><dd>HTTP client: Apache httpclient 5.2.1. JSON processing: Jackson 2.17.1 (3.x if `useJackson3=true`)</dd></dl>|okhttp-gson|
68
|licenseName|The name of the license| |Unlicense|
69
|licenseUrl|The URL of the license| |http://unlicense.org|
70
|microprofileFramework|Framework for microprofile. Possible values "kumuluzee"| |null|
71
|microprofileGlobalExceptionMapper|Should ApiExceptionMapper be annotated with @Provider making it a global exception mapper| |true|
72
|microprofileMutiny|Whether to use async types for microprofile (currently only Smallrye Mutiny is supported).| |null|
73
|microprofileRegisterExceptionMapper|Should generated API Clients be annotated with @RegisterProvider(ApiExceptionMapper.class).| |true|
74
|microprofileRestClientVersion|Version of MicroProfile Rest Client API.| |null|
75
|modelPackage|package for generated models| |org.openapitools.client.model|
76
|openApiNullable|Enable OpenAPI Jackson Nullable library. Not supported by `microprofile` library.| |true|
77
|parcelableModel|Whether to generate models for Android that implement Parcelable with the okhttp-gson library.| |false|
78
|parentArtifactId|parent artifactId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
79
|parentGroupId|parent groupId in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
80
|parentVersion|parent version in generated pom N.B. parentGroupId, parentArtifactId and parentVersion must all be specified for any of them to take effect| |null|
81
|performBeanValidation|Perform BeanValidation| |false|
82
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
83
|scmConnection|SCM connection in generated pom.xml| |scm:git:[email protected]:openapitools/openapi-generator.git|
84
|scmDeveloperConnection|SCM developer connection in generated pom.xml| |scm:git:[email protected]:openapitools/openapi-generator.git|
85
|scmUrl|SCM URL in generated pom.xml| |https://github.com/openapitools/openapi-generator|
86
|serializableModel|boolean - toggle "implements Serializable" for generated models| |false|
87
|serializationLibrary|Serialization library, default depends on value of the option library|<dl><dt>**jsonb**</dt><dd>Use JSON-B as serialization library</dd><dt>**jackson**</dt><dd>Use Jackson as serialization library</dd><dt>**gson**</dt><dd>Use Gson as serialization library</dd></dl>|null|
88
|snapshotVersion|Uses a SNAPSHOT version.|<dl><dt>**true**</dt><dd>Use a SnapShot Version</dd><dt>**false**</dt><dd>Use a Release Version</dd></dl>|null|
89
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
90
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
91
|sourceFolder|source folder for generated code| |src/main/java|
92
|supportStreaming|Support streaming endpoint (beta)| |false|
93
|supportUrlQuery|Generate toUrlQueryString in POJO (default to true). Available on `native`, `apache-httpclient` libraries.| |false|
94
|supportVertxFuture|Also generate api methods that return a vertx Future instead of taking a callback. Only `vertx` supports this option. Requires vertx 4 or greater.| |false|
95
|testOutput|Set output folder for models and APIs tests| |${project.build.directory}/generated-test-sources/openapi|
96
|useAbstractionForFiles|Use alternative types instead of java.io.File to allow passing bytes without a file on disk. Available on resttemplate, webclient, restclient, libraries| |false|
97
|useBeanValidation|Use BeanValidation API annotations| |false|
98
|useEnumCaseInsensitive|Use `equalsIgnoreCase` when String for enum comparison| |false|
99
|useGzipFeature|Send gzip-encoded requests| |false|
100
|useJackson3|Use Jackson 3 instead of Jackson 2. Supported for 'native' and 'apache-httpclient' libraries (requires Java 17+) and for Spring 'resttemplate', 'webclient', and 'restclient' libraries (require useSpringBoot4=true).| |false|
101
|useJakartaEe|whether to use Jakarta EE namespace instead of javax| |false|
102
|useJspecify|Use Jspecify for null checks. Only supported for [native, restclient, resttemplate, webclient]| |false|
103
|useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped. Only jersey2, jersey3, native, okhttp-gson support this option.| |false|
104
|useOneOfInterfaces|whether to use a java interface to describe a set of oneOf options, where each option is a class that implements the interface| |false|
105
|usePlayWS|Use Play! Async HTTP client (Play WS API)| |false|
106
|useReflectionEqualsHashCode|Use org.apache.commons.lang3.builder for equals and hashCode in the models. WARNING: This will fail under a security manager, unless the appropriate permissions are set up correctly and also there's potential performance impact.| |false|
107
|useRuntimeException|Use RuntimeException instead of Exception. Only jersey2, jersey3, okhttp-gson, vertx, microprofile support this option.| |false|
108
|useRxJava2|Whether to use the RxJava2 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
109
|useRxJava3|Whether to use the RxJava3 adapter with the retrofit2 library. IMPORTANT: This option has been deprecated.| |false|
110
|useSealedOneOfInterfaces|Generate the oneOf interfaces as sealed interfaces. Only supported for WebClient and RestClient.| |false|
111
|useSingleRequestParameter|Setting this property to "true" will generate functions with a single argument containing all API endpoint parameters instead of one argument per parameter. ONLY native, jersey2, jersey3, okhttp-gson, microprofile, Spring RestClient, Spring WebClient support this option. Setting this property to "static" does the same as "true", but also makes the generated arguments class static with single parameter instantiation.| |false|
112
|useSpringBoot4|Generate code and provide dependencies for use with Spring Boot 4.x.| |false|
113
|useUnaryInterceptor|If true it will generate ResponseInterceptors using a UnaryOperator. This can be usefull for manipulating the request before it gets passed, for example doing your own decryption| |false|
114
|useVertx5|Whether to use Vert.x 5 syntax.| |false|
115
|webclientBlockingOperations|Making all WebClient operations blocking(sync). Note that if on operation 'x-webclient-blocking: false' then such operation won't be sync| |false|
116
|withAWSV4Signature|whether to include AWS v4 signature support (only available for okhttp-gson library)| |false|
117
|withXml|whether to include support for application/xml content type and include XML annotations in the model (works with libraries that provide support for JSON and XML)| |false|
118
119
## SUPPORTED VENDOR EXTENSIONS
120
121
| Extension name | Description | Applicable for | Default value |
122
| -------------- | ----------- | -------------- | ------------- |
123
|x-discriminator-value|Used with model inheritance to specify value for discriminator that identifies current model|MODEL|
124
|x-implements|Ability to specify interfaces that model must implements|MODEL|empty array
125
|x-setter-extra-annotation|Custom annotation that can be specified over java setter for specific field|FIELD|When field is array & uniqueItems, then this extension is used to add `@JsonDeserialize(as = LinkedHashSet.class)` over setter, otherwise no value
126
|x-tags|Specify multiple swagger tags for operation|OPERATION|null
127
|x-accepts|Specify custom value for 'Accept' header for operation|OPERATION|null
128
|x-content-type|Specify custom value for 'Content-Type' header for operation|OPERATION|null
129
|x-class-extra-annotation|List of custom annotations to be added to model|MODEL|null
130
|x-field-extra-annotation|List of custom annotations to be added to property|FIELD, OPERATION_PARAMETER|null
131
|x-webclient-blocking|Specifies if method for specific operation should be blocking or non-blocking(ex: return `Mono<T>/Flux<T>` or `return T/List<T>/Set<T>` & execute `.block()` inside generated method)|OPERATION|false
132
133
134
## IMPORT MAPPING
135
136
| Type/Alias | Imports |
137
| ---------- | ------- |
138
|Array|java.util.List|
139
|ArrayList|java.util.ArrayList|
140
|BigDecimal|java.math.BigDecimal|
141
|Date|java.util.Date|
142
|DateTime|org.joda.time.*|
143
|File|java.io.File|
144
|HashMap|java.util.HashMap|
145
|LinkedHashSet|java.util.LinkedHashSet|
146
|List|java.util.*|
147
|LocalDate|org.joda.time.*|
148
|LocalDateTime|org.joda.time.*|
149
|LocalTime|org.joda.time.*|
150
|Map|java.util.Map|
151
|Set|java.util.*|
152
|Timestamp|java.sql.Timestamp|
153
|URI|java.net.URI|
154
|UUID|java.util.UUID|
155
156
157
## INSTANTIATION TYPES
158
159
| Type/Alias | Instantiated By |
160
| ---------- | --------------- |
161
|array|ArrayList|
162
|map|HashMap|
163
|set|LinkedHashSet|
164
165
166
## LANGUAGE PRIMITIVES
167
168
<ul class="column-ul">
169
<li>Boolean</li>
170
<li>Double</li>
171
<li>Float</li>
172
<li>Integer</li>
173
<li>Long</li>
174
<li>Object</li>
175
<li>String</li>
176
<li>boolean</li>
177
<li>byte[]</li>
178
</ul>
179
180
## RESERVED WORDS
181
182
<ul class="column-ul">
183
<li>_</li>
184
<li>abstract</li>
185
<li>apiclient</li>
186
<li>apiexception</li>
187
<li>apiresponse</li>
188
<li>assert</li>
189
<li>boolean</li>
190
<li>break</li>
191
<li>byte</li>
192
<li>case</li>
193
<li>catch</li>
194
<li>char</li>
195
<li>class</li>
196
<li>configuration</li>
197
<li>const</li>
198
<li>continue</li>
199
<li>default</li>
200
<li>do</li>
201
<li>double</li>
202
<li>else</li>
203
<li>enum</li>
204
<li>extends</li>
205
<li>file</li>
206
<li>final</li>
207
<li>finally</li>
208
<li>float</li>
209
<li>for</li>
210
<li>goto</li>
211
<li>if</li>
212
<li>implements</li>
213
<li>import</li>
214
<li>instanceof</li>
215
<li>int</li>
216
<li>interface</li>
217
<li>list</li>
218
<li>localdate</li>
219
<li>localreturntype</li>
220
<li>localtime</li>
221
<li>localvaraccept</li>
222
<li>localvaraccepts</li>
223
<li>localvarauthnames</li>
224
<li>localvarcollectionqueryparams</li>
225
<li>localvarcontenttype</li>
226
<li>localvarcontenttypes</li>
227
<li>localvarcookieparams</li>
228
<li>localvarformparams</li>
229
<li>localvarheaderparams</li>
230
<li>localvarpath</li>
231
<li>localvarpostbody</li>
232
<li>localvarqueryparams</li>
233
<li>long</li>
234
<li>native</li>
235
<li>new</li>
236
<li>null</li>
237
<li>object</li>
238
<li>offsetdatetime</li>
239
<li>package</li>
240
<li>private</li>
241
<li>protected</li>
242
<li>public</li>
243
<li>return</li>
244
<li>short</li>
245
<li>static</li>
246
<li>strictfp</li>
247
<li>stringutil</li>
248
<li>super</li>
249
<li>switch</li>
250
<li>synchronized</li>
251
<li>this</li>
252
<li>throw</li>
253
<li>throws</li>
254
<li>transient</li>
255
<li>try</li>
256
<li>void</li>
257
<li>volatile</li>
258
<li>while</li>
259
</ul>
260
261
## FEATURE SET
262
263
264
### Client Modification Feature
265
| Name | Supported | Defined By |
266
| ---- | --------- | ---------- |
267
|BasePath|✓|ToolingExtension
268
|Authorizations|✗|ToolingExtension
269
|UserAgent|✗|ToolingExtension
270
|MockServer|✗|ToolingExtension
271
272
### Data Type Feature
273
| Name | Supported | Defined By |
274
| ---- | --------- | ---------- |
275
|Custom|✗|OAS2,OAS3
276
|Int32|✓|OAS2,OAS3
277
|Int64|✓|OAS2,OAS3
278
|Float|✓|OAS2,OAS3
279
|Double|✓|OAS2,OAS3
280
|Decimal|✓|ToolingExtension
281
|String|✓|OAS2,OAS3
282
|Byte|✓|OAS2,OAS3
283
|Binary|✓|OAS2,OAS3
284
|Boolean|✓|OAS2,OAS3
285
|Date|✓|OAS2,OAS3
286
|DateTime|✓|OAS2,OAS3
287
|Password|✓|OAS2,OAS3
288
|File|✓|OAS2
289
|Uuid|✗|
290
|Array|✓|OAS2,OAS3
291
|Null|✗|OAS3
292
|AnyType|✗|OAS2,OAS3
293
|Object|✓|OAS2,OAS3
294
|Maps|✓|ToolingExtension
295
|CollectionFormat|✓|OAS2
296
|CollectionFormatMulti|✓|OAS2
297
|Enum|✓|OAS2,OAS3
298
|ArrayOfEnum|✓|ToolingExtension
299
|ArrayOfModel|✓|ToolingExtension
300
|ArrayOfCollectionOfPrimitives|✓|ToolingExtension
301
|ArrayOfCollectionOfModel|✓|ToolingExtension
302
|ArrayOfCollectionOfEnum|✓|ToolingExtension
303
|MapOfEnum|✓|ToolingExtension
304
|MapOfModel|✓|ToolingExtension
305
|MapOfCollectionOfPrimitives|✓|ToolingExtension
306
|MapOfCollectionOfModel|✓|ToolingExtension
307
|MapOfCollectionOfEnum|✓|ToolingExtension
308
309
### Documentation Feature
310
| Name | Supported | Defined By |
311
| ---- | --------- | ---------- |
312
|Readme|✓|ToolingExtension
313
|Model|✓|ToolingExtension
314
|Api|✓|ToolingExtension
315
316
### Global Feature
317
| Name | Supported | Defined By |
318
| ---- | --------- | ---------- |
319
|Host|✓|OAS2,OAS3
320
|BasePath|✓|OAS2,OAS3
321
|Info|✓|OAS2,OAS3
322
|Schemes|✗|OAS2,OAS3
323
|PartialSchemes|✓|OAS2,OAS3
324
|Consumes|✓|OAS2
325
|Produces|✓|OAS2
326
|ExternalDocumentation|✓|OAS2,OAS3
327
|Examples|✓|OAS2,OAS3
328
|XMLStructureDefinitions|✗|OAS2,OAS3
329
|MultiServer|✗|OAS3
330
|ParameterizedServer|✓|OAS3
331
|ParameterStyling|✗|OAS3
332
|Callbacks|✗|OAS3
333
|LinkObjects|✗|OAS3
334
335
### Parameter Feature
336
| Name | Supported | Defined By |
337
| ---- | --------- | ---------- |
338
|Path|✓|OAS2,OAS3
339
|Query|✓|OAS2,OAS3
340
|Header|✓|OAS2,OAS3
341
|Body|✓|OAS2
342
|FormUnencoded|✓|OAS2
343
|FormMultipart|✓|OAS2
344
|Cookie|✓|OAS3
345
346
### Schema Support Feature
347
| Name | Supported | Defined By |
348
| ---- | --------- | ---------- |
349
|Simple|✓|OAS2,OAS3
350
|Composite|✓|OAS2,OAS3
351
|Polymorphism|✗|OAS2,OAS3
352
|Union|✗|OAS3
353
|allOf|✗|OAS2,OAS3
354
|anyOf|✗|OAS3
355
|oneOf|✗|OAS3
356
|not|✗|OAS3
357
358
### Security Feature
359
| Name | Supported | Defined By |
360
| ---- | --------- | ---------- |
361
|BasicAuth|✓|OAS2,OAS3
362
|ApiKey|✓|OAS2,OAS3
363
|OpenIDConnect|✗|OAS3
364
|BearerToken|✓|OAS3
365
|OAuth2_Implicit|✓|OAS2,OAS3
366
|OAuth2_Password|✓|OAS2,OAS3
367
|OAuth2_ClientCredentials|✓|OAS2,OAS3
368
|OAuth2_AuthorizationCode|✓|OAS2,OAS3
369
|SignatureAuth|✓|OAS3
370
|AWSV4Signature|✓|ToolingExtension
371
372
### Wire Format Feature
373
| Name | Supported | Defined By |
374
| ---- | --------- | ---------- |
375
|JSON|✓|OAS2,OAS3
376
|XML|✓|OAS2,OAS3
377
|PROTOBUF|✗|ToolingExtension
378
|Custom|✗|OAS2,OAS3