openapi: 3.0.1 info: title: Spring PetClinic description: Spring PetClinic Sample Application. license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0 version: '1.0' servers: - url: http://localhost:9966/petclinic/api tags: - name: failing description: Endpoint which always returns an error. - name: owner description: Endpoints related to pet owners. - name: user description: Endpoints related to users. - name: pet description: Endpoints related to pets. - name: vet description: Endpoints related to vets. - name: visit description: Endpoints related to vet visits. - name: pettypes description: Endpoints related to pet types. - name: specialty description: Endpoints related to vet specialties. paths: /oops: get: tags: - failing operationId: failingRequest summary: Always fails description: Produces sample error response. responses: 200: description: Never returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: text/plain: schema: type: string 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' /owners: post: tags: - owner operationId: addOwner summary: Adds a pet owner description: Records the details of a new pet owner. requestBody: description: The pet owner content: application/json: schema: $ref: '#/components/schemas/OwnerFields' required: true responses: 201: description: The pet owner was successfully added. content: application/json: schema: $ref: '#/components/schemas/Owner' 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' get: tags: - owner operationId: listOwners summary: Lists pet owners description: Returns an array of pet owners. parameters: - name: lastName in: query description: Last name. required: false schema: type: string example: Davis responses: 200: description: Owner details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Owner' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /owners/{ownerId}: get: tags: - owner operationId: getOwner summary: Get a pet owner by ID description: Returns the pet owner or a 404 error. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Owner details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Owner' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Owner not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - owner operationId: updateOwner summary: Update a pet owner's details description: Updates the pet owner record with the specified details. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The pet owner details to use for the update. content: application/json: schema: $ref: '#/components/schemas/OwnerFields' required: true responses: 200: description: Update successful. content: application/json: schema: $ref: '#/components/schemas/Owner' 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Owner not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - owner operationId: deleteOwner summary: Delete an owner by ID description: Returns the owner or a 404 error. parameters: - name: ownerId in: path description: The ID of the owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Owner details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Owner' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Owner not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /owners/{ownerId}/pets: post: tags: - pet operationId: addPetToOwner summary: Adds a pet to an owner description: Records the details of a new pet. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The details of the new pet. content: application/json: schema: $ref: '#/components/schemas/PetFields' required: true responses: 201: description: The pet was successfully added. content: application/json: schema: $ref: '#/components/schemas/Pet' 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet or Owner not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /owners/{ownerId}/pets/{petId}: get: tags: - pet operationId: getOwnersPet summary: Get a pet by ID description: Returns the pet or a 404 error. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Pet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Owner or pet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - pet operationId: updateOwnersPet summary: Update a pet's details description: Updates the pet record with the specified details. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The pet details to use for the update. content: application/json: schema: $ref: '#/components/schemas/PetFields' required: true responses: 204: description: Update successful. 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found for this owner. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /owners/{ownerId}/pets/{petId}/visits: post: tags: - visit operationId: addVisitToOwner summary: Adds a vet visit description: Records the details of a new vet visit. parameters: - name: ownerId in: path description: The ID of the pet owner. required: true schema: type: integer format: int32 minimum: 0 example: 1 - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The details of the new vet visit. content: application/json: schema: $ref: '#/components/schemas/VisitFields' required: true responses: 201: description: The vet visit was successfully added. content: application/json: schema: $ref: '#/components/schemas/Visit' 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found for this owner. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /pettypes: get: tags: - pettypes operationId: listPetTypes summary: Lists pet types description: Returns an array of pet types. responses: 200: description: Pet types found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/PetType' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' post: tags: - pettypes operationId: addPetType summary: Create a pet type description: Creates a pet type . requestBody: description: The pet type content: application/json: schema: $ref: '#/components/schemas/PetTypeFields' required: true responses: 200: description: Pet type created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/PetType' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet Type not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /pettypes/{petTypeId}: get: tags: - pettypes operationId: getPetType summary: Get a pet type by ID description: Returns the pet type or a 404 error. parameters: - name: petTypeId in: path description: The ID of the pet type. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Pet type details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/PetType' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet Type not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - pettypes operationId: updatePetType summary: Update a pet type by ID description: Returns the pet type or a 404 error. parameters: - name: petTypeId in: path description: The ID of the pet type. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The pet type content: application/json: schema: $ref: '#/components/schemas/PetType' required: true responses: 200: description: Pet type details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/PetType' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet Type not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - pettypes operationId: deletePetType summary: Delete a pet type by ID description: Returns the pet type or a 404 error. parameters: - name: petTypeId in: path description: The ID of the pet type. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Pet type details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/PetType' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet type not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /pets: get: tags: - pet operationId: listPets summary: Lists pet description: Returns an array of pet . responses: 200: description: Pet types found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' post: tags: - pet operationId: addPet summary: Create a pet description: Creates a pet . requestBody: description: The pet content: application/json: schema: $ref: '#/components/schemas/Pet' required: true responses: 201: description: Pet type created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /pets/{petId}: get: tags: - pet operationId: getPet summary: Get a pet by ID description: Returns the pet or a 404 error. parameters: - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Pet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - pet operationId: updatePet summary: Update a pet by ID description: Returns the pet or a 404 error. parameters: - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The pet content: application/json: schema: $ref: '#/components/schemas/Pet' required: true responses: 200: description: Pet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - pet operationId: deletePet summary: Delete a pet by ID description: Returns the pet or a 404 error. parameters: - name: petId in: path description: The ID of the pet. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Pet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Pet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Pet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /visits: get: tags: - visit operationId: listVisits summary: Lists visits description: Returns an array of visit . responses: 200: description: visits found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Visit' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' post: tags: - visit operationId: addVisit summary: Create a visit description: Creates a visit. requestBody: description: The visit content: application/json: schema: $ref: '#/components/schemas/Visit' required: true responses: 200: description: visit created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Visit' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Visit not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /visits/{visitId}: get: tags: - visit operationId: getVisit summary: Get a visit by ID description: Returns the visit or a 404 error. parameters: - name: visitId in: path description: The ID of the visit. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Visit details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Visit' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Visit not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - visit operationId: updateVisit summary: Update a visit by ID description: Returns the visit or a 404 error. parameters: - name: visitId in: path description: The ID of the visit. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The visit content: application/json: schema: $ref: '#/components/schemas/Visit' required: true responses: 200: description: Visit details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Visit' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Visit not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - visit operationId: deleteVisit summary: Delete a visit by ID description: Returns the visit or a 404 error. parameters: - name: visitId in: path description: The ID of the visit. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Visit details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Visit' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Visit not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /specialties: get: tags: - specialty operationId: listSpecialties summary: Lists specialties description: Returns an array of specialty . responses: 200: description: Specialties found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Specialty' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' post: tags: - specialty operationId: addSpecialty summary: Create a specialty description: Creates a specialty . requestBody: description: The specialty content: application/json: schema: $ref: '#/components/schemas/Specialty' required: true responses: 200: description: Specialty created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Specialty' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Specialty not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /specialties/{specialtyId}: get: tags: - specialty operationId: getSpecialty summary: Get a specialty by ID description: Returns the specialty or a 404 error. parameters: - name: specialtyId in: path description: The ID of the speciality. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Specialty details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Specialty' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Specialty not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - specialty operationId: updateSpecialty summary: Update a specialty by ID description: Returns the specialty or a 404 error. parameters: - name: specialtyId in: path description: The ID of the specialty. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The pet content: application/json: schema: $ref: '#/components/schemas/Specialty' required: true responses: 200: description: Specialty details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Specialty' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Specialty not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - specialty operationId: deleteSpecialty summary: Delete a specialty by ID description: Returns the specialty or a 404 error. parameters: - name: specialtyId in: path description: The ID of the specialty. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Specialty details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Specialty' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Specialty not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /vets: get: tags: - vet operationId: listVets summary: Lists vets description: Returns an array of vets. responses: 200: description: Vets found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Vet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' post: tags: - vet operationId: addVet summary: Create a Vet description: Creates a vet . requestBody: description: The vet content: application/json: schema: $ref: '#/components/schemas/Vet' required: true responses: 200: description: Vet created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Vet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Vet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /vets/{vetId}: get: tags: - vet operationId: getVet summary: Get a vet by ID description: Returns the vet or a 404 error. parameters: - name: vetId in: path description: The ID of the vet. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Vet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Vet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Vet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' put: tags: - vet operationId: updateVet summary: Update a vet by ID description: Returns the vet or a 404 error. parameters: - name: vetId in: path description: The ID of the vet. required: true schema: type: integer format: int32 minimum: 0 example: 1 requestBody: description: The vet content: application/json: schema: $ref: '#/components/schemas/Vet' required: true responses: 200: description: Pet type details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Vet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Vet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' delete: tags: - vet operationId: deleteVet summary: Delete a vet by ID description: Returns the vet or a 404 error. parameters: - name: vetId in: path description: The ID of the vet. required: true schema: type: integer format: int32 minimum: 0 example: 1 responses: 200: description: Vet details found and returned. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Vet' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: Vet not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' /users: post: tags: - user operationId: addUser summary: Create a user description: Creates a user. requestBody: description: The user content: application/json: schema: $ref: '#/components/schemas/User' required: true responses: 200: description: User created successfully. headers: ETag: description: An ID for this version of the response. schema: type: string content: application/json: schema: $ref: '#/components/schemas/User' 304: description: Not modified. headers: ETag: description: An ID for this version of the response. schema: type: string 400: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/RestError' 404: description: User not found. content: application/json: schema: $ref: '#/components/schemas/RestError' 500: description: Server error. content: application/json: schema: $ref: '#/components/schemas/RestError' components: schemas: RestError: title: REST Error description: The schema for all error responses. type: object properties: status: title: Status description: The HTTP status code. type: integer format: int32 example: 400 readOnly: true error: title: Error description: The short error message. type: string example: Bad Request readOnly: true path: title: Path description: The path of the URL for this request. type: string format: uri example: '/api/owners' readOnly: true timestamp: title: Timestamp description: The time the error occurred. type: string format: date-time example: '2019-08-21T21:41:46.158+0000' readOnly: true message: title: Message description: The long error message. type: string example: 'Request failed schema validation' readOnly: true schemaValidationErrors: title: Schema validation errors description: Validation errors against the OpenAPI schema. type: array items: $ref: '#/components/schemas/ValidationMessage' trace: title: Trace description: The stacktrace for this error. type: string example: 'com.atlassian.oai.validator.springmvc.InvalidRequestException: ...' readOnly: true required: - status - error - path - timestamp - message - schemaValidationErrors ValidationMessage: title: Validation message description: Messages describing a validation error. type: object properties: message: title: Message description: The validation message. type: string example: "[Path '/lastName'] Instance type (null) does not match any allowed primitive type (allowed: ['string'])" readOnly: true required: - message additionalProperties: true Specialty: title: Specialty description: Fields of specialty of vets. type: object properties: id: title: ID description: The ID of the specialty. type: integer format: int32 minimum: 0 example: 1 readOnly: true name: title: Name description: The name of the specialty. type: string maxLength: 80 minLength: 1 example: radiology required: - id - name OwnerFields: title: Owner fields description: Editable fields of a pet owner. type: object properties: firstName: title: First name description: The first name of the pet owner. type: string minLength: 1 maxLength: 30 pattern: '^[a-zA-Z]*$' example: George lastName: title: Last name description: The last name of the pet owner. type: string minLength: 1 maxLength: 30 pattern: '^[a-zA-Z]*$' example: Franklin address: title: Address description: The postal address of the pet owner. type: string minLength: 1 maxLength: 255 example: '110 W. Liberty St.' city: title: City description: The city of the pet owner. type: string minLength: 1 maxLength: 80 example: Madison telephone: title: Telephone number description: The telephone number of the pet owner. type: string minLength: 1 maxLength: 20 pattern: '^[0-9]*$' example: '6085551023' required: - firstName - lastName - address - city - telephone Owner: title: Owner description: A pet owner. allOf: - $ref: '#/components/schemas/OwnerFields' - type: object properties: id: title: ID description: The ID of the pet owner. type: integer format: int32 minimum: 0 example: 1 readOnly: true pets: title: Pets description: The pets owned by this individual including any booked vet visits. type: array items: $ref: '#/components/schemas/Pet' readOnly: true required: - pets PetFields: title: Pet fields description: Editable fields of a pet. type: object properties: name: title: Name description: The name of the pet. type: string maxLength: 30 example: Leo birthDate: title: Birth date description: The date of birth of the pet. type: string format: date example: '2010-09-07' type: $ref: '#/components/schemas/PetType' required: - name - birthDate - type Pet: title: Pet description: A pet. allOf: - $ref: '#/components/schemas/PetFields' - type: object properties: id: title: ID description: The ID of the pet. type: integer format: int32 minimum: 0 example: 1 readOnly: true ownerId: title: Owner ID description: The ID of the pet's owner. type: integer format: int32 minimum: 0 example: 1 readOnly: true visits: title: Visits description: Vet visit bookings for this pet. type: array items: $ref: '#/components/schemas/Visit' readOnly: true required: - id - type - visits VetFields: title: VetFields description: Editable fields of a veterinarian. type: object properties: firstName: title: First name description: The first name of the vet. type: string minLength: 1 maxLength: 30 pattern: '^[a-zA-Z]*$' example: 'James' lastName: title: Last name description: The last name of the vet. type: string minLength: 1 maxLength: 30 pattern: '^[a-zA-Z]*$' example: 'Carter' specialties: title: Specialties description: The specialties of the vet. type: array items: $ref: '#/components/schemas/Specialty' required: - firstName - lastName - specialties Vet: title: Vet description: A veterinarian. allOf: - $ref: '#/components/schemas/VetFields' - type: object properties: id: title: ID description: The ID of the vet. type: integer format: int32 minimum: 0 example: 1 readOnly: true required: - id - firstName - lastName - specialties VisitFields: title: Visit fields description: Editable fields of a vet visit. type: object properties: date: title: Date description: The date of the visit. type: string format: date example: '2013-01-01' description: title: Description description: The description for the visit. type: string minLength: 1 maxLength: 255 example: 'rabies shot' required: - description Visit: title: Visit description: A booking for a vet visit. allOf: - $ref: '#/components/schemas/VisitFields' - type: object properties: id: title: ID description: The ID of the visit. type: integer format: int32 minimum: 0 example: 1 readOnly: true petId: title: Pet ID description: The ID of the pet. type: integer format: int32 minimum: 0 example: 1 readOnly: true required: - id PetTypeFields: title: PetType fields description: Editable fields of a pet type. type: object properties: name: title: Name description: The name of the pet type. type: string maxLength: 80 minLength: 1 example: cat required: - name PetType: title: Pet type description: A pet type. allOf: - $ref: '#/components/schemas/PetTypeFields' - type: object properties: id: title: ID description: The ID of the pet type. type: integer format: int32 minimum: 0 example: 1 required: - id User: title: User description: An user. type: object properties: username: title: username description: The username type: string maxLength: 80 minLength: 1 example: john.doe password: title: Password description: The password type: string maxLength: 80 minLength: 1 example: 1234abc enabled: title: enabled description: Indicates if the user is enabled type: boolean example: true roles: title: Roles description: The roles of an user type: array items: $ref: '#/components/schemas/Role' required: - username Role: title: Role description: A role. type: object properties: name: title: name description: The role's name type: string maxLength: 80 minLength: 1 example: admin required: - name