{ "swagger" : "2.0", "info" : { "description" : "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.", "version" : "1.0.0", "title" : "Swagger Petstore", "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" } }, "basePath" : "/v2", "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 our store", "url" : "http://swagger.io" } } ], "schemes" : [ "http" ], "paths" : { "/pet" : { "post" : { "tags" : [ "pet" ], "summary" : "Add a new pet to the store", "description" : "", "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-contentType" : "application/json", "x-accepts" : "application/json" }, "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-contentType" : "application/json", "x-accepts" : "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", "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" ] } ], "x-accepts" : "application/json" } }, "/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", "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" ] } ], "deprecated" : true, "x-accepts" : "application/json" } }, "/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" : [ ] } ], "x-accepts" : "application/json" }, "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" ] } ], "x-contentType" : "application/x-www-form-urlencoded", "x-accepts" : "application/json" }, "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" ] } ], "x-accepts" : "application/json" } }, "/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" ] } ], "x-contentType" : "multipart/form-data", "x-accepts" : "application/json" } }, "/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" : [ ] } ], "x-accepts" : "application/json" } }, "/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" } }, "x-contentType" : "application/json", "x-accepts" : "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", "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" } }, "x-accepts" : "application/json" }, "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" } ], "responses" : { "400" : { "description" : "Invalid ID supplied" }, "404" : { "description" : "Order not found" } }, "x-accepts" : "application/json" } }, "/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" } }, "x-contentType" : "application/json", "x-accepts" : "application/json" } }, "/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" } }, "x-contentType" : "application/json", "x-accepts" : "application/json" } }, "/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" } }, "x-contentType" : "application/json", "x-accepts" : "application/json" } }, "/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" }, "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" } }, "x-accepts" : "application/json" } }, "/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" } }, "x-accepts" : "application/json" } }, "/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" } }, "x-accepts" : "application/json" }, "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" } }, "x-contentType" : "application/json", "x-accepts" : "application/json" }, "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" } }, "x-accepts" : "application/json" } } }, "securityDefinitions" : { "petstore_auth" : { "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" : { "type" : "apiKey", "name" : "api_key", "in" : "header" } }, "definitions" : { "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 } }, "title" : "Pet Order", "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" : { "type" : "object", "properties" : { "id" : { "type" : "integer", "format" : "int64" }, "name" : { "type" : "string" } }, "title" : "Pet category", "description" : "A category for a pet", "example" : { "name" : "name", "id" : 6 }, "xml" : { "name" : "Category" } }, "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", "format" : "int32", "description" : "User Status" } }, "title" : "a User", "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" : { "type" : "object", "properties" : { "id" : { "type" : "integer", "format" : "int64" }, "name" : { "type" : "string" } }, "title" : "Pet Tag", "description" : "A tag for a pet", "example" : { "name" : "name", "id" : 1 }, "xml" : { "name" : "Tag" } }, "Pet" : { "type" : "object", "required" : [ "name", "photoUrls" ], "properties" : { "id" : { "type" : "integer", "format" : "int64" }, "category" : { "$ref" : "#/definitions/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" : "#/definitions/Tag" } }, "status" : { "type" : "string", "description" : "pet status in the store", "enum" : [ "available", "pending", "sold" ] } }, "title" : "a Pet", "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" : { "type" : "object", "properties" : { "code" : { "type" : "integer", "format" : "int32" }, "type" : { "type" : "string" }, "message" : { "type" : "string" } }, "title" : "An uploaded response", "description" : "Describes the result of uploading an image resource", "example" : { "code" : 0, "type" : "type", "message" : "message" } } }, "externalDocs" : { "description" : "Find out more about Swagger", "url" : "http://swagger.io" } }