Created
March 22, 2017 11:52
-
-
Save kevprice83/cddeeadc64111aacc896182538552fca to your computer and use it in GitHub Desktop.
Petstore Swagger spec
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"swagger": "2.0", | |
"schemes": [ | |
"http", | |
"https" | |
], | |
"host": "petstore.swagger.io", | |
"basePath": "/v2", | |
"info": { | |
"description": "This is a sample server Petstore server.\nYou can find out more about Swagger at\n[http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).\nFor this sample, you can use the api key `special-key` to test the authorization filters.\n# Introduction\nThis API is documented in **OpenAPI format** and is based on\n[Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.\nIt was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)\ntool and [ReDoc](https://github.com/Rebilly/ReDoc) documentation. In addition to standard\nOpenAPI syntax we use a few [vendor extensions](https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md).\n# OpenAPI Specification\nThis API is documented in **OpenAPI format** and is based on\n[Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.\nIt was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)\ntool and [ReDoc](https://github.com/Rebilly/ReDoc) documentation. In addition to standard\nOpenAPI syntax we use a few [vendor extensions](https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md).\n# Cross-Origin Resource Sharing\nThis API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/).\nAnd that allows cross-domain communication from the browser.\nAll responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.\n# Authentication\nPetstore offers two forms of authentication:\n - API Key\n - OAuth2\nOAuth2 - an open protocol to allow secure authorization in a simple\nand standard method from web, mobile and desktop applications.\n<!-- ReDoc-Inject: <security-definitions> -->\n", | |
"version": "1.0.0", | |
"title": "Swagger Petstore", | |
"termsOfService": "http://swagger.io/terms/", | |
"contact": { | |
"email": "[email protected]" | |
}, | |
"x-logo": { | |
"url": "https://rebilly.github.io/ReDoc/petstore-logo.png" | |
}, | |
"license": { | |
"name": "Apache 2.0", | |
"url": "http://www.apache.org/licenses/LICENSE-2.0.html" | |
} | |
}, | |
"externalDocs": { | |
"description": "Find out how to create Github repo for your OpenAPI spec.", | |
"url": "https://github.com/Rebilly/generator-openapi-repo" | |
}, | |
"tags": [ | |
{ | |
"name": "pet", | |
"description": "Everything about your Pets" | |
}, | |
{ | |
"name": "store", | |
"description": "Access to Petstore orders" | |
}, | |
{ | |
"name": "user", | |
"description": "Operations about user" | |
} | |
], | |
"x-tagGroups": [ | |
{ | |
"name": "General", | |
"tags": [ | |
"pet", | |
"store" | |
] | |
}, | |
{ | |
"name": "User Management", | |
"tags": [ | |
"user" | |
] | |
} | |
], | |
"securityDefinitions": { | |
"petstore_auth": { | |
"description": "Get access to data while protecting your account credentials.\nOAuth2 is also a safer and more secure way to give you access.\n", | |
"type": "oauth2", | |
"authorizationUrl": "http://petstore.swagger.io/api/oauth/dialog", | |
"flow": "implicit", | |
"scopes": { | |
"write:pets": "modify pets in your account", | |
"read:pets": "read your pets" | |
} | |
}, | |
"api_key": { | |
"description": "For this sample, you can use the api key `special-key` to test the authorization filters.\n", | |
"type": "apiKey", | |
"name": "api_key", | |
"in": "header" | |
} | |
}, | |
"paths": { | |
"/pet": { | |
"post": { | |
"tags": [ | |
"pet" | |
], | |
"summary": "Add a new pet to the store", | |
"description": "Add new pet to the store inventory.", | |
"operationId": "addPet", | |
"consumes": [ | |
"application/json", | |
"application/xml" | |
], | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Pet object that needs to be added to the store", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
], | |
"responses": { | |
"405": { | |
"description": "Invalid input" | |
} | |
}, | |
"security": [ | |
{ | |
"petstore_auth": [ | |
"write:pets", | |
"read:pets" | |
] | |
} | |
], | |
"x-code-samples": [ | |
{ | |
"lang": "C#", | |
"source": "PetStore.v1.Pet pet = new PetStore.v1.Pet();\npet.setApiKey(\"your api key\");\npet.petType = PetStore.v1.Pet.TYPE_DOG;\npet.name = \"Rex\";\n// set other fields\nPetStoreResponse response = pet.create();\nif (response.statusCode == HttpStatusCode.Created)\n{\n // Successfully created\n}\nelse\n{\n // Something wrong -- check response for errors\n Console.WriteLine(response.getRawResponse());\n}\n" | |
}, | |
{ | |
"lang": "PHP", | |
"source": "$form = new \\PetStore\\Entities\\Pet();\n$form->setPetType(\"Dog\");\n$form->setName(\"Rex\");\n// set other fields\ntry {\n $pet = $client->pets()->create($form);\n} catch (UnprocessableEntityException $e) {\n var_dump($e->getErrors());\n}\n" | |
} | |
] | |
}, | |
"put": { | |
"tags": [ | |
"pet" | |
], | |
"summary": "Update an existing pet", | |
"description": "", | |
"operationId": "updatePet", | |
"consumes": [ | |
"application/json", | |
"application/xml" | |
], | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Pet object that needs to be added to the store", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
], | |
"responses": { | |
"400": { | |
"description": "Invalid ID supplied" | |
}, | |
"404": { | |
"description": "Pet not found" | |
}, | |
"405": { | |
"description": "Validation exception" | |
} | |
}, | |
"security": [ | |
{ | |
"petstore_auth": [ | |
"write:pets", | |
"read:pets" | |
] | |
} | |
], | |
"x-code-samples": [ | |
{ | |
"lang": "PHP", | |
"source": "$form = new \\PetStore\\Entities\\Pet();\n$form->setPetId(1);\n$form->setPetType(\"Dog\");\n$form->setName(\"Rex\");\n// set other fields\ntry {\n $pet = $client->pets()->update($form);\n} catch (UnprocessableEntityException $e) {\n var_dump($e->getErrors());\n}\n" | |
} | |
] | |
} | |
}, | |
"/pet/{petId}": { | |
"get": { | |
"tags": [ | |
"pet" | |
], | |
"summary": "Find pet by ID", | |
"description": "Returns a single pet", | |
"operationId": "getPetById", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "petId", | |
"in": "path", | |
"description": "ID of pet to return", | |
"required": true, | |
"type": "integer", | |
"format": "int64" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/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", | |
"consumes": [ | |
"application/x-www-form-urlencoded" | |
], | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "petId", | |
"in": "path", | |
"description": "ID of pet that needs to be updated", | |
"required": true, | |
"type": "integer", | |
"format": "int64" | |
}, | |
{ | |
"name": "name", | |
"in": "formData", | |
"description": "Updated name of the pet", | |
"required": false, | |
"type": "string" | |
}, | |
{ | |
"name": "status", | |
"in": "formData", | |
"description": "Updated status of the pet", | |
"required": false, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"405": { | |
"description": "Invalid input" | |
} | |
}, | |
"security": [ | |
{ | |
"petstore_auth": [ | |
"write:pets", | |
"read:pets" | |
] | |
} | |
] | |
}, | |
"delete": { | |
"tags": [ | |
"pet" | |
], | |
"summary": "Deletes a pet", | |
"description": "", | |
"operationId": "deletePet", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "api_key", | |
"in": "header", | |
"required": false, | |
"type": "string" | |
}, | |
{ | |
"name": "petId", | |
"in": "path", | |
"description": "Pet id to delete", | |
"required": true, | |
"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", | |
"consumes": [ | |
"multipart/form-data" | |
], | |
"produces": [ | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "petId", | |
"in": "path", | |
"description": "ID of pet to update", | |
"required": true, | |
"type": "integer", | |
"format": "int64" | |
}, | |
{ | |
"name": "additionalMetadata", | |
"in": "formData", | |
"description": "Additional data to pass to server", | |
"required": false, | |
"type": "string" | |
}, | |
{ | |
"name": "file", | |
"in": "formData", | |
"description": "file to upload", | |
"required": false, | |
"type": "file" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/ApiResponse" | |
} | |
} | |
}, | |
"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 seperated strings", | |
"operationId": "findPetsByStatus", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "status", | |
"in": "query", | |
"description": "Status values that need to be considered for filter", | |
"required": true, | |
"type": "array", | |
"items": { | |
"type": "string", | |
"enum": [ | |
"available", | |
"pending", | |
"sold" | |
], | |
"default": "available" | |
}, | |
"collectionFormat": "csv" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
}, | |
"400": { | |
"description": "Invalid status value" | |
} | |
}, | |
"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 seperated strings. Use tag1, tag2, tag3 for testing.", | |
"operationId": "findPetsByTags", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "tags", | |
"in": "query", | |
"description": "Tags to filter by", | |
"required": true, | |
"type": "array", | |
"items": { | |
"type": "string" | |
}, | |
"collectionFormat": "csv" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
}, | |
"400": { | |
"description": "Invalid tag value" | |
} | |
}, | |
"security": [ | |
{ | |
"petstore_auth": [ | |
"write:pets", | |
"read:pets" | |
] | |
} | |
] | |
} | |
}, | |
"/store/inventory": { | |
"get": { | |
"tags": [ | |
"store" | |
], | |
"summary": "Returns pet inventories by status", | |
"description": "Returns a map of status codes to quantities", | |
"operationId": "getInventory", | |
"produces": [ | |
"application/json" | |
], | |
"parameters": [], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"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", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "order placed for purchasing the pet", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/Order" | |
} | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/Order" | |
} | |
}, | |
"400": { | |
"description": "Invalid 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", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "orderId", | |
"in": "path", | |
"description": "ID of pet that needs to be fetched", | |
"required": true, | |
"type": "integer", | |
"maximum": 5, | |
"minimum": 1, | |
"format": "int64" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/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", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "orderId", | |
"in": "path", | |
"description": "ID of the order that needs to be deleted", | |
"required": true, | |
"type": "string", | |
"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", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Created user object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/user/{username}": { | |
"get": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Get user by user name", | |
"description": "", | |
"operationId": "getUserByName", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "username", | |
"in": "path", | |
"description": "The name that needs to be fetched. Use user1 for testing. ", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/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", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "username", | |
"in": "path", | |
"description": "name that need to be deleted", | |
"required": true, | |
"type": "string" | |
}, | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Updated user object", | |
"required": true, | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
], | |
"responses": { | |
"400": { | |
"description": "Invalid user supplied" | |
}, | |
"404": { | |
"description": "User not found" | |
} | |
} | |
}, | |
"delete": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Delete user", | |
"description": "This can only be done by the logged in user.", | |
"operationId": "deleteUser", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "username", | |
"in": "path", | |
"description": "The name that needs to be deleted", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"400": { | |
"description": "Invalid username supplied" | |
}, | |
"404": { | |
"description": "User not found" | |
} | |
} | |
} | |
}, | |
"/user/createWithArray": { | |
"post": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Creates list of users with given input array", | |
"description": "", | |
"operationId": "createUsersWithArrayInput", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "List of user object", | |
"required": true, | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/user/createWithList": { | |
"post": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Creates list of users with given input array", | |
"description": "", | |
"operationId": "createUsersWithListInput", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "List of user object", | |
"required": true, | |
"schema": { | |
"type": "array", | |
"items": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/user/login": { | |
"get": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Logs user into the system", | |
"description": "", | |
"operationId": "loginUser", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [ | |
{ | |
"name": "username", | |
"in": "query", | |
"description": "The user name for login", | |
"required": true, | |
"type": "string" | |
}, | |
{ | |
"name": "password", | |
"in": "query", | |
"description": "The password for login in clear text", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"type": "string" | |
}, | |
"examples": { | |
"application/json": "OK" | |
}, | |
"headers": { | |
"X-Rate-Limit": { | |
"type": "integer", | |
"format": "int32", | |
"description": "calls per hour allowed by the user" | |
}, | |
"X-Expires-After": { | |
"type": "string", | |
"format": "date-time", | |
"description": "date in UTC when toekn expires" | |
} | |
} | |
}, | |
"400": { | |
"description": "Invalid username/password supplied" | |
} | |
} | |
} | |
}, | |
"/user/logout": { | |
"get": { | |
"tags": [ | |
"user" | |
], | |
"summary": "Logs out current logged in user session", | |
"description": "", | |
"operationId": "logoutUser", | |
"produces": [ | |
"application/xml", | |
"application/json" | |
], | |
"parameters": [], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
} | |
}, | |
"definitions": { | |
"ApiResponse": { | |
"type": "object", | |
"properties": { | |
"code": { | |
"type": "integer", | |
"format": "int32" | |
}, | |
"type": { | |
"type": "string" | |
}, | |
"message": { | |
"type": "string" | |
} | |
} | |
}, | |
"Cat": { | |
"description": "A representation of a cat", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Pet" | |
}, | |
{ | |
"type": "object", | |
"properties": { | |
"huntingSkill": { | |
"type": "string", | |
"description": "The measured skill for hunting", | |
"default": "lazy", | |
"enum": [ | |
"clueless", | |
"lazy", | |
"adventurous", | |
"aggressive" | |
] | |
} | |
}, | |
"required": [ | |
"huntingSkill" | |
] | |
} | |
] | |
}, | |
"Category": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "Category ID", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Id" | |
} | |
] | |
}, | |
"name": { | |
"description": "Category name", | |
"type": "string", | |
"minLength": 1 | |
} | |
}, | |
"xml": { | |
"name": "Category" | |
} | |
}, | |
"Dog": { | |
"description": "A representation of a dog", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Pet" | |
}, | |
{ | |
"type": "object", | |
"properties": { | |
"packSize": { | |
"type": "integer", | |
"format": "int32", | |
"description": "The size of the pack the dog is from", | |
"default": 1, | |
"minimum": 1 | |
} | |
}, | |
"required": [ | |
"packSize" | |
] | |
} | |
] | |
}, | |
"HoneyBee": { | |
"description": "A representation of a honey bee", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Pet" | |
}, | |
{ | |
"type": "object", | |
"properties": { | |
"honeyPerDay": { | |
"type": "number", | |
"description": "Average amount of honey produced per day in ounces", | |
"example": 3.14 | |
} | |
}, | |
"required": [ | |
"honeyPerDay" | |
] | |
} | |
] | |
}, | |
"Id": { | |
"type": "integer", | |
"format": "int64" | |
}, | |
"Order": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "Order ID", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Id" | |
} | |
] | |
}, | |
"petId": { | |
"description": "Pet ID", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Id" | |
} | |
] | |
}, | |
"quantity": { | |
"type": "integer", | |
"format": "int32", | |
"minimum": 1, | |
"default": 1 | |
}, | |
"shipDate": { | |
"description": "Estimated ship date", | |
"type": "string", | |
"format": "date-time" | |
}, | |
"status": { | |
"type": "string", | |
"description": "Order Status", | |
"enum": [ | |
"placed", | |
"approved", | |
"delivered" | |
] | |
}, | |
"complete": { | |
"description": "Indicates whenever order was completed or not", | |
"type": "boolean", | |
"default": false | |
} | |
}, | |
"xml": { | |
"name": "Order" | |
} | |
}, | |
"Pet": { | |
"type": "object", | |
"required": [ | |
"name", | |
"photoUrls" | |
], | |
"discriminator": "petType", | |
"properties": { | |
"id": { | |
"description": "Pet ID", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Id" | |
} | |
] | |
}, | |
"category": { | |
"description": "Categories this pet belongs to", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Category" | |
} | |
] | |
}, | |
"name": { | |
"description": "The name given to a pet", | |
"type": "string", | |
"example": "Guru" | |
}, | |
"photoUrls": { | |
"description": "The list of URL to a cute photos featuring pet", | |
"type": "array", | |
"xml": { | |
"name": "photoUrl", | |
"wrapped": true | |
}, | |
"items": { | |
"type": "string", | |
"format": "url" | |
} | |
}, | |
"tags": { | |
"description": "Tags attached to the pet", | |
"type": "array", | |
"xml": { | |
"name": "tag", | |
"wrapped": true | |
}, | |
"items": { | |
"$ref": "#/definitions/Tag" | |
} | |
}, | |
"status": { | |
"type": "string", | |
"description": "Pet status in the store", | |
"enum": [ | |
"available", | |
"pending", | |
"sold" | |
] | |
}, | |
"petType": { | |
"description": "Type of a pet", | |
"type": "string" | |
} | |
}, | |
"xml": { | |
"name": "Pet" | |
} | |
}, | |
"Tag": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "Tag ID", | |
"allOf": [ | |
{ | |
"$ref": "#/definitions/Id" | |
} | |
] | |
}, | |
"name": { | |
"description": "Tag name", | |
"type": "string", | |
"minLength": 1 | |
} | |
}, | |
"xml": { | |
"name": "Tag" | |
} | |
}, | |
"User": { | |
"type": "object", | |
"properties": { | |
"id": { | |
"description": "User ID", | |
"$ref": "#/definitions/Id" | |
}, | |
"username": { | |
"description": "User supplied username", | |
"type": "string", | |
"minLength": 4, | |
"example": "John78" | |
}, | |
"firstName": { | |
"description": "User first name", | |
"type": "string", | |
"minLength": 1, | |
"example": "John" | |
}, | |
"lastName": { | |
"description": "User last name", | |
"type": "string", | |
"minLength": 1, | |
"example": "Smith" | |
}, | |
"email": { | |
"description": "User email address", | |
"type": "string", | |
"format": "email", | |
"example": "[email protected]" | |
}, | |
"password": { | |
"type": "string", | |
"description": "User password, MUST contain a mix of upper and lower case letters, as well as digits", | |
"format": "password", | |
"minLength": 8, | |
"pattern": "(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])", | |
"example": "drowssaP123" | |
}, | |
"phone": { | |
"description": "User phone number in international format", | |
"type": "string", | |
"pattern": "^\\+(?:[0-9]-?){6,14}[0-9]$", | |
"example": "+1-202-555-0192", | |
"x-nullable": true | |
}, | |
"userStatus": { | |
"description": "User status", | |
"type": "integer", | |
"format": "int32" | |
} | |
}, | |
"xml": { | |
"name": "User" | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment