openapi: 3.1.0 info: description: "This is a sample server Petstore server. For this sample, you can\ \ use the api key `special-key` to test the authorization filters." license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: OpenAPI Petstore version: 1.0.0 externalDocs: description: Find out more about Swagger url: http://swagger.io servers: - url: http://petstore.swagger.io/v2 tags: - description: Everything about your Pets name: pet - description: Access to Petstore orders name: store - description: Operations about user name: user paths: /pet: post: description: "" operationId: addPet requestBody: $ref: '#/components/requestBodies/Pet' responses: "200": content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' description: successful operation "405": description: Invalid input security: - petstore_auth: - write:pets - read:pets summary: Add a new pet to the store tags: - pet x-content-type: application/json x-accepts: - application/json - application/xml put: description: "" externalDocs: description: API documentation for the updatePet operation url: http://petstore.swagger.io/v2/doc/updatePet operationId: updatePet requestBody: $ref: '#/components/requestBodies/Pet' responses: "200": content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' description: successful operation "400": description: Invalid ID supplied "404": description: Pet not found "405": description: Validation exception security: - petstore_auth: - write:pets - read:pets summary: Update an existing pet tags: - pet x-content-type: application/json x-accepts: - application/json - application/xml /pet/findByStatus: get: description: Multiple status values can be provided with comma separated strings operationId: findPetsByStatus parameters: - deprecated: true description: Status values that need to be considered for filter explode: false in: query name: status required: true schema: items: default: available enum: - available - pending - sold type: string type: array style: form responses: "200": content: application/xml: schema: items: $ref: '#/components/schemas/Pet' type: array application/json: schema: items: $ref: '#/components/schemas/Pet' type: array description: successful operation "400": description: Invalid status value security: - petstore_auth: - read:pets summary: Finds Pets by status tags: - pet x-accepts: - application/json - application/xml /pet/findByTags: get: deprecated: true description: "Multiple tags can be provided with comma separated strings. Use\ \ tag1, tag2, tag3 for testing." operationId: findPetsByTags parameters: - description: Tags to filter by explode: false in: query name: tags required: true schema: items: type: string type: array style: form responses: "200": content: application/xml: schema: items: $ref: '#/components/schemas/Pet' type: array application/json: schema: items: $ref: '#/components/schemas/Pet' type: array description: successful operation "400": description: Invalid tag value security: - petstore_auth: - read:pets summary: Finds Pets by tags tags: - pet x-accepts: - application/json - application/xml /pet/{petId}: delete: description: "" operationId: deletePet parameters: - explode: false in: header name: api_key required: false schema: type: string style: simple - description: Pet id to delete explode: false in: path name: petId required: true schema: format: int64 type: integer style: simple responses: "400": description: Invalid pet value security: - petstore_auth: - write:pets - read:pets summary: Deletes a pet tags: - pet x-accepts: - application/json get: description: Returns a single pet operationId: getPetById parameters: - description: ID of pet to return explode: false in: path name: petId required: true schema: format: int64 type: integer style: simple responses: "200": content: application/xml: schema: $ref: '#/components/schemas/Pet' application/json: schema: $ref: '#/components/schemas/Pet' description: successful operation "400": description: Invalid ID supplied "404": description: Pet not found security: - api_key: [] summary: Find pet by ID tags: - pet x-accepts: - application/json - application/xml post: description: "" operationId: updatePetWithForm parameters: - description: ID of pet that needs to be updated explode: false in: path name: petId required: true schema: format: int64 type: integer style: simple requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/updatePetWithForm_request' responses: "405": description: Invalid input security: - petstore_auth: - write:pets - read:pets summary: Updates a pet in the store with form data tags: - pet x-content-type: application/x-www-form-urlencoded x-accepts: - application/json /pet/{petId}/uploadImage: post: description: "" operationId: uploadFile parameters: - description: ID of pet to update explode: false in: path name: petId required: true schema: format: int64 type: integer style: simple requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/uploadFile_request' responses: "200": content: application/json: schema: $ref: '#/components/schemas/ApiResponse' description: successful operation security: - petstore_auth: - write:pets - read:pets summary: uploads an image tags: - pet x-content-type: multipart/form-data x-accepts: - application/json /store/inventory: get: description: Returns a map of status codes to quantities operationId: getInventory responses: "200": content: application/json: schema: additionalProperties: format: int32 type: integer description: successful operation security: - api_key: [] summary: Returns pet inventories by status tags: - store x-accepts: - application/json /store/order: post: description: "" operationId: placeOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/Order' description: order placed for purchasing the pet required: true responses: "200": content: application/xml: schema: $ref: '#/components/schemas/Order' application/json: schema: $ref: '#/components/schemas/Order' description: successful operation "400": description: Invalid Order summary: Place an order for a pet tags: - store x-content-type: application/json x-accepts: - application/json - application/xml /store/order/{orderId}: delete: description: For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors operationId: deleteOrder parameters: - description: ID of the order that needs to be deleted explode: false in: path name: orderId required: true schema: type: string style: simple responses: "400": description: Invalid ID supplied "404": description: Order not found summary: Delete purchase order by ID tags: - store x-accepts: - application/json get: description: For valid response try integer IDs with value <= 5 or > 10. Other values will generate exceptions operationId: getOrderById parameters: - description: ID of pet that needs to be fetched explode: false in: path name: orderId required: true schema: format: int64 maximum: 5 minimum: 1 type: integer style: simple responses: "200": content: application/xml: schema: $ref: '#/components/schemas/Order' application/json: schema: $ref: '#/components/schemas/Order' description: successful operation "400": description: Invalid ID supplied "404": description: Order not found summary: Find purchase order by ID tags: - store x-accepts: - application/json - application/xml /user: post: description: This can only be done by the logged in user. operationId: createUser requestBody: content: application/json: schema: $ref: '#/components/schemas/User' description: Created user object required: true responses: default: description: successful operation security: - api_key: [] summary: Create user tags: - user x-content-type: application/json x-accepts: - application/json /user/createWithArray: post: description: "" operationId: createUsersWithArrayInput requestBody: $ref: '#/components/requestBodies/UserArray' responses: default: description: successful operation security: - api_key: [] summary: Creates list of users with given input array tags: - user x-content-type: application/json x-accepts: - application/json /user/createWithList: post: description: "" operationId: createUsersWithListInput requestBody: $ref: '#/components/requestBodies/UserArray' responses: default: description: successful operation security: - api_key: [] summary: Creates list of users with given input array tags: - user x-content-type: application/json x-accepts: - application/json /user/login: get: description: "" operationId: loginUser parameters: - description: The user name for login explode: true in: query name: username required: true schema: pattern: "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$" type: string style: form - description: The password for login in clear text explode: true in: query name: password required: true schema: type: string style: form responses: "200": content: application/xml: schema: type: string application/json: schema: type: string description: successful operation headers: Set-Cookie: description: Cookie authentication key for use with the `api_key` apiKey authentication. explode: false schema: example: AUTH_KEY=abcde12345; Path=/; HttpOnly type: string style: simple X-Rate-Limit: description: calls per hour allowed by the user explode: false schema: format: int32 type: integer style: simple X-Expires-After: description: date in UTC when token expires explode: false schema: format: date-time type: string style: simple "400": description: Invalid username/password supplied summary: Logs user into the system tags: - user x-accepts: - application/json - application/xml /user/logout: get: description: "" operationId: logoutUser responses: default: description: successful operation security: - api_key: [] summary: Logs out current logged in user session tags: - user x-accepts: - application/json /user/{username}: delete: description: This can only be done by the logged in user. operationId: deleteUser parameters: - description: The name that needs to be deleted explode: false in: path name: username required: true schema: type: string style: simple responses: "400": description: Invalid username supplied "404": description: User not found security: - api_key: [] summary: Delete user tags: - user x-accepts: - application/json get: description: "" operationId: getUserByName parameters: - description: The name that needs to be fetched. Use user1 for testing. explode: false in: path name: username required: true schema: type: string style: simple responses: "200": content: application/xml: schema: $ref: '#/components/schemas/User' application/json: schema: $ref: '#/components/schemas/User' description: successful operation "400": description: Invalid username supplied "404": description: User not found summary: Get user by user name tags: - user x-accepts: - application/json - application/xml put: description: This can only be done by the logged in user. operationId: updateUser parameters: - description: name that need to be deleted explode: false in: path name: username required: true schema: type: string style: simple requestBody: content: application/json: schema: $ref: '#/components/schemas/User' description: Updated user object required: true responses: "400": description: Invalid user supplied "404": description: User not found security: - api_key: [] summary: Updated user tags: - user x-content-type: application/json x-accepts: - application/json /no_ref: get: operationId: response_no_ref responses: "200": content: text/plain: schema: type: string description: required to pass validation tags: - fake x-accepts: - text/plain /ref/no_ref: get: operationId: response_ref_to_no_ref responses: "200": $ref: '#/components/responses/no_ref' tags: - fake x-accepts: - text/plain /ref/ref: get: operationId: response_ref_to_ref responses: "200": $ref: '#/components/responses/ref' tags: - fake x-accepts: - text/plain /ref/ref_to_parameter: get: operationId: ref_to_ref_parameter parameters: - $ref: '#/components/parameters/ref_to_uuid' responses: "200": $ref: '#/components/responses/ref' tags: - fake x-accepts: - text/plain parameters: - $ref: '#/components/parameters/ref_to_uuid' /ref/ref_to_path_level_parameter_oneof: get: description: to test $ref to path level parameters operationId: ref_to_ref_parameter_oneof parameters: - $ref: '#/components/parameters/ref_to_oneof' responses: "200": description: Successful Response tags: - fake x-accepts: - application/json parameters: - $ref: '#/components/parameters/ref_to_oneof' /ref/ref_to_operation_level_parameter_oneof: get: description: to test $ref to operation level parameters operationId: ref_to_ref_parameter_anyof parameters: - $ref: '#/components/parameters/ref_to_anyof' responses: "200": description: Successful Response tags: - fake x-accepts: - application/json /fake/api/changeowner: post: operationId: op1 parameters: [] responses: "201": content: application/json: schema: {} description: Successful Response "422": content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: op1 tags: - fake x-accepts: - application/json /fake/api/changename: post: operationId: op2 parameters: [] responses: "201": content: application/json: schema: {} description: Successful Response "422": content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' description: Validation Error summary: op2 tags: - fake x-accepts: - application/json /fake/api/query/enum: post: operationId: op3 parameters: - description: query enum test explode: true in: query name: query_enum required: true schema: items: $ref: '#/components/schemas/CodesEnum' type: array style: form responses: "200": description: Successful Response summary: op3 tags: - fake x-accepts: - application/json /fake/inline/schema/anyof/path1: get: responses: "200": content: application/json: schema: $ref: '#/components/schemas/myObject' description: "" tags: - fake x-accepts: - application/json /fake/inline/schema/anyof/path2: get: responses: "200": content: application/json: schema: $ref: '#/components/schemas/myObject' description: "" tags: - fake x-accepts: - application/json /fake/inline/schema/anyof/path3: get: responses: "200": content: application/json: schema: items: $ref: '#/components/schemas/myObject' nullable: true type: array description: "" tags: - fake x-accepts: - application/json components: parameters: ref_to_uuid: description: to test ref to parameter (uuid) explode: false in: header name: ref_to_uuid required: true schema: example: 61864654-6e6b-4152-a62f-795fdd606bc2 format: uuid type: string style: simple ref_to_oneof: description: to test ref to parameter (oneof) explode: false in: header name: ref_to_oneof required: true schema: $ref: '#/components/schemas/_ref_ref_to_path_level_parameter_oneof_ref_to_oneof_parameter' style: simple ref_to_anyof: description: to test ref to parameter (anyof) explode: false in: header name: ref_to_anyof required: true schema: $ref: '#/components/schemas/ref_to_ref_parameter_anyof_ref_to_anyof_parameter' style: simple requestBodies: UserArray: content: application/json: schema: items: $ref: '#/components/schemas/User' type: array description: List of user object required: true 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 required: true responses: no_ref: content: text/plain: schema: type: string description: required to pass validation ref: content: text/plain: schema: $ref: '#/components/schemas/simple_text' description: required to pass validation schemas: 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 properties: id: format: int64 type: integer petId: format: int64 type: integer quantity: format: int32 type: integer shipDate: format: date-time type: string status: description: Order Status enum: - placed - approved - delivered type: string complete: default: false type: boolean title: Pet Order xml: name: Order Category: description: A category for a pet example: name: name id: 6 properties: id: format: int64 type: integer name: pattern: "^[a-zA-Z0-9]+[a-zA-Z0-9\\.\\-_]*[a-zA-Z0-9]+$" type: string title: Pet category xml: name: Category 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 properties: id: format: int64 type: integer username: type: string firstName: type: string lastName: type: string email: type: string password: type: string phone: type: string userStatus: description: User Status format: int32 type: integer title: a User xml: name: User Tag: description: A tag for a pet example: name: name id: 1 properties: id: format: int64 type: integer name: type: string title: Pet Tag xml: name: Tag 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 properties: id: format: int64 type: integer category: $ref: '#/components/schemas/Category' name: example: doggie type: string photoUrls: items: type: string type: array xml: name: photoUrl wrapped: true tags: items: $ref: '#/components/schemas/Tag' type: array xml: name: tag wrapped: true status: deprecated: true description: pet status in the store enum: - available - pending - sold type: string required: - name - photoUrls title: a Pet xml: name: Pet ApiResponse: description: Describes the result of uploading an image resource example: code: 0 type: type message: message properties: code: format: int32 type: integer type: type: string message: type: string title: An uploaded response StringOrInt: anyOf: - type: string - format: int32 type: integer description: string or int OneOfStringOrInt: description: string or int (onefOf) oneOf: - type: string - type: integer Dog: allOf: - $ref: '#/components/schemas/Animal' - properties: breed: type: string Cat: allOf: - $ref: '#/components/schemas/Animal' - properties: declawed: type: boolean Animal: discriminator: propertyName: className properties: className: type: string color: default: red type: string required: - className simple_text: type: string any_type_test: properties: any_type_property: {} array_prop: description: test array in 3.1 spec items: type: string type: array ref_array_prefix_items: description: | An item that was added to the queue. items: {} maxItems: 5 minItems: 3 type: array HTTPValidationError: properties: {} title: HTTPValidationError type: object ArrayPrefixItems: description: | An item that was added to the queue. items: {} maxItems: 5 minItems: 3 type: array circular_reference_1: properties: prop1: $ref: '#/components/schemas/circular_reference_2' circular_reference_2: properties: prop1: $ref: '#/components/schemas/circular_reference_3' circular_reference_3: properties: prop1: $ref: '#/components/schemas/circular_reference_1' array_of_same_ref: properties: arrayFooOne: items: $ref: '#/components/schemas/Tag' type: array arrayFooTwo: items: $ref: '#/components/schemas/Tag' type: array arrayFooThree: items: $ref: '#/components/schemas/Tag' type: array CodesEnum: enum: - Code 1 - Code 2 - Code 3 type: string SimpleModelWithArrayProperty: properties: arrayOfStrings: items: type: string type: array required: - arrayOfStrings AllOfSimpleModel: allOf: - $ref: '#/components/schemas/SimpleModelWithArrayProperty' myObject: type: object SelfReference: items: {} type: array SelfReferenceOneOf: oneOf: - type: string - type: boolean SelfReferenceAnyOf: anyOf: - type: string - type: boolean SelfReferenceAdditionalProperties: additionalProperties: {} properties: dummy: type: string updatePetWithForm_request: properties: name: description: Updated name of the pet type: string status: description: Updated status of the pet type: string uploadFile_request: properties: additionalMetadata: description: Additional data to pass to server type: string file: description: file to upload format: binary type: string _ref_ref_to_path_level_parameter_oneof_ref_to_oneof_parameter: oneOf: - type: string - type: integer ref_to_ref_parameter_anyof_ref_to_anyof_parameter: oneOf: - type: string - items: type: string type: array securitySchemes: petstore_auth: flows: implicit: authorizationUrl: http://petstore.swagger.io/api/oauth/dialog scopes: write:pets: modify pets in your account read:pets: read your pets type: oauth2 api_key: in: header name: api_key type: apiKey