COMPATIBLEBackward compatible
25 changes across 11 operations moved, and none of it can break a client compiled against the base spec.
openapi.yaml at the merge-base 55413126 against the working tree, read by oasdiff 1.30.0 — an independent differ, not ours. It resolves $refs, so an operation is listed here because of any schema it reaches, not only because its own paths entry moved. Every line below carries the rule id that produced it.
Compatible movement 11
GET/api/owners3 compatible changes
- added the optional property
items/pets/items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
items/pets/items/visits/items/vetId to the response with the 200 status response-optional-property-added - added the optional property
items/pets/items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
lastName (query)stringdefault
Response200 - the primary success body3 changed
bodyOwnerDto[]
[ ]OwnerDto
addressstringrequiredminLength 1, maxLength 255e.g. 110 W. Liberty St.The postal address of the pet owner.
citystringrequiredminLength 1, maxLength 80e.g. MadisonThe city of the pet owner.
firstNamestringrequiredminLength 1, maxLength 30e.g. GeorgeThe first name of the pet owner.
idintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet owner.
lastNamestringrequiredminLength 1, maxLength 30e.g. FranklinThe last name of the pet owner.
petsPetDto[]requiredreadOnlyThe pets owned by this individual including any booked vet visits.
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
telephonestringrequiredminLength 1, maxLength 20, pattern ^[0-9]*$e.g. 6085551023The telephone number of the pet owner.
GET/api/owners/{ownerId}3 compatible changes
- added the optional property
pets/items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
pets/items/visits/items/vetId to the response with the 200 status response-optional-property-added - added the optional property
pets/items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
ownerId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyOwnerDto
addressstringrequiredminLength 1, maxLength 255e.g. 110 W. Liberty St.The postal address of the pet owner.
citystringrequiredminLength 1, maxLength 80e.g. MadisonThe city of the pet owner.
firstNamestringrequiredminLength 1, maxLength 30e.g. GeorgeThe first name of the pet owner.
idintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet owner.
lastNamestringrequiredminLength 1, maxLength 30e.g. FranklinThe last name of the pet owner.
petsPetDto[]requiredreadOnlyThe pets owned by this individual including any booked vet visits.
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
telephonestringrequiredminLength 1, maxLength 20, pattern ^[0-9]*$e.g. 6085551023The telephone number of the pet owner.
GET/api/owners/{ownerId}/pets/{petId}3 compatible changes
- added the optional property
visits/items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
visits/items/vetId to the response with the 200 status response-optional-property-added - added the optional property
visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
ownerId (path)integerrequiredformat int32
petId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyPetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
POST/api/owners/{ownerId}/pets/{petId}/visits1 compatible change
- added the new optional request property
vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body1 changed
ownerId (path)integerrequiredformat int32
petId (path)integerrequiredformat int32
bodyVisitFieldsDtorequired
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
Response200 - the primary success body
This operation returns no body.
GET/api/pets3 compatible changes
- added the optional property
items/visits/items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
items/visits/items/vetId to the response with the 200 status response-optional-property-added - added the optional property
items/visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
This operation takes no parameters and no body.
Response200 - the primary success body3 changed
bodyPetDto[]
[ ]PetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
GET/api/pets/{petId}3 compatible changes
- added the optional property
visits/items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
visits/items/vetId to the response with the 200 status response-optional-property-added - added the optional property
visits/items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
petId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyPetDto
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
PUT/api/pets/{petId}1 compatible change
- added the new optional request property
visits/items/vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body3 changed
petId (path)integerrequiredformat int32
bodyPetDtorequired
birthDatestringrequiredformat datee.g. 2010-09-07
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the pet.
namestringrequiredminLength 0, maxLength 30e.g. LeoThe name of the pet.
ownerIdintegerreadOnlyformat int32, minimum 0e.g. 1The ID of the pet's owner.
typePetTypeDtorequired
idintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet type.
namestringrequiredminLength 1, maxLength 80e.g. catThe name of the pet type.
visitsVisitDto[]requiredreadOnlyVet visit bookings for this pet.
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
Response200 - the primary success body
This operation returns no body.
GET/api/visits3 compatible changes
- added the optional property
items/vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
items/vetId to the response with the 200 status response-optional-property-added - added the optional property
items/vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
This operation takes no parameters and no body.
Response200 - the primary success body3 changed
bodyVisitDto[]
[ ]VisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
POST/api/visits1 compatible change
- added the new optional request property
vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body3 changed
bodyVisitDtorequired
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
Response200 - the primary success body
This operation returns no body.
GET/api/visits/{visitId}3 compatible changes
- added the optional property
vetFirstName to the response with the 200 status response-optional-property-added - added the optional property
vetId to the response with the 200 status response-optional-property-added - added the optional property
vetLastName to the response with the 200 status response-optional-property-added
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body
visitId (path)integerrequiredformat int32
Response200 - the primary success body3 changed
bodyVisitDto
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
idintegerrequiredreadOnlyformat int32, minimum 0e.g. 1The ID of the visit.
ownerFirstNamestringreadOnlyFirst name of the owner (server-populated).
ownerIdintegerreadOnlyformat int32ID of the owner of the pet (server-populated).
ownerLastNamestringreadOnlyLast name of the owner (server-populated).
petIdintegerrequiredformat int32, minimum 0e.g. 1The ID of the pet.
petNamestringreadOnlyName of the pet (server-populated).
vetFirstNamestringreadOnlyFirst name of the vet (server-populated).
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
vetLastNamestringreadOnlyLast name of the vet (server-populated).
PUT/api/visits/{visitId}1 compatible change
- added the new optional request property
vetId new-optional-request-property
The shape a caller sends and gets back
Grey is the contract as it was. Red is added, red struck through is removed. $refs are resolved, so a schema that moved shows up here, at every operation that serves it. Example values are the spec's own.
Requestpath & query parameters, then the body1 changed
visitId (path)integerrequiredformat int32
bodyVisitFieldsDtorequired
datestringformat datee.g. 2013-01-01The date of the visit.
descriptionstringrequiredminLength 1, maxLength 255e.g. rabies shotThe description for the visit.
vetIdintegerformat int32, minimum 0e.g. 1The ID of the vet that attended the visit.
Response200 - the primary success body
This operation returns no body.
Both differs agree. openapi-diff.py read 2 changed subjects — operations and schemas, counted its own way, not the list above — out of the same two revisions, and also calls this safe. The verdict is not one tool's opinion.