Upgrades swagger parser to 2.1.1, allows ingestion of 3.1.0 specs (#13133)

* Upgrades swagger-parser

* Removes additional property and halting of spec processing

* Updates tests

* Docs updated
This commit is contained in:
Justin Black 2022-09-17 08:33:47 -07:00 committed by GitHub
parent 62d29c3be3
commit 43375b9392
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
71 changed files with 1293 additions and 40 deletions

View File

@ -247,11 +247,6 @@
</plugins>
</reporting>
<dependencies>
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-core</artifactId>
<version>${swagger-core.version}</version>
</dependency>
<dependency>
<groupId>${swagger-parser-groupid.version}</groupId>
<artifactId>swagger-parser</artifactId>

View File

@ -388,7 +388,10 @@ public class CodegenConstants {
public static final String DISALLOW_ADDITIONAL_PROPERTIES_IF_NOT_PRESENT_DESC =
"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.";
public static final String UNSUPPORTED_V310_SPEC_MSG =
"Generation using 3.1.0 specs is in development and is not officially supported yet. " +
"If you would like to expedite development, please consider woking on the open issues in the 3.1.0 project: https://github.com/orgs/OpenAPITools/projects/4/views/1 " +
"and reach out to our team on Slack at https://join.slack.com/t/openapi-generator/shared_invite/zt-12jxxd7p2-XUeQM~4pzsU9x~eGLQqX2g";
public static final String ENUM_UNKNOWN_DEFAULT_CASE = "enumUnknownDefaultCase";
public static final String ENUM_UNKNOWN_DEFAULT_CASE_DESC =
"If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response." +

View File

@ -79,6 +79,7 @@ import io.swagger.v3.oas.models.servers.Server;
import io.swagger.v3.oas.models.servers.ServerVariable;
import io.swagger.v3.parser.util.SchemaTypeUtil;
import static org.openapitools.codegen.CodegenConstants.UNSUPPORTED_V310_SPEC_MSG;
import static org.openapitools.codegen.utils.OnceLogger.once;
import static org.openapitools.codegen.utils.StringUtils.*;
@ -820,6 +821,19 @@ public class DefaultCodegen implements CodegenConfig {
*/
@Override
public void setOpenAPI(OpenAPI openAPI) {
String originalSpecVersion;
String xOriginalSwaggerVersion = "x-original-swagger-version";
if (openAPI.getExtensions() != null && !openAPI.getExtensions().isEmpty() && openAPI.getExtensions().containsValue(xOriginalSwaggerVersion)) {
originalSpecVersion = (String) openAPI.getExtensions().get(xOriginalSwaggerVersion);
} else {
originalSpecVersion = openAPI.getOpenapi();
}
Integer specMajorVersion = Integer.parseInt(originalSpecVersion.substring(0, 1));
Integer specMinorVersion = Integer.parseInt(originalSpecVersion.substring(2, 3));
boolean specVersionGreaterThanOrEqualTo310 = (specMajorVersion == 3 && specMinorVersion >= 1);
if (specVersionGreaterThanOrEqualTo310) {
LOGGER.warn(UNSUPPORTED_V310_SPEC_MSG);
}
this.openAPI = openAPI;
// Set global settings such that helper functions in ModelUtils can lookup the value
// of the CLI option.

View File

@ -4245,4 +4245,12 @@ public class DefaultCodegenTest {
Assert.assertEquals(fooOptional.vars.get(0).name, "foo");
Assert.assertEquals(fooOptional.requiredVars.size(), 0);
}
@Test
public void testAssigning310SpecWorks() {
final OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_1/petstore.yaml");
final DefaultCodegen codegen = new DefaultCodegen();
codegen.setOpenAPI(openAPI);
assertEquals(openAPI, codegen.openAPI);
}
}

View File

@ -147,8 +147,8 @@ public class ConfluenceWikiTest {
discriminator.setPropertyName("model_type");
parentModel.setDiscriminator(discriminator);
final ComposedSchema composedSchema = new ComposedSchema()
.addAllOfItem(new Schema().$ref(parentModel.getName()));
final ComposedSchema composedSchema = new ComposedSchema();
composedSchema.addAllOfItem(new Schema().$ref(parentModel.getName()));
composedSchema.setName("sample");
final ConfluenceWikiCodegen codegen = new ConfluenceWikiCodegen();

View File

@ -146,8 +146,8 @@ public class JavaModelEnumTest {
discriminator.setPropertyName("model_type");
parentModel.setDiscriminator(discriminator);
final ComposedSchema composedSchema = new ComposedSchema()
.addAllOfItem(new Schema().$ref(parentModel.getName()));
final ComposedSchema composedSchema = new ComposedSchema();
composedSchema.addAllOfItem(new Schema().$ref(parentModel.getName()));
composedSchema.setName("sample");
final JavaClientCodegen codegen = new JavaClientCodegen();

View File

@ -206,7 +206,8 @@ public class ModelUtilsTest {
*/
@Test
public void testComposedSchemasAreNotUnaliased() {
ComposedSchema composedSchema = new ComposedSchema().allOf(Arrays.asList(
ComposedSchema composedSchema = new ComposedSchema();
composedSchema.allOf(Arrays.asList(
new Schema<>().$ref("#/components/schemas/SomeSchema"),
new ObjectSchema()
));

View File

@ -84,7 +84,8 @@ public class OpenApiSchemaValidationsTest {
}
private ComposedSchema getOneOfSample(boolean withProperties) {
ComposedSchema schema = new ComposedSchema().oneOf(Arrays.asList(
ComposedSchema schema = new ComposedSchema();
schema.oneOf(Arrays.asList(
new StringSchema(),
new IntegerSchema().format("int64"))
);
@ -99,7 +100,8 @@ public class OpenApiSchemaValidationsTest {
private ComposedSchema getAllOfSample(boolean withProperties) {
// This doesn't matter if it's realistic; it's a structural check
ComposedSchema schema = new ComposedSchema().allOf(Arrays.asList(
ComposedSchema schema = new ComposedSchema();
schema.allOf(Arrays.asList(
new StringSchema(),
new IntegerSchema().format("int64"))
);
@ -113,7 +115,8 @@ public class OpenApiSchemaValidationsTest {
}
private ComposedSchema getAnyOfSample(boolean withProperties) {
ComposedSchema schema = new ComposedSchema().anyOf(Arrays.asList(
ComposedSchema schema = new ComposedSchema();
schema.anyOf(Arrays.asList(
new StringSchema(),
new IntegerSchema().format("int64"))
);

View File

@ -0,0 +1,738 @@
openapi: 3.1.0
servers:
- url: 'http://petstore.swagger.io/v2'
info:
description: >-
This is a sample server Petstore server. For this sample, you can use the api key
`special-key` to test the authorization filters.
version: 1.0.0
title: OpenAPI Petstore
license:
name: Apache-2.0
url: 'https://www.apache.org/licenses/LICENSE-2.0.html'
tags:
- name: pet
description: Everything about your Pets
- name: store
description: Access to Petstore orders
- name: user
description: Operations about user
paths:
/pet:
post:
tags:
- pet
summary: Add a new pet to the store
description: ''
operationId: addPet
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/Pet'
application/json:
schema:
$ref: '#/components/schemas/Pet'
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
$ref: '#/components/requestBodies/Pet'
put:
tags:
- pet
summary: Update an existing pet
description: ''
operationId: updatePet
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/Pet'
application/json:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
'405':
description: Validation exception
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
$ref: '#/components/requestBodies/Pet'
/pet/findByStatus:
get:
tags:
- pet
summary: Finds Pets by status
description: Multiple status values can be provided with comma separated strings
operationId: findPetsByStatus
parameters:
- name: status
in: query
description: Status values that need to be considered for filter
required: true
style: form
explode: false
deprecated: true
schema:
type: array
items:
type: string
enum:
- available
- pending
- sold
default: available
responses:
'200':
description: successful operation
content:
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid status value
security:
- petstore_auth:
- 'read:pets'
/pet/findByTags:
get:
tags:
- pet
summary: Finds Pets by tags
description: >-
Multiple tags can be provided with comma separated strings. Use tag1,
tag2, tag3 for testing.
operationId: findPetsByTags
parameters:
- name: tags
in: query
description: Tags to filter by
required: true
style: form
explode: false
schema:
type: array
items:
type: string
responses:
'200':
description: successful operation
content:
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid tag value
security:
- petstore_auth:
- 'read:pets'
deprecated: true
'/pet/{petId}':
get:
tags:
- pet
summary: Find pet by ID
description: Returns a single pet
operationId: getPetById
parameters:
- name: petId
in: path
description: ID of pet to return
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/Pet'
application/json:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
security:
- api_key: []
post:
tags:
- pet
summary: Updates a pet in the store with form data
description: ''
operationId: updatePetWithForm
parameters:
- name: petId
in: path
description: ID of pet that needs to be updated
required: true
schema:
type: integer
format: int64
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
name:
description: Updated name of the pet
type: string
status:
description: Updated status of the pet
type: string
delete:
tags:
- pet
summary: Deletes a pet
description: ''
operationId: deletePet
parameters:
- name: api_key
in: header
required: false
schema:
type: string
- name: petId
in: path
description: Pet id to delete
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Invalid pet value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
'/pet/{petId}/uploadImage':
post:
tags:
- pet
summary: uploads an image
description: ''
operationId: uploadFile
parameters:
- name: petId
in: path
description: ID of pet to update
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
additionalMetadata:
description: Additional data to pass to server
type: string
file:
description: file to upload
type: string
format: binary
/store/inventory:
get:
tags:
- store
summary: Returns pet inventories by status
description: Returns a map of status codes to quantities
operationId: getInventory
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
additionalProperties:
type: integer
format: int32
security:
- api_key: []
/store/order:
post:
tags:
- store
summary: Place an order for a pet
description: ''
operationId: placeOrder
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/Order'
application/json:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid Order
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
description: order placed for purchasing the pet
required: true
'/store/order/{orderId}':
get:
tags:
- store
summary: Find purchase order by ID
description: >-
For valid response try integer IDs with value <= 5 or > 10. Other values
will generated exceptions
operationId: getOrderById
parameters:
- name: orderId
in: path
description: ID of pet that needs to be fetched
required: true
schema:
type: integer
format: int64
minimum: 1
maximum: 5
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/Order'
application/json:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid ID supplied
'404':
description: Order not found
delete:
tags:
- store
summary: Delete purchase order by ID
description: >-
For valid response try integer IDs with value < 1000. Anything above
1000 or nonintegers will generate API errors
operationId: deleteOrder
parameters:
- name: orderId
in: path
description: ID of the order that needs to be deleted
required: true
schema:
type: string
responses:
'400':
description: Invalid ID supplied
'404':
description: Order not found
/user:
post:
tags:
- user
summary: Create user
description: This can only be done by the logged in user.
operationId: createUser
responses:
default:
description: successful operation
security:
- api_key: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: Created user object
required: true
/user/createWithArray:
post:
tags:
- user
summary: Creates list of users with given input array
description: ''
operationId: createUsersWithArrayInput
responses:
default:
description: successful operation
security:
- api_key: []
requestBody:
$ref: '#/components/requestBodies/UserArray'
/user/createWithList:
post:
tags:
- user
summary: Creates list of users with given input array
description: ''
operationId: createUsersWithListInput
responses:
default:
description: successful operation
security:
- api_key: []
requestBody:
$ref: '#/components/requestBodies/UserArray'
/user/login:
get:
tags:
- user
summary: Logs user into the system
description: ''
operationId: loginUser
parameters:
- name: username
in: query
description: The user name for login
required: true
schema:
type: string
pattern: '^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$'
- name: password
in: query
description: The password for login in clear text
required: true
schema:
type: string
responses:
'200':
description: successful operation
headers:
Set-Cookie:
description: >-
Cookie authentication key for use with the `api_key`
apiKey authentication.
schema:
type: string
example: AUTH_KEY=abcde12345; Path=/; HttpOnly
X-Rate-Limit:
description: calls per hour allowed by the user
schema:
type: integer
format: int32
X-Expires-After:
description: date in UTC when token expires
schema:
type: string
format: date-time
content:
application/xml:
schema:
type: string
application/json:
schema:
type: string
'400':
description: Invalid username/password supplied
/user/logout:
get:
tags:
- user
summary: Logs out current logged in user session
description: ''
operationId: logoutUser
responses:
default:
description: successful operation
security:
- api_key: []
'/user/{username}':
get:
tags:
- user
summary: Get user by user name
description: ''
operationId: getUserByName
parameters:
- name: username
in: path
description: The name that needs to be fetched. Use user1 for testing.
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/xml:
schema:
$ref: '#/components/schemas/User'
application/json:
schema:
$ref: '#/components/schemas/User'
'400':
description: Invalid username supplied
'404':
description: User not found
put:
tags:
- user
summary: Updated user
description: This can only be done by the logged in user.
operationId: updateUser
parameters:
- name: username
in: path
description: name that need to be deleted
required: true
schema:
type: string
responses:
'400':
description: Invalid user supplied
'404':
description: User not found
security:
- api_key: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: Updated user object
required: true
delete:
tags:
- user
summary: Delete user
description: This can only be done by the logged in user.
operationId: deleteUser
parameters:
- name: username
in: path
description: The name that needs to be deleted
required: true
schema:
type: string
responses:
'400':
description: Invalid username supplied
'404':
description: User not found
security:
- api_key: []
externalDocs:
description: Find out more about Swagger
url: 'http://swagger.io'
components:
requestBodies:
UserArray:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
description: List of user object
required: true
Pet:
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
description: Pet object that needs to be added to the store
required: true
securitySchemes:
petstore_auth:
type: oauth2
flows:
implicit:
authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
scopes:
'write:pets': modify pets in your account
'read:pets': read your pets
api_key:
type: apiKey
name: api_key
in: header
schemas:
Order:
title: Pet Order
description: An order for a pets from the pet store
type: object
properties:
id:
type: integer
format: int64
petId:
type: integer
format: int64
quantity:
type: integer
format: int32
shipDate:
type: string
format: date-time
status:
type: string
description: Order Status
enum:
- placed
- approved
- delivered
complete:
type: boolean
default: false
xml:
name: Order
Category:
title: Pet category
description: A category for a pet
type: object
properties:
id:
type: integer
format: int64
name:
type: string
pattern: '^[a-zA-Z0-9]+[a-zA-Z0-9\.\-_]*[a-zA-Z0-9]+$'
xml:
name: Category
User:
title: a User
description: A User who is purchasing from the pet store
type: object
properties:
id:
type: integer
format: int64
username:
type: string
firstName:
type: string
lastName:
type: string
email:
type: string
password:
type: string
phone:
type: string
userStatus:
type: integer
format: int32
description: User Status
xml:
name: User
Tag:
title: Pet Tag
description: A tag for a pet
type: object
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Tag
Pet:
title: a Pet
description: A pet for sale in the pet store
type: object
required:
- name
- photoUrls
properties:
id:
type: integer
format: int64
category:
$ref: '#/components/schemas/Category'
name:
type: string
example: doggie
photoUrls:
type: array
xml:
name: photoUrl
wrapped: true
items:
type: string
tags:
type: array
xml:
name: tag
wrapped: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: pet status in the store
deprecated: true
enum:
- available
- pending
- sold
xml:
name: Pet
ApiResponse:
title: An uploaded response
description: Describes the result of uploading an image resource
type: object
properties:
code:
type: integer
format: int32
type:
type: string
message:
type: string

View File

@ -1494,9 +1494,8 @@
<spotbugs-plugin.version>3.1.12.2</spotbugs-plugin.version>
<maven-surefire-plugin.version>3.0.0-M6</maven-surefire-plugin.version>
<openrewrite.version>7.22.0</openrewrite.version>
<swagger-core.version>2.1.12</swagger-core.version>
<swagger-parser-groupid.version>io.swagger.parser.v3</swagger-parser-groupid.version>
<swagger-parser.version>2.0.31</swagger-parser.version>
<swagger-parser.version>2.1.1</swagger-parser.version>
<testng.version>7.5</testng.version>
<violations-maven-plugin.version>1.34</violations-maven-plugin.version>
<wagon-ssh-external.version>3.4.3</wagon-ssh-external.version>

View File

@ -2103,11 +2103,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2118,6 +2120,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2103,11 +2103,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2118,6 +2120,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2132,11 +2132,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2286,11 +2286,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
ChildCat_allOf:
properties:
name:
@ -2302,6 +2304,7 @@ components:
type: string
x-enum-as-string: true
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -14,6 +14,7 @@ docs/ArrayOfArrayOfNumberOnly.md
docs/ArrayOfInlineAllOf.md
docs/ArrayOfInlineAllOfArrayAllofDogPropertyInner.md
docs/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.md
docs/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.md
docs/ArrayOfNumberOnly.md
docs/ArrayTest.md
docs/Banana.md
@ -137,6 +138,7 @@ src/main/java/org/openapitools/client/model/ArrayOfArrayOfNumberOnly.java
src/main/java/org/openapitools/client/model/ArrayOfInlineAllOf.java
src/main/java/org/openapitools/client/model/ArrayOfInlineAllOfArrayAllofDogPropertyInner.java
src/main/java/org/openapitools/client/model/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.java
src/main/java/org/openapitools/client/model/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.java
src/main/java/org/openapitools/client/model/ArrayOfNumberOnly.java
src/main/java/org/openapitools/client/model/ArrayTest.java
src/main/java/org/openapitools/client/model/Banana.java

View File

@ -164,6 +164,7 @@ Class | Method | HTTP request | Description
- [ArrayOfInlineAllOf](docs/ArrayOfInlineAllOf.md)
- [ArrayOfInlineAllOfArrayAllofDogPropertyInner](docs/ArrayOfInlineAllOfArrayAllofDogPropertyInner.md)
- [ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf](docs/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.md)
- [ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1](docs/ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.md)
- [ArrayOfNumberOnly](docs/ArrayOfNumberOnly.md)
- [ArrayTest](docs/ArrayTest.md)
- [Banana](docs/Banana.md)

View File

@ -2350,20 +2350,27 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
ArrayOfInlineAllOf_array_allof_dog_property_inner_allOf:
properties:
breed:
type: string
type: object
ArrayOfInlineAllOf_array_allof_dog_property_inner_allOf_1:
properties:
color:
type: string
type: object
ArrayOfInlineAllOf_array_allof_dog_property_inner:
allOf:
- $ref: '#/components/schemas/Dog_allOf'
- $ref: '#/components/schemas/ArrayOfInlineAllOf_array_allof_dog_property_inner_allOf'
- $ref: '#/components/schemas/ArrayOfInlineAllOf_array_allof_dog_property_inner_allOf_1'
securitySchemes:
petstore_auth:
flows:

View File

@ -7,7 +7,7 @@
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**color** | **String** | | [optional] |
|**breed** | **String** | | [optional] |

View File

@ -0,0 +1,13 @@
# ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
## Properties
| Name | Type | Description | Notes |
|------------ | ------------- | ------------- | -------------|
|**color** | **String** | | [optional] |

View File

@ -236,6 +236,7 @@ public class JSON {
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfInlineAllOf.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfInlineAllOfArrayAllofDogPropertyInner.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayOfNumberOnly.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.ArrayTest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new org.openapitools.client.model.Banana.CustomTypeAdapterFactory());

View File

@ -49,33 +49,33 @@ import org.openapitools.client.JSON;
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf {
public static final String SERIALIZED_NAME_COLOR = "color";
@SerializedName(SERIALIZED_NAME_COLOR)
private String color;
public static final String SERIALIZED_NAME_BREED = "breed";
@SerializedName(SERIALIZED_NAME_BREED)
private String breed;
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf() {
}
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf color(String color) {
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf breed(String breed) {
this.color = color;
this.breed = breed;
return this;
}
/**
* Get color
* @return color
* Get breed
* @return breed
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "")
public String getColor() {
return color;
public String getBreed() {
return breed;
}
public void setColor(String color) {
this.color = color;
public void setBreed(String breed) {
this.breed = breed;
}
/**
@ -124,20 +124,20 @@ public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf {
return false;
}
ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf = (ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf) o;
return Objects.equals(this.color, arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.color)&&
return Objects.equals(this.breed, arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.breed)&&
Objects.equals(this.additionalProperties, arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.additionalProperties);
}
@Override
public int hashCode() {
return Objects.hash(color, additionalProperties);
return Objects.hash(breed, additionalProperties);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf {\n");
sb.append(" color: ").append(toIndentedString(color)).append("\n");
sb.append(" breed: ").append(toIndentedString(breed)).append("\n");
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).append("\n");
sb.append("}");
return sb.toString();
@ -161,7 +161,7 @@ public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf {
static {
// a set of all properties/fields (JSON key names)
openapiFields = new HashSet<String>();
openapiFields.add("color");
openapiFields.add("breed");
// a set of required properties/fields (JSON key names)
openapiRequiredFields = new HashSet<String>();
@ -181,8 +181,8 @@ public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf {
throw new IllegalArgumentException(String.format("The required field(s) %s in ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf is not found in the empty JSON string", ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf.openapiRequiredFields.toString()));
}
}
if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) {
throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString()));
if ((jsonObj.get("breed") != null && !jsonObj.get("breed").isJsonNull()) && !jsonObj.get("breed").isJsonPrimitive()) {
throw new IllegalArgumentException(String.format("Expected the field `breed` to be a primitive type in the JSON string but got `%s`", jsonObj.get("breed").toString()));
}
}

View File

@ -0,0 +1,273 @@
/*
* OpenAPI Petstore
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package org.openapitools.client.model;
import java.util.Objects;
import java.util.Arrays;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.openapitools.client.JSON;
/**
* ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
*/
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 {
public static final String SERIALIZED_NAME_COLOR = "color";
@SerializedName(SERIALIZED_NAME_COLOR)
private String color;
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1() {
}
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 color(String color) {
this.color = color;
return this;
}
/**
* Get color
* @return color
**/
@javax.annotation.Nullable
@ApiModelProperty(value = "")
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
/**
* A container for additional, undeclared properties.
* This is a holder for any undeclared properties as specified with
* the 'additionalProperties' keyword in the OAS document.
*/
private Map<String, Object> additionalProperties;
/**
* Set the additional (undeclared) property with the specified name and value.
* If the property does not already exist, create it otherwise replace it.
*/
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 putAdditionalProperty(String key, Object value) {
if (this.additionalProperties == null) {
this.additionalProperties = new HashMap<String, Object>();
}
this.additionalProperties.put(key, value);
return this;
}
/**
* Return the additional (undeclared) property.
*/
public Map<String, Object> getAdditionalProperties() {
return additionalProperties;
}
/**
* Return the additional (undeclared) property with the specified name.
*/
public Object getAdditionalProperty(String key) {
if (this.additionalProperties == null) {
return null;
}
return this.additionalProperties.get(key);
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 = (ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1) o;
return Objects.equals(this.color, arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.color)&&
Objects.equals(this.additionalProperties, arrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.additionalProperties);
}
@Override
public int hashCode() {
return Objects.hash(color, additionalProperties);
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 {\n");
sb.append(" color: ").append(toIndentedString(color)).append("\n");
sb.append(" additionalProperties: ").append(toIndentedString(additionalProperties)).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 ");
}
public static HashSet<String> openapiFields;
public static HashSet<String> openapiRequiredFields;
static {
// a set of all properties/fields (JSON key names)
openapiFields = new HashSet<String>();
openapiFields.add("color");
// a set of required properties/fields (JSON key names)
openapiRequiredFields = new HashSet<String>();
}
/**
* Validates the JSON Object and throws an exception if issues found
*
* @param jsonObj JSON Object
* @throws IOException if the JSON Object is invalid with respect to ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
*/
public static void validateJsonObject(JsonObject jsonObj) throws IOException {
if (jsonObj == null) {
if (ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.openapiRequiredFields.isEmpty()) {
return;
} else { // has required fields
throw new IllegalArgumentException(String.format("The required field(s) %s in ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 is not found in the empty JSON string", ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.openapiRequiredFields.toString()));
}
}
if ((jsonObj.get("color") != null && !jsonObj.get("color").isJsonNull()) && !jsonObj.get("color").isJsonPrimitive()) {
throw new IllegalArgumentException(String.format("Expected the field `color` to be a primitive type in the JSON string but got `%s`", jsonObj.get("color").toString()));
}
}
public static class CustomTypeAdapterFactory implements TypeAdapterFactory {
@SuppressWarnings("unchecked")
@Override
public <T> TypeAdapter<T> create(Gson gson, TypeToken<T> type) {
if (!ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.class.isAssignableFrom(type.getRawType())) {
return null; // this class only serializes 'ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1' and its subtypes
}
final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
final TypeAdapter<ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1> thisAdapter
= gson.getDelegateAdapter(this, TypeToken.get(ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.class));
return (TypeAdapter<T>) new TypeAdapter<ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1>() {
@Override
public void write(JsonWriter out, ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 value) throws IOException {
JsonObject obj = thisAdapter.toJsonTree(value).getAsJsonObject();
obj.remove("additionalProperties");
// serialize additonal properties
if (value.getAdditionalProperties() != null) {
for (Map.Entry<String, Object> entry : value.getAdditionalProperties().entrySet()) {
if (entry.getValue() instanceof String)
obj.addProperty(entry.getKey(), (String) entry.getValue());
else if (entry.getValue() instanceof Number)
obj.addProperty(entry.getKey(), (Number) entry.getValue());
else if (entry.getValue() instanceof Boolean)
obj.addProperty(entry.getKey(), (Boolean) entry.getValue());
else if (entry.getValue() instanceof Character)
obj.addProperty(entry.getKey(), (Character) entry.getValue());
else {
obj.add(entry.getKey(), gson.toJsonTree(entry.getValue()).getAsJsonObject());
}
}
}
elementAdapter.write(out, obj);
}
@Override
public ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 read(JsonReader in) throws IOException {
JsonObject jsonObj = elementAdapter.read(in).getAsJsonObject();
validateJsonObject(jsonObj);
// store additional fields in the deserialized instance
ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 instance = thisAdapter.fromJsonTree(jsonObj);
for (Map.Entry<String, JsonElement> entry : jsonObj.entrySet()) {
if (!openapiFields.contains(entry.getKey())) {
if (entry.getValue().isJsonPrimitive()) { // primitive type
if (entry.getValue().getAsJsonPrimitive().isString())
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsString());
else if (entry.getValue().getAsJsonPrimitive().isNumber())
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsNumber());
else if (entry.getValue().getAsJsonPrimitive().isBoolean())
instance.putAdditionalProperty(entry.getKey(), entry.getValue().getAsBoolean());
else
throw new IllegalArgumentException(String.format("The field `%s` has unknown primitive type. Value: %s", entry.getKey(), entry.getValue().toString()));
} else { // non-primitive type
instance.putAdditionalProperty(entry.getKey(), gson.fromJson(entry.getValue(), HashMap.class));
}
}
}
return instance;
}
}.nullSafe();
}
}
/**
* Create an instance of ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 given an JSON string
*
* @param jsonString JSON string
* @return An instance of ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
* @throws IOException if the JSON string is invalid with respect to ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
*/
public static ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 fromJson(String jsonString) throws IOException {
return JSON.getGson().fromJson(jsonString, ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1.class);
}
/**
* Convert an instance of ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 to an JSON string
*
* @return JSON string
*/
public String toJson() {
return JSON.getGson().toJson(this);
}
}

View File

@ -0,0 +1,50 @@
/*
* OpenAPI Petstore
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
*
* The version of the OpenAPI document: 1.0.0
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package org.openapitools.client.model;
import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
/**
* Model tests for ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
*/
public class ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1Test {
private final ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1 model = new ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1();
/**
* Model tests for ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
*/
@Test
public void testArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1() {
// TODO: test ArrayOfInlineAllOfArrayAllofDogPropertyInnerAllOf1
}
/**
* Test the property 'color'
*/
@Test
public void colorTest() {
// TODO: test color
}
}

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2164,11 +2164,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2179,6 +2181,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2132,11 +2132,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2126,11 +2126,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
NullableAllOf_child:
allOf:
- $ref: '#/components/schemas/NullableAllOfChild'
@ -2141,6 +2143,7 @@ components:
description: A discriminator value
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -48,9 +48,11 @@ components:
prop1:
type: string
type: object
example: null
MySchemaName___Characters_allOf:
properties:
prop2:
type: string
type: object
example: null

View File

@ -2286,11 +2286,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
ChildCat_allOf:
properties:
name:
@ -2302,6 +2304,7 @@ components:
type: string
x-enum-as-string: true
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2850,7 +2850,8 @@
"type" : "string"
}
},
"type" : "object"
"type" : "object",
"example" : null
},
"Cat_allOf" : {
"properties" : {
@ -2858,7 +2859,8 @@
"type" : "boolean"
}
},
"type" : "object"
"type" : "object",
"example" : null
},
"BigCat_allOf" : {
"properties" : {
@ -2867,7 +2869,8 @@
"type" : "string"
}
},
"type" : "object"
"type" : "object",
"example" : null
}
},
"securitySchemes" : {

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -459,11 +459,9 @@ paths:
items:
$ref: '#/components/schemas/StringObject'
type: array
explode: true
in: query
name: list-of-strings
required: false
style: form
responses:
"200":
description: Success
@ -685,12 +683,14 @@ components:
- FOO
- BAR
type: string
example: null
_12345AnyOfObject_anyOf:
enum:
- FOO
- BAR
- '*'
type: string
example: null
securitySchemes:
authScheme:
flows:

View File

@ -1576,11 +1576,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2232,11 +2232,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2232,11 +2232,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2232,11 +2232,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2232,11 +2232,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows:

View File

@ -2238,11 +2238,13 @@ components:
breed:
type: string
type: object
example: null
Cat_allOf:
properties:
declawed:
type: boolean
type: object
example: null
BigCat_allOf:
properties:
kind:
@ -2253,6 +2255,7 @@ components:
- jaguars
type: string
type: object
example: null
securitySchemes:
petstore_auth:
flows: