openapi: 3.0.0 info: title: 'Swagger Petstore' description: "This is a sample Petstore server. You can find\nout more about Swagger at\n[http://swagger.io](http://swagger.io) or on\n[irc.freenode.net, #swagger](http://swagger.io/irc/)." 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' version: 1.0.0 servers: - url: 'https://virtserver.swaggerhub.com/swagger/Petstore/1.0.0' description: 'SwaggerHUB API Mocking' 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' 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' /pet/findByStatus: get: tags: - pet summary: 'Finds Pets by status' description: 'Multiple status values can be provided with comma separated string' operationId: findPetsByStatus parameters: - name: status in: query description: 'Status values that needed to be considered for filter' required: true explode: true schema: type: array items: type: string enum: - available - pending - sold default: available responses: '200': description: 'successful operation' content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' application/xml: schema: type: array items: $ref: '#/components/schemas/Pet' '400': description: 'Invalid status value' deprecated: true security: - petstore_auth: - 'write:pets' - 'read:pets' /pet/findByTags: get: tags: - pet summary: 'Finds Pets by tags' description: 'Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.' operationId: findByTags parameters: - name: tags in: query description: 'Tags to filter by' required: true explode: true schema: type: array items: type: string responses: '200': description: 'successful operation' content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' application/xml: schema: type: array items: $ref: '#/components/schemas/Pet' '400': description: 'Invalid status 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/json: schema: $ref: '#/components/schemas/Pet' application/xml: schema: $ref: '#/components/schemas/Pet' '400': description: 'Invalid ID supplier' '404': description: 'Pet not found' security: - api_key: [] 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 schema: type: integer format: int64 requestBody: description: 'Input data format' content: application/x-www-form-urlencoded: schema: properties: name: description: 'Updated name of the pet' type: string status: description: 'Updated status of the pet' type: string type: object responses: '405': description: 'Invalid input' security: - petstore_auth: - 'write:pets' - 'read:pets' delete: tags: - pet summary: 'Deletes a pet' 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 ID supplied' '404': description: 'Pet not found' security: - petstore_auth: - 'write:pets' - 'read:pets' '/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 schema: type: integer format: int64 example: 1 requestBody: description: 'Upload images request body' content: application/octet-stream: schema: type: string format: binary responses: '200': description: 'successful operation' content: application/json: schema: $ref: '#/components/schemas/ApiResponse' security: - petstore_auth: - 'write:pets' - 'read:pets' /store: 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: additionalProperties: type: integer format: int32 security: - api_key: [] /store/order: post: tags: - store summary: 'Place an order for a pet' operationId: placeOrder requestBody: description: 'order placed for purchasing th pet' required: true content: application/json: schema: $ref: '#/components/schemas/Order' responses: '200': description: 'successful operation' content: application/json: schema: $ref: '#/components/schemas/Order' application/xml: schema: $ref: '#/components/schemas/Order' '/store/order/{orderId}': get: tags: - store description: 'For valid response try integer IDs with value >= 1 and <= 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 maximum: 10 minimum: 1 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 positive integer value. Negative or non-integer values 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 minimum: 1 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 requestBody: description: 'Create user object' required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: default: description: 'successful operation' /user/createWithArray: post: tags: - user summary: 'Create list of users with given input array' operationId: createUsersWithListInput requestBody: $ref: '#/components/requestBodies/UserArray' responses: default: description: 'successful operation' /user/login: get: tags: - user summary: 'Logs user into system' operationId: loginUser parameters: - name: username in: query description: 'The user name for login' required: true schema: type: string - name: password in: query required: true 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 token expires' schema: type: string format: datetime 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' operationId: logoutUser responses: default: description: 'successful operation' '/user/{username}': get: summary: 'Get user by user name' operationId: getUserByName parameters: - name: username in: path 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: summary: 'Updated user' description: 'This can pnly be done by the logged in user.' operationId: updateUser parameters: - name: username in: path description: 'name that to be updated' required: true schema: type: string requestBody: description: 'Updated user object' required: true content: application/json: schema: $ref: '#/components/schemas/User' responses: '400': description: 'Invalid user supplied' '404': description: 'User not found' delete: 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' components: schemas: ApiResponse: title: 'Api response' description: 'Api response' properties: code: title: Code description: Code type: integer format: int32 message: title: Message description: Message type: string type: object Category: title: 'Pets Category' description: 'Pets Category' properties: id: title: ID description: ID type: integer format: int64 name: title: 'Category name' description: 'Category name' type: string type: object xml: name: Category Order: title: 'Order model' description: 'Order model' properties: id: title: ID description: ID type: integer format: int64 default: 1 petId: title: 'Pet ID' description: 'Pet ID' type: integer format: int64 default: 1 quantity: title: Quantity description: Quantity type: integer format: in32 default: 12 shipDate: title: 'Shipping date' description: 'Shipping date' type: string format: datetime default: '2017-02-02 18:31:45' status: title: 'Order status' description: 'Order status' type: string default: placed enum: - placed - approved - delivered complete: title: 'Complete status' description: 'Complete status' type: boolean format: int64 default: 'false' type: object Pet: title: 'Pet model' description: 'Pet model' required: - name - photoUrls properties: id: title: ID description: ID type: integer format: int64 category: $ref: '#/components/schemas/Category' name: title: 'Pet name' description: 'Pet name' type: integer format: int64 photoUrls: title: 'Photo urls' description: 'Photo urls' type: array items: type: string default: images/image-1.png xml: name: photoUrl wrapped: true tags: title: 'Pet tags' description: 'Pet tags' type: array items: $ref: '#/components/schemas/Tag' xml: name: tag wrapped: true type: object xml: name: Pet Tag: title: Tag description: Tag properties: id: title: ID description: ID type: integer format: int64 name: title: Name description: Name type: string type: object xml: name: Tag User: title: 'User model' description: 'User model' properties: id: title: ID description: ID type: integer format: int64 username: title: Username description: Username type: string firstName: title: 'First name' description: 'First name' type: string lastName: title: 'Last name' description: 'Last name' type: string email: title: Email description: Email type: string format: email password: title: Password description: Password type: string format: int64 maximum: 255 phone: title: Phone description: Phone type: string format: msisdn userStatus: title: 'User status' description: 'User status' type: integer format: int32 type: object requestBodies: Pet: description: 'Pet object that needs to be added to the store' required: true content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' UserArray: description: 'List of user object' required: true content: application/json: schema: type: array items: $ref: '#/components/schemas/User' securitySchemes: petstore_auth: type: oauth2 flows: implicit: authorizationUrl: 'http://petstore.swagger.io/oauth/dialog' scopes: 'write:pets': 'modify pets in your account' 'read:pets': 'read your pets' api_key: type: apiKey name: api_key in: header tags: - name: pet description: 'Everything about your Pets' externalDocs: description: 'Find out more' url: 'http://swagger.io' - name: store description: 'Access to Petstore orders' - name: user description: 'Operations about user' externalDocs: description: 'Find out more about store' url: 'http://swagger.io' externalDocs: description: 'Find out more about Swagger' url: 'http://swagger.io'