diff --git a/java/swagger-petstore/src/main/java/io/swagger/petstore/utils/HandleAuthUrlProcessor.java b/java/swagger-petstore/src/main/java/io/swagger/petstore/utils/HandleAuthUrlProcessor.java index 71afc5b9..378bf8d6 100644 --- a/java/swagger-petstore/src/main/java/io/swagger/petstore/utils/HandleAuthUrlProcessor.java +++ b/java/swagger-petstore/src/main/java/io/swagger/petstore/utils/HandleAuthUrlProcessor.java @@ -1,13 +1,44 @@ package io.swagger.petstore.utils; import io.swagger.oas.inflector.config.OpenAPIProcessor; +import io.swagger.v3.core.util.Yaml; import io.swagger.v3.oas.models.OpenAPI; import org.apache.commons.lang3.StringUtils; +import java.io.File; +import java.net.URL; + public class HandleAuthUrlProcessor implements OpenAPIProcessor { @Override public void process(OpenAPI openAPI) { + OpenAPI petstoreOpenAPI = null; + try { + // try to load from resources + URL url = HandleAuthUrlProcessor.class.getClassLoader().getResource("openapi-full.yaml"); + if(url != null) { + try { + petstoreOpenAPI = Yaml.mapper().readValue(new File(url.getFile()), OpenAPI.class); + } catch (Exception e) { + // continue + } + } + } catch (Exception e) { + // continue + } + + if (petstoreOpenAPI != null) { + openAPI + .components(petstoreOpenAPI.getComponents()) + .extensions(petstoreOpenAPI.getExtensions()) + .info(petstoreOpenAPI.getInfo()) + .paths(petstoreOpenAPI.getPaths()) + .security(petstoreOpenAPI.getSecurity()) + .externalDocs(petstoreOpenAPI.getExternalDocs()) + .servers(petstoreOpenAPI.getServers()) + .tags(petstoreOpenAPI.getTags()); + } + String oauthHost = System.getenv("SWAGGER_OAUTH_HOST"); if (StringUtils.isBlank(oauthHost)) { return; diff --git a/java/swagger-petstore/src/main/webapp/openapi-full.yaml b/java/swagger-petstore/src/main/resources/openapi-full.yaml similarity index 75% rename from java/swagger-petstore/src/main/webapp/openapi-full.yaml rename to java/swagger-petstore/src/main/resources/openapi-full.yaml index 4e3f0758..aa4bb114 100644 --- a/java/swagger-petstore/src/main/webapp/openapi-full.yaml +++ b/java/swagger-petstore/src/main/resources/openapi-full.yaml @@ -16,23 +16,23 @@ info: name: Apache 2.0 url: 'http://www.apache.org/licenses/LICENSE-2.0.html' tags: -- name: pet - description: Everything about your Pets - externalDocs: - description: Find out more - url: 'http://swagger.io' -- name: store - description: Operations about user -- name: user - description: Access to Petstore orders - externalDocs: - description: Find out more about our store - url: 'http://swagger.io' + - name: pet + description: Everything about your Pets + externalDocs: + description: Find out more + url: 'http://swagger.io' + - name: store + description: Operations about user + - name: user + description: Access to Petstore orders + externalDocs: + description: Find out more about our store + url: 'http://swagger.io' paths: /pet: post: tags: - - pet + - pet summary: Add a new pet to the store description: Add a new pet to the store operationId: addPet @@ -49,9 +49,9 @@ paths: '405': description: Invalid input security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' requestBody: description: Create a new pet in the store required: true @@ -59,9 +59,15 @@ paths: application/json: schema: $ref: '#/components/schemas/Pet' + application/xml: + schema: + $ref: '#/components/schemas/Pet' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Pet' put: tags: - - pet + - pet summary: Update an existing pet description: Update an existing pet by Id operationId: updatePet @@ -82,9 +88,9 @@ paths: '405': description: Validation exception security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' requestBody: description: Update an existent pet in the store required: true @@ -101,23 +107,23 @@ paths: /pet/findByStatus: get: tags: - - pet + - 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: false - explode: true - schema: - type: string - enum: - - available - - pending - - sold - default: available + - name: status + in: query + description: Status values that need to be considered for filter + required: false + explode: true + schema: + type: string + enum: + - available + - pending + - sold + default: available responses: '200': description: successful operation @@ -135,28 +141,28 @@ paths: '400': description: Invalid status value security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' /pet/findByTags: get: tags: - - pet + - 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: false - explode: true - schema: - type: array - items: - type: string + - name: tags + in: query + description: Tags to filter by + required: false + explode: true + schema: + type: array + items: + type: string responses: '200': description: successful operation @@ -174,24 +180,24 @@ paths: '400': description: Invalid tag value security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' '/pet/{petId}': get: tags: - - pet + - 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 + - name: petId + in: path + description: ID of pet to return + required: true + schema: + type: integer + format: int64 responses: '200': description: successful operation @@ -207,89 +213,89 @@ paths: '404': description: Pet not found security: - - api_key: [] - - petstore_auth: - - 'write:pets' - - 'read:pets' + - api_key: [] + - petstore_auth: + - 'write:pets' + - 'read:pets' post: tags: - - pet + - 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 - - name: name - in: query - description: Name of pet that needs to be updated - schema: - type: string - - name: status - in: query - description: Status of pet that needs to be updated - schema: - type: string + - name: petId + in: path + description: ID of pet that needs to be updated + required: true + schema: + type: integer + format: int64 + - name: name + in: query + description: Name of pet that needs to be updated + schema: + type: string + - name: status + in: query + description: Status of pet that needs to be updated + schema: + type: string responses: '405': description: Invalid input security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' delete: tags: - - pet + - pet summary: Deletes a pet description: '' operationId: deletePet parameters: - - name: api_key - in: header - description: '' - required: false - schema: - type: string - - name: petId - in: path - description: Pet id to delete - required: true - schema: - type: integer - format: int64 + - name: api_key + in: header + description: '' + 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' + - petstore_auth: + - 'write:pets' + - 'read:pets' '/pet/{petId}/uploadImage': post: tags: - - pet + - 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 - - name: additionalMetadata - in: query - description: Additional Metadata - required: false - schema: - type: string + - name: petId + in: path + description: ID of pet to update + required: true + schema: + type: integer + format: int64 + - name: additionalMetadata + in: query + description: Additional Metadata + required: false + schema: + type: string responses: '200': description: successful operation @@ -298,9 +304,9 @@ paths: schema: $ref: '#/components/schemas/ApiResponse' security: - - petstore_auth: - - 'write:pets' - - 'read:pets' + - petstore_auth: + - 'write:pets' + - 'read:pets' requestBody: content: application/octet-stream: @@ -310,7 +316,7 @@ paths: /store/inventory: get: tags: - - store + - store summary: Returns pet inventories by status description: Returns a map of status codes to quantities operationId: getInventory @@ -325,11 +331,11 @@ paths: type: integer format: int32 security: - - api_key: [] + - api_key: [] /store/order: post: tags: - - store + - store summary: Place an order for a pet description: Place a new order in the store operationId: placeOrder @@ -356,20 +362,20 @@ paths: '/store/order/{orderId}': get: tags: - - store + - 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 order that needs to be fetched - required: true - schema: - type: integer - format: int64 + - name: orderId + in: path + description: ID of order that needs to be fetched + required: true + schema: + type: integer + format: int64 responses: '200': description: successful operation @@ -386,20 +392,20 @@ paths: description: Order not found delete: tags: - - store + - 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: integer - format: int64 + - name: orderId + in: path + description: ID of the order that needs to be deleted + required: true + schema: + type: integer + format: int64 responses: '400': description: Invalid ID supplied @@ -408,7 +414,7 @@ paths: /user: post: tags: - - user + - user summary: Create user description: This can only be done by the logged in user. operationId: createUser @@ -437,7 +443,7 @@ paths: /user/createWithList: post: tags: - - user + - user summary: Creates list of users with given input array description: 'Creates list of users with given input array' operationId: createUsersWithListInput @@ -463,23 +469,23 @@ paths: /user/login: get: tags: - - user + - user summary: Logs user into the system description: '' operationId: loginUser parameters: - - name: username - in: query - description: The user name for login - required: false - schema: - type: string - - name: password - in: query - description: The password for login in clear text - required: false - schema: - type: string + - name: username + in: query + description: The user name for login + required: false + schema: + type: string + - name: password + in: query + description: The password for login in clear text + required: false + schema: + type: string responses: '200': description: successful operation @@ -506,7 +512,7 @@ paths: /user/logout: get: tags: - - user + - user summary: Logs out current logged in user session description: '' operationId: logoutUser @@ -516,17 +522,17 @@ paths: '/user/{username}': get: tags: - - user + - 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 + - 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 @@ -543,17 +549,17 @@ paths: description: User not found put: tags: - - user + - user summary: Update 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 + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string responses: default: description: successful operation @@ -563,25 +569,25 @@ paths: application/json: schema: $ref: '#/components/schemas/User' - application/xml: - schema: - $ref: '#/components/schemas/User' - application/x-www-form-urlencoded: - schema: - $ref: '#/components/schemas/User' + application/xml: + schema: + $ref: '#/components/schemas/User' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/User' delete: tags: - - user + - 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 + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string responses: '400': description: Invalid username supplied @@ -613,9 +619,9 @@ components: type: string description: Order Status enum: - - placed - - approved - - delivered + - placed + - approved + - delivered example: approved complete: type: boolean @@ -704,8 +710,8 @@ components: type: object Pet: required: - - name - - photoUrls + - name + - photoUrls properties: id: type: integer @@ -735,9 +741,9 @@ components: type: string description: pet status in the store enum: - - available - - pending - - sold + - available + - pending + - sold xml: name: pet type: object diff --git a/java/swagger-petstore/src/main/webapp/openapi-basic.yaml b/java/swagger-petstore/src/main/webapp/openapi-basic.yaml deleted file mode 100644 index 493ca38d..00000000 --- a/java/swagger-petstore/src/main/webapp/openapi-basic.yaml +++ /dev/null @@ -1,762 +0,0 @@ -openapi: 3.0.1 -servers: - - url: /api/v3 -info: - description: >- - This is a sample server Petstore server. You can find out more about - Swagger at http://swagger.io or on - irc.freenode.net, #swagger. For this sample, you can use the api key - "special-key" to test the authorization filters - version: 1.0.2-SNAPSHOT - title: Swagger Petstore YAML - termsOfService: 'http://swagger.io/terms/' - contact: - email: apiteam@swagger.io - license: - name: Apache 2.0 - url: 'http://www.apache.org/licenses/LICENSE-2.0.html' -tags: -- name: pet - description: Everything about your Pets - externalDocs: - description: Find out more - url: 'http://swagger.io' -- name: store - description: Operations about user -- name: user - description: Access to Petstore orders - externalDocs: - description: Find out more about our store - url: 'http://swagger.io' -paths: - /pet: - post: - tags: - - pet - summary: Add a new pet to the store - description: Add a new pet to the store - 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: - description: Create a new pet in the store - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/Pet' - put: - tags: - - pet - summary: Update an existing pet - description: Update an existing pet by Id - 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: - description: Update an existent pet in the store - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/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: false - explode: true - schema: - 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: - - 'write:pets' - - '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: false - explode: true - 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: - - 'write:pets' - - 'read:pets' - '/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: [] - - petstore_auth: - - 'write:pets' - - 'read:pets' - 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 - - name: name - in: query - description: Name of pet that needs to be updated - schema: - type: string - - name: status - in: query - description: Status of pet that needs to be updated - schema: - type: string - responses: - '405': - description: Invalid input - security: - - petstore_auth: - - 'write:pets' - - 'read:pets' - delete: - tags: - - pet - summary: Deletes a pet - description: '' - operationId: deletePet - parameters: - - name: api_key - in: header - description: '' - 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 - - name: additionalMetadata - in: query - description: Additional Metadata - required: false - schema: - type: string - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/ApiResponse' - security: - - petstore_auth: - - 'write:pets' - - 'read:pets' - requestBody: - content: - application/octet-stream: - schema: - 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: Place a new order in the store - operationId: placeOrder - responses: - '200': - description: successful operation - content: - application/json: - schema: - $ref: '#/components/schemas/Order' - '405': - description: Invalid input - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Order' - '/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 order that needs to be fetched - required: true - schema: - 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 - 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: integer - format: int64 - 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 - content: - application/json: - schema: - $ref: '#/components/schemas/User' - application/xml: - schema: - $ref: '#/components/schemas/User' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/User' - description: Created user object - /user/createWithList: - post: - tags: - - user - summary: Creates list of users with given input array - description: 'Creates list of users with given input array' - operationId: createUsersWithListInput - responses: - '200': - description: Successful operation - content: - application/xml: - schema: - $ref: '#/components/schemas/User' - application/json: - schema: - $ref: '#/components/schemas/User' - default: - description: successful operation - requestBody: - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/User' - /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: false - schema: - type: string - - name: password - in: query - description: The password for login in clear text - required: false - schema: - type: string - responses: - '200': - description: successful operation - headers: - X-Rate-Limit: - description: calls per hour allowed by the user - schema: - type: integer - format: int32 - X-Expires-After: - description: date in UTC when toekn 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 - '/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: Update 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: - default: - description: successful operation - requestBody: - description: Update an existent user in the store - content: - application/json: - schema: - $ref: '#/components/schemas/User' - 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 -externalDocs: - description: Find out more about Swagger - url: 'http://swagger.io' -components: - schemas: - Order: - properties: - id: - type: integer - format: int64 - example: 10 - petId: - type: integer - format: int64 - example: 198772 - quantity: - type: integer - format: int32 - example: 7 - shipDate: - type: string - format: date-time - status: - type: string - description: Order Status - enum: - - placed - - approved - - delivered - example: approved - complete: - type: boolean - xml: - name: order - type: object - Customer: - properties: - id: - type: integer - format: int64 - example: 100000 - username: - type: string - example: fehguy - address: - type: array - items: - $ref: '#/components/schemas/Address' - xml: - wrapped: true - name: addresses - xml: - name: customer - type: object - Address: - properties: - street: - type: string - example: 437 Lytton - city: - type: string - example: Palo Alto - state: - type: string - example: CA - zip: - type: string - example: 94301 - xml: - name: address - type: object - Category: - properties: - id: - type: integer - format: int64 - name: - type: string - xml: - name: category - type: object - User: - 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 - type: object - Tag: - properties: - id: - type: integer - format: int64 - name: - type: string - xml: - name: tag - type: object - Pet: - required: - - name - - photoUrls - properties: - id: - type: integer - format: int64 - name: - type: string - example: doggie - category: - $ref: '#/components/schemas/Category' - photoUrls: - type: array - xml: - wrapped: true - items: - type: string - xml: - name: photoUrl - tags: - type: array - xml: - wrapped: true - items: - $ref: '#/components/schemas/Tag' - xml: - name: tag - status: - type: string - description: pet status in the store - enum: - - available - - pending - - sold - xml: - name: pet - type: object - ApiResponse: - properties: - code: - type: integer - format: int32 - type: - type: string - message: - type: string - xml: - name: '##default' - type: object - requestBodies: - 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 - UserArray: - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/User' - description: List of user object - securitySchemes: - petstore_auth: - type: oauth2 - flows: - implicit: - authorizationUrl: 'https://petstore.swagger.io/oauth/authorize' - scopes: - 'write:pets': modify pets in your account - 'read:pets': read your pets - api_key: - type: apiKey - name: api_key - in: header \ No newline at end of file