| openapi: 3.0.0 | 
 | info: | 
 |   title: OpenAPI Petstore | 
 |   description: This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. For OAuth2 flow, you may use `user` as both username and password when asked to login. | 
 |   license: | 
 |     name: Apache-2.0 | 
 |     url: http://www.apache.org/licenses/LICENSE-2.0.html | 
 |   version: 1.0.0 | 
 | externalDocs: | 
 |   description: Find out more about OpenAPI generator | 
 |   url: https://openapi-generator.tech | 
 | tags: | 
 | - name: pet | 
 |   description: Everything about your Pets | 
 | - name: store | 
 |   description: Access to Petstore orders | 
 | - name: user | 
 |   description: Operations about user | 
 | paths: | 
 |   /pet: | 
 |     put: | 
 |       tags: | 
 |       - pet | 
 |       summary: Update an existing pet | 
 |       operationId: updatePet | 
 |       requestBody: | 
 |         $ref: '#/components/requestBodies/Pet' | 
 |       responses: | 
 |         400: | 
 |           description: Invalid ID supplied | 
 |         404: | 
 |           description: Pet not found | 
 |         405: | 
 |           description: Validation exception | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |       x-contentType: application/json | 
 |     post: | 
 |       tags: | 
 |       - pet | 
 |       summary: Add a new pet to the store | 
 |       operationId: addPet | 
 |       requestBody: | 
 |         $ref: '#/components/requestBodies/Pet' | 
 |       responses: | 
 |         405: | 
 |           description: Invalid input | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |       x-contentType: application/json | 
 |   /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 | 
 |         schema: | 
 |           type: array | 
 |           items: | 
 |             type: string | 
 |             default: available | 
 |             enum: | 
 |             - available | 
 |             - pending | 
 |             - sold | 
 |       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: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |   /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 | 
 |       deprecated: true | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |   /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 | 
 |         style: simple | 
 |         explode: false | 
 |         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: [] | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |     post: | 
 |       tags: | 
 |       - pet | 
 |       summary: Updates a pet in the store with form data | 
 |       operationId: updatePetWithForm | 
 |       parameters: | 
 |       - name: petId | 
 |         in: path | 
 |         description: ID of pet that needs to be updated | 
 |         required: true | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: integer | 
 |           format: int64 | 
 |       requestBody: | 
 |         content: | 
 |           application/x-www-form-urlencoded: | 
 |             schema: | 
 |               $ref: '#/components/schemas/body' | 
 |       responses: | 
 |         405: | 
 |           description: Invalid input | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |       x-contentType: application/x-www-form-urlencoded | 
 |     delete: | 
 |       tags: | 
 |       - pet | 
 |       summary: Deletes a pet | 
 |       operationId: deletePet | 
 |       parameters: | 
 |       - name: api_key | 
 |         in: header | 
 |         required: false | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: string | 
 |       - name: petId | 
 |         in: path | 
 |         description: Pet id to delete | 
 |         required: true | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: integer | 
 |           format: int64 | 
 |       responses: | 
 |         400: | 
 |           description: Invalid pet value | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |   /pet/{petId}/uploadImage: | 
 |     post: | 
 |       tags: | 
 |       - pet | 
 |       summary: uploads an image | 
 |       operationId: uploadFile | 
 |       parameters: | 
 |       - name: petId | 
 |         in: path | 
 |         description: ID of pet to update | 
 |         required: true | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: integer | 
 |           format: int64 | 
 |       requestBody: | 
 |         content: | 
 |           multipart/form-data: | 
 |             schema: | 
 |               $ref: '#/components/schemas/body_1' | 
 |       responses: | 
 |         200: | 
 |           description: successful operation | 
 |           content: | 
 |             application/json: | 
 |               schema: | 
 |                 $ref: '#/components/schemas/ApiResponse' | 
 |       security: | 
 |       - petstore_auth: | 
 |         - write:pets | 
 |         - read:pets | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: pet | 
 |       x-contentType: multipart/form-data | 
 |   /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: [] | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: store | 
 |   /store/order: | 
 |     post: | 
 |       tags: | 
 |       - store | 
 |       summary: Place an order for a pet | 
 |       operationId: placeOrder | 
 |       requestBody: | 
 |         description: order placed for purchasing the pet | 
 |         content: | 
 |           application/json: | 
 |             schema: | 
 |               $ref: '#/components/schemas/Order' | 
 |         required: true | 
 |       responses: | 
 |         200: | 
 |           description: successful operation | 
 |           content: | 
 |             application/xml: | 
 |               schema: | 
 |                 $ref: '#/components/schemas/Order' | 
 |             application/json: | 
 |               schema: | 
 |                 $ref: '#/components/schemas/Order' | 
 |         400: | 
 |           description: Invalid Order | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: store | 
 |       x-contentType: application/json | 
 |   /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 | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           maximum: 5 | 
 |           minimum: 1 | 
 |           type: integer | 
 |           format: int64 | 
 |       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 | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: store | 
 |     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 | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: string | 
 |       responses: | 
 |         400: | 
 |           description: Invalid ID supplied | 
 |         404: | 
 |           description: Order not found | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: store | 
 |   /user: | 
 |     post: | 
 |       tags: | 
 |       - user | 
 |       summary: Create user | 
 |       description: This can only be done by the logged in user. | 
 |       operationId: createUser | 
 |       requestBody: | 
 |         description: Created user object | 
 |         content: | 
 |           application/json: | 
 |             schema: | 
 |               $ref: '#/components/schemas/User' | 
 |         required: true | 
 |       responses: | 
 |         default: | 
 |           description: successful operation | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |       x-contentType: application/json | 
 |   /user/createWithArray: | 
 |     post: | 
 |       tags: | 
 |       - user | 
 |       summary: Creates list of users with given input array | 
 |       operationId: createUsersWithArrayInput | 
 |       requestBody: | 
 |         $ref: '#/components/requestBodies/UserArray' | 
 |       responses: | 
 |         default: | 
 |           description: successful operation | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |       x-contentType: application/json | 
 |   /user/createWithList: | 
 |     post: | 
 |       tags: | 
 |       - user | 
 |       summary: Creates list of users with given input array | 
 |       operationId: createUsersWithListInput | 
 |       requestBody: | 
 |         $ref: '#/components/requestBodies/UserArray' | 
 |       responses: | 
 |         default: | 
 |           description: successful operation | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |       x-contentType: application/json | 
 |   /user/login: | 
 |     get: | 
 |       tags: | 
 |       - user | 
 |       summary: Logs user into the system | 
 |       operationId: loginUser | 
 |       parameters: | 
 |       - name: username | 
 |         in: query | 
 |         description: The user name for login | 
 |         required: true | 
 |         style: form | 
 |         explode: true | 
 |         schema: | 
 |           type: string | 
 |       - name: password | 
 |         in: query | 
 |         description: The password for login in clear text | 
 |         required: true | 
 |         style: form | 
 |         explode: true | 
 |         schema: | 
 |           type: string | 
 |       responses: | 
 |         200: | 
 |           description: successful operation | 
 |           headers: | 
 |             X-Rate-Limit: | 
 |               description: calls per hour allowed by the user | 
 |               style: simple | 
 |               explode: false | 
 |               schema: | 
 |                 type: integer | 
 |                 format: int32 | 
 |             X-Expires-After: | 
 |               description: date in UTC when toekn expires | 
 |               style: simple | 
 |               explode: false | 
 |               schema: | 
 |                 type: string | 
 |                 format: date-time | 
 |           content: | 
 |             application/xml: | 
 |               schema: | 
 |                 type: string | 
 |             application/json: | 
 |               schema: | 
 |                 type: string | 
 |         400: | 
 |           description: Invalid username/password supplied | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |   /user/logout: | 
 |     get: | 
 |       tags: | 
 |       - user | 
 |       summary: Logs out current logged in user session | 
 |       operationId: logoutUser | 
 |       responses: | 
 |         default: | 
 |           description: successful operation | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |   /user/{username}: | 
 |     get: | 
 |       tags: | 
 |       - user | 
 |       summary: Get user by user name | 
 |       operationId: getUserByName | 
 |       parameters: | 
 |       - name: username | 
 |         in: path | 
 |         description: The name that needs to be fetched. Use user1 for testing. | 
 |         required: true | 
 |         style: simple | 
 |         explode: false | 
 |         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 | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |     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 | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: string | 
 |       requestBody: | 
 |         description: Updated user object | 
 |         content: | 
 |           application/json: | 
 |             schema: | 
 |               $ref: '#/components/schemas/User' | 
 |         required: true | 
 |       responses: | 
 |         400: | 
 |           description: Invalid user supplied | 
 |         404: | 
 |           description: User not found | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 |       x-contentType: application/json | 
 |     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 | 
 |         style: simple | 
 |         explode: false | 
 |         schema: | 
 |           type: string | 
 |       responses: | 
 |         400: | 
 |           description: Invalid username supplied | 
 |         404: | 
 |           description: User not found | 
 |       x-accepts: application/json | 
 |       x-tags: | 
 |       - tag: user | 
 | components: | 
 |   schemas: | 
 |     Order: | 
 |       title: Pet Order | 
 |       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 | 
 |       description: An order for a pets from the pet store | 
 |       example: | 
 |         petId: 6 | 
 |         quantity: 1 | 
 |         id: 0 | 
 |         shipDate: 2000-01-23T04:56:07.000+00:00 | 
 |         complete: false | 
 |         status: placed | 
 |       xml: | 
 |         name: Order | 
 |     Category: | 
 |       title: Pet category | 
 |       type: object | 
 |       properties: | 
 |         id: | 
 |           type: integer | 
 |           format: int64 | 
 |         name: | 
 |           type: string | 
 |       description: A category for a pet | 
 |       example: | 
 |         name: name | 
 |         id: 6 | 
 |       xml: | 
 |         name: Category | 
 |     User: | 
 |       title: a User | 
 |       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 | 
 |           description: User Status | 
 |           format: int32 | 
 |       description: A User who is purchasing from the pet store | 
 |       example: | 
 |         firstName: firstName | 
 |         lastName: lastName | 
 |         password: password | 
 |         userStatus: 6 | 
 |         phone: phone | 
 |         id: 0 | 
 |         email: email | 
 |         username: username | 
 |       xml: | 
 |         name: User | 
 |     Tag: | 
 |       title: Pet Tag | 
 |       type: object | 
 |       properties: | 
 |         id: | 
 |           type: integer | 
 |           format: int64 | 
 |         name: | 
 |           type: string | 
 |       description: A tag for a pet | 
 |       example: | 
 |         name: name | 
 |         id: 1 | 
 |       xml: | 
 |         name: Tag | 
 |     Pet: | 
 |       title: a Pet | 
 |       required: | 
 |       - name | 
 |       - photoUrls | 
 |       type: object | 
 |       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 | 
 |           enum: | 
 |           - available | 
 |           - pending | 
 |           - sold | 
 |       description: A pet for sale in the pet store | 
 |       example: | 
 |         photoUrls: | 
 |         - photoUrls | 
 |         - photoUrls | 
 |         name: doggie | 
 |         id: 0 | 
 |         category: | 
 |           name: name | 
 |           id: 6 | 
 |         tags: | 
 |         - name: name | 
 |           id: 1 | 
 |         - name: name | 
 |           id: 1 | 
 |         status: available | 
 |       xml: | 
 |         name: Pet | 
 |     ApiResponse: | 
 |       title: An uploaded response | 
 |       type: object | 
 |       properties: | 
 |         code: | 
 |           type: integer | 
 |           format: int32 | 
 |         type: | 
 |           type: string | 
 |         message: | 
 |           type: string | 
 |       description: Describes the result of uploading an image resource | 
 |       example: | 
 |         code: 0 | 
 |         type: type | 
 |         message: message | 
 |     body: | 
 |       type: object | 
 |       properties: | 
 |         name: | 
 |           type: string | 
 |           description: Updated name of the pet | 
 |         status: | 
 |           type: string | 
 |           description: Updated status of the pet | 
 |     body_1: | 
 |       type: object | 
 |       properties: | 
 |         additionalMetadata: | 
 |           type: string | 
 |           description: Additional data to pass to server | 
 |         file: | 
 |           type: string | 
 |           description: file to upload | 
 |           format: binary | 
 |   requestBodies: | 
 |     UserArray: | 
 |       description: List of user object | 
 |       content: | 
 |         application/json: | 
 |           schema: | 
 |             type: array | 
 |             items: | 
 |               $ref: '#/components/schemas/User' | 
 |       required: true | 
 |     Pet: | 
 |       description: Pet object that needs to be added to the store | 
 |       content: | 
 |         application/json: | 
 |           schema: | 
 |             $ref: '#/components/schemas/Pet' | 
 |         application/xml: | 
 |           schema: | 
 |             $ref: '#/components/schemas/Pet' | 
 |       required: true | 
 |   securitySchemes: | 
 |     petstore_auth: | 
 |       type: oauth2 | 
 |       flows: | 
 |         implicit: | 
 |           authorizationUrl: /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 |