OpenAPI Breaking Changes: The Complete List of Rules
oasdiff detects 474 distinct API changes across 9 OpenAPI areas, breaking and non-breaking, in OpenAPI 3.x specifications. Each change is classified by the OpenAPI object it affects and the kind of change it represents, generated directly from the oasdiff CLI.
A "breaking change" is any modification that could cause existing API clients to fail without code changes. Run these checks automatically in CI with the GitHub Action or the CLI.
Core Structure
Data & Operations
Security & Connectivity
Core Structure
Paths & Operations
20 changesExistence9
| Type | ID | Description |
|---|---|---|
| Info | api-operation-id-added | operation ID added to an endpoint |
| Info | api-operation-id-removed | operation ID deleted from an endpoint |
| Breaking | api-path-removed-before-sunset | path and endpoint deleted before sunset date |
| Info | api-path-removed-with-deprecation | path and endpoint deleted after deprecation |
| Breaking | api-path-removed-without-deprecation | path and endpoint deleted without deprecation |
| Breaking | api-removed-before-sunset | endpoint deleted before sunset date |
| Info | api-removed-with-deprecation | endpoint deleted after deprecation |
| Breaking | api-removed-without-deprecation | endpoint deleted without deprecation |
| Info | endpoint-added | endpoint added |
Lifecycle11
| Type | ID | Description |
|---|---|---|
| Breaking | api-deprecated-sunset-missing | endpoint deprecated without sunset date |
| Breaking | api-deprecated-sunset-parse | endpoint deprecated with invalid sunset date |
| Breaking | api-invalid-stability-level | invalid stability level |
| Breaking | api-path-sunset-parse | path and endpoint deleted with invalid or missing sunset date |
| Breaking | api-stability-decreased | endpoint stability level decreased |
| Breaking | api-sunset-date-changed-too-small | modified sunset date doesn't meet min required deprecation days |
| Breaking | api-sunset-date-too-small | deprecated endpoint sunset before min required deprecation days |
| Info | endpoint-deprecated | endpoint deprecated |
| Info | endpoint-deprecated-with-sunset | endpoint deprecated with sunset date |
| Info | endpoint-reactivated | endpoint reactivated (deprecation set to false) |
| Breaking | sunset-deleted | sunset deleted |
Components
3 changesExistence3
| Type | ID | Description |
|---|---|---|
| Info | api-schema-removed | schema deleted from components/schemas |
| Info | webhook-added | webhook added |
| Breaking | webhook-removed | webhook removed |
Data & Operations
Schema
347 changesExistence21
| Type | ID | Description |
|---|---|---|
| Info | new-optional-request-property | optional property added to request |
| Breaking | new-required-request-property | required property added to request |
| Info | new-required-request-property-with-default | required property with default value added to request |
| Breaking | request-body-content-schema-added | contentSchema added to request body |
| Info | request-body-content-schema-removed | contentSchema removed from request body |
| Breaking | request-body-removed | request body removed |
| Breaking | request-property-content-schema-added | contentSchema added to request property |
| Info | request-property-content-schema-removed | contentSchema removed from request property |
| Warning | request-property-removed | request property removed |
| Info | response-body-content-schema-added | contentSchema added to response body |
| Breaking | response-body-content-schema-removed | contentSchema removed from response body |
| Info | response-optional-property-added | response optional property added |
| Warning | response-optional-property-removed | response optional property removed |
| Info | response-optional-write-only-property-added | response optional write-only property added |
| Info | response-optional-write-only-property-removed | response optional write-only property removed |
| Info | response-property-content-schema-added | contentSchema added to response property |
| Breaking | response-property-content-schema-removed | contentSchema removed from response property |
| Info | response-required-property-added | response required property added |
| Breaking | response-required-property-removed | response required property removed |
| Info | response-required-write-only-property-added | response required write-only property added |
| Info | response-required-write-only-property-removed | response required write-only property removed |
Requiredness13
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-became-not-nullable | null excluded as a possible value in request body |
| Info | request-body-became-nullable | null added as a possible value in request body |
| Breaking | request-property-became-not-nullable | request property became not nullable |
| Info | request-property-became-nullable | request property became nullable |
| Info | request-property-became-optional | request property became optional |
| Breaking | request-property-became-required | request property became required |
| Info | request-property-became-required-with-default | request property with a default value became required |
| Breaking | response-body-became-nullable | response body became nullable |
| Breaking | response-property-became-nullable | response property became nullable |
| Breaking | response-property-became-optional | response property became optional |
| Info | response-property-became-required | response property became required |
| Info | response-write-only-property-became-optional | response write-only property became optional |
| Info | response-write-only-property-became-required | response write-only property became required |
Mutability (read-only / write-only)16
| Type | ID | Description |
|---|---|---|
| Info | request-optional-property-became-not-read-only | request optional property became not read-only |
| Info | request-optional-property-became-not-write-only | request optional property became not write-only |
| Info | request-optional-property-became-read-only | request optional property became read-only |
| Info | request-optional-property-became-write-only | request optional property became write-only |
| Info | request-required-property-became-not-read-only | request required property became not read-only |
| Info | request-required-property-became-not-write-only | request required property became not write-only |
| Info | request-required-property-became-read-only | request required property became read-only |
| Info | request-required-property-became-write-only | request required property became write-only |
| Info | response-optional-property-became-not-read-only | response optional property became not read-only |
| Info | response-optional-property-became-not-write-only | response optional property became not write-only |
| Info | response-optional-property-became-read-only | response optional property became read-only |
| Info | response-optional-property-became-write-only | response optional property became write-only |
| Info | response-required-property-became-not-read-only | response required property became not read-only |
| Warning | response-required-property-became-not-write-only | response required property became not write-onlyMitigation: This is valid only if the property was always returned before the specification changed. |
| Info | response-required-property-became-read-only | response required property became read-only |
| Info | response-required-property-became-write-only | response required property became write-only |
Type & format18
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-list-of-types-narrowed | request body list-of-types narrowed |
| Info | request-body-list-of-types-widened | request body list-of-types widened |
| Breaking | request-body-type-changed | request body type changed |
| Info | request-body-type-generalized | request body type generalized |
| Breaking | request-property-content-encoding-changed | request property contentEncoding changed |
| Breaking | request-property-content-media-type-changed | request property contentMediaType changed |
| Breaking | request-property-list-of-types-narrowed | request property list-of-types narrowed |
| Info | request-property-list-of-types-widened | request property list-of-types widened |
| Breaking | request-property-type-changed | request property type changed |
| Info | request-property-type-generalized | request property type generalized |
| Info | response-body-list-of-types-narrowed | response body list-of-types narrowed |
| Breaking | response-body-list-of-types-widened | response body list-of-types widened |
| Breaking | response-body-type-changed | response body type changed |
| Breaking | response-property-content-encoding-changed | response property contentEncoding changed |
| Breaking | response-property-content-media-type-changed | response property contentMediaType changed |
| Info | response-property-list-of-types-narrowed | response property list-of-types narrowed |
| Breaking | response-property-list-of-types-widened | response property list-of-types widened |
| Breaking | response-property-type-changed | response property type changed |
Constraints92
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-exclusive-max-decreased | request body exclusiveMaximum decreased |
| Info | request-body-exclusive-max-increased | request body exclusiveMaximum increased |
| Warning | request-body-exclusive-max-set | request body exclusiveMaximum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-body-exclusive-min-decreased | request body exclusiveMinimum decreased |
| Breaking | request-body-exclusive-min-increased | request body exclusiveMinimum increased |
| Warning | request-body-exclusive-min-set | request body exclusiveMinimum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-body-max-contains-decreased | request body maxContains decreased |
| Info | request-body-max-contains-increased | request body maxContains increased |
| Breaking | request-body-max-decreased | request body max decreased |
| Info | request-body-max-increased | request body max increased |
| Breaking | request-body-max-length-decreased | request body max length decreased |
| Info | request-body-max-length-increased | request body max length increased |
| Warning | request-body-max-length-set | request body max length setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Warning | request-body-max-set | request body max setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-body-min-contains-decreased | request body minContains decreased |
| Breaking | request-body-min-contains-increased | request body minContains increased |
| Info | request-body-min-decreased | request body min decreased |
| Breaking | request-body-min-increased | request body min increased |
| Breaking | request-body-min-items-increased | request body min items increased |
| Warning | request-body-min-items-set | request body min items setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-body-min-length-decreased | request body min length decreased |
| Breaking | request-body-min-length-increased | request body min length increased |
| Warning | request-body-min-set | request body min setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-body-pattern-property-added | pattern property added to request body |
| Info | request-body-pattern-property-removed | pattern property removed from request body |
| Breaking | request-property-exclusive-max-decreased | request property exclusiveMaximum decreased |
| Info | request-property-exclusive-max-increased | request property exclusiveMaximum increased |
| Warning | request-property-exclusive-max-set | request property exclusiveMaximum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-property-exclusive-min-decreased | request property exclusiveMinimum decreased |
| Breaking | request-property-exclusive-min-increased | request property exclusiveMinimum increased |
| Warning | request-property-exclusive-min-set | request property exclusiveMinimum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-property-max-contains-decreased | request property maxContains decreased |
| Info | request-property-max-contains-increased | request property maxContains increased |
| Breaking | request-property-max-decreased | request property max decreased |
| Info | request-property-max-increased | request property max increased |
| Breaking | request-property-max-length-decreased | request property max length decreased |
| Info | request-property-max-length-increased | request property max length increased |
| Warning | request-property-max-length-set | request property max length setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Warning | request-property-max-set | request property max setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-property-min-contains-decreased | request property minContains decreased |
| Breaking | request-property-min-contains-increased | request property minContains increased |
| Info | request-property-min-decreased | request property min decreased |
| Breaking | request-property-min-increased | request property min increased |
| Breaking | request-property-min-items-increased | request property min items increased |
| Warning | request-property-min-items-set | request property min items setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-property-min-length-decreased | request property min length decreased |
| Breaking | request-property-min-length-increased | request property min length increased |
| Warning | request-property-min-set | request property min setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-property-pattern-added | request property pattern set |
| Warning | request-property-pattern-changed | request property pattern changed |
| Info | request-property-pattern-generalized | request property pattern generalized |
| Breaking | request-property-pattern-property-added | pattern property added to request property |
| Info | request-property-pattern-property-removed | pattern property removed from request property |
| Info | request-property-pattern-removed | request property pattern unset |
| Info | request-read-only-property-exclusive-max-decreased | request read-only property exclusiveMaximum decreased |
| Info | request-read-only-property-exclusive-min-increased | request read-only property exclusiveMinimum increased |
| Info | request-read-only-property-max-decreased | request read-only property max decreased |
| Info | request-read-only-property-max-length-decreased | request read-only property max length decreased |
| Info | request-read-only-property-min-increased | request read-only property min increased |
| Breaking | response-body-exclusive-max-increased | response body exclusiveMaximum increased |
| Breaking | response-body-exclusive-min-decreased | response body exclusiveMinimum decreased |
| Info | response-body-max-contains-decreased | response body maxContains decreased |
| Breaking | response-body-max-contains-increased | response body maxContains increased |
| Breaking | response-body-max-increased | response body max increased |
| Breaking | response-body-max-length-increased | response body max length increased |
| Breaking | response-body-max-length-unset | response body max length unset |
| Breaking | response-body-min-contains-decreased | response body minContains decreased |
| Info | response-body-min-contains-increased | response body minContains increased |
| Breaking | response-body-min-decreased | response body min decreased |
| Breaking | response-body-min-items-decreased | response body min items decreased |
| Breaking | response-body-min-items-unset | response body min items unset |
| Breaking | response-body-min-length-decreased | response body min length decreased |
| Info | response-body-pattern-property-added | pattern property added to response body |
| Breaking | response-body-pattern-property-removed | pattern property removed from response body |
| Breaking | response-property-exclusive-max-increased | response property exclusiveMaximum increased |
| Breaking | response-property-exclusive-min-decreased | response property exclusiveMinimum decreased |
| Info | response-property-max-contains-decreased | response property maxContains decreased |
| Breaking | response-property-max-contains-increased | response property maxContains increased |
| Breaking | response-property-max-increased | response property max increased |
| Breaking | response-property-max-length-increased | response property max length increased |
| Breaking | response-property-max-length-unset | response property max length unset |
| Breaking | response-property-min-contains-decreased | response property minContains decreased |
| Info | response-property-min-contains-increased | response property minContains increased |
| Breaking | response-property-min-decreased | response property min decreased |
| Breaking | response-property-min-items-decreased | response property min items decreased |
| Breaking | response-property-min-items-unset | response property min items unset |
| Breaking | response-property-min-length-decreased | response property min length decreased |
| Info | response-property-pattern-added | response property pattern set |
| Info | response-property-pattern-changed | response property pattern changed |
| Info | response-property-pattern-property-added | pattern property added to response property |
| Breaking | response-property-pattern-property-removed | pattern property removed from response property |
| Info | response-property-pattern-removed | response property pattern unset |
Values35
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-became-enum | request body restricted to enum |
| Breaking | request-body-const-added | request body const value set |
| Breaking | request-body-const-changed | request body const value modified |
| Info | request-body-const-removed | request body const value unset |
| Info | request-body-default-value-added | request body default value set |
| Info | request-body-default-value-changed | request body default value modified |
| Info | request-body-default-value-removed | request body default value unset |
| Info | request-body-enum-value-removed | request body enum value deleted |
| Breaking | request-property-became-enum | request property restricted to enum |
| Breaking | request-property-const-added | request property const value set |
| Breaking | request-property-const-changed | request property const value modified |
| Info | request-property-const-removed | request property const value unset |
| Info | request-property-default-value-added | request property default value set |
| Info | request-property-default-value-changed | request property default value changed |
| Info | request-property-default-value-removed | request property default value unset |
| Info | request-property-enum-value-added | request property enum value added |
| Breaking | request-property-enum-value-removed | request property enum value removed |
| Breaking | request-property-x-extensible-enum-value-removed | request property x-extensible-enum value removed |
| Info | request-read-only-property-enum-value-removed | request read-only property enum value removed |
| Info | response-body-const-added | response body const value set |
| Breaking | response-body-const-changed | response body const value modified |
| Breaking | response-body-const-removed | response body const value unset |
| Info | response-body-default-value-added | response body default value set |
| Info | response-body-default-value-changed | response body default value changed |
| Info | response-body-default-value-removed | response body default value unset |
| Info | response-mediatype-enum-value-removed | response mediatype enum value removed |
| Info | response-property-const-added | response property const value set |
| Breaking | response-property-const-changed | response property const value modified |
| Breaking | response-property-const-removed | response property const value unset |
| Info | response-property-default-value-added | response property default value set |
| Info | response-property-default-value-changed | response property default value changed |
| Info | response-property-default-value-removed | response property default value unset |
| Warning | response-property-enum-value-added | response property enum value addedMitigation: Adding new enum values to a response can be unexpected for clients; use x-extensible-enum instead. |
| Info | response-property-enum-value-removed | response property enum value removed |
| Info | response-write-only-property-enum-value-added | response write-only property enum value added |
Structure & composition140
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-all-of-added | sub-schema added to allOf in request body |
| Info | request-body-all-of-added-annotation-only | annotation-only sub-schema added to allOf in request body (no wire-contract effect) |
| Warning | request-body-all-of-removed | sub-schema deleted from allOf in request body |
| Info | request-body-all-of-removed-annotation-only | annotation-only sub-schema removed from allOf in request body (no wire-contract effect) |
| Info | request-body-any-of-added | sub-schema added to anyOf in request body |
| Breaking | request-body-any-of-removed | sub-schema deleted from anyOf in request body |
| Breaking | request-body-contains-added | contains constraint added to request body |
| Info | request-body-contains-removed | contains constraint removed from request body |
| Breaking | request-body-dependent-required-added | request body dependentRequired added |
| Breaking | request-body-dependent-required-changed | request body dependentRequired changed |
| Info | request-body-dependent-required-removed | request body dependentRequired removed |
| Breaking | request-body-dependent-schema-added | dependent schema added to request body |
| Info | request-body-dependent-schema-removed | dependent schema removed from request body |
| Info | request-body-discriminator-added | request body discriminator added |
| Info | request-body-discriminator-mapping-added | request body discriminator mapping added |
| Info | request-body-discriminator-mapping-changed | request body discriminator mapping changed |
| Info | request-body-discriminator-mapping-deleted | request body discriminator mapping deleted |
| Info | request-body-discriminator-property-name-changed | request body discriminator property name changed |
| Info | request-body-discriminator-removed | request body discriminator deleted |
| Breaking | request-body-else-added | else subschema added to request body |
| Info | request-body-else-removed | else subschema removed from request body |
| Breaking | request-body-if-added | if subschema added to request body |
| Info | request-body-if-removed | if subschema removed from request body |
| Info | request-body-one-of-added | sub-schema added to oneOf in request body |
| Breaking | request-body-one-of-removed | sub-schema deleted from oneOf in request body |
| Info | request-body-prefix-items-added | sub-schema added to prefixItems in request body |
| Breaking | request-body-prefix-items-removed | sub-schema removed from prefixItems in request body |
| Breaking | request-body-property-names-added | propertyNames constraint added to request body |
| Info | request-body-property-names-removed | propertyNames constraint removed from request body |
| Breaking | request-body-then-added | then subschema added to request body |
| Info | request-body-then-removed | then subschema removed from request body |
| Breaking | request-body-unevaluated-items-added | unevaluatedItems constraint added to request body |
| Info | request-body-unevaluated-items-removed | unevaluatedItems constraint removed from request body |
| Breaking | request-body-unevaluated-properties-added | unevaluatedProperties constraint added to request body |
| Info | request-body-unevaluated-properties-removed | unevaluatedProperties constraint removed from request body |
| Breaking | request-property-all-of-added | sub-schema added to allOf in request property |
| Info | request-property-all-of-added-annotation-only | annotation-only sub-schema added to allOf in request property (no wire-contract effect) |
| Warning | request-property-all-of-removed | sub-schema deleted from allOf in request property |
| Info | request-property-all-of-removed-annotation-only | annotation-only sub-schema removed from allOf in request property (no wire-contract effect) |
| Info | request-property-any-of-added | sub-schema added to anyOf in request property |
| Breaking | request-property-any-of-removed | sub-schema deleted from anyOf in request property |
| Breaking | request-property-contains-added | contains constraint added to request property |
| Info | request-property-contains-removed | contains constraint removed from request property |
| Breaking | request-property-dependent-required-added | request property dependentRequired added |
| Breaking | request-property-dependent-required-changed | request property dependentRequired changed |
| Info | request-property-dependent-required-removed | request property dependentRequired removed |
| Breaking | request-property-dependent-schema-added | dependent schema added to request property |
| Info | request-property-dependent-schema-removed | dependent schema removed from request property |
| Info | request-property-discriminator-added | request property discriminator added |
| Info | request-property-discriminator-mapping-added | request property discriminator mapping added |
| Info | request-property-discriminator-mapping-changed | request property discriminator mapping changed |
| Info | request-property-discriminator-mapping-deleted | request property discriminator mapping deleted |
| Info | request-property-discriminator-property-name-changed | request property discriminator property name changed |
| Info | request-property-discriminator-removed | request property discriminator removed |
| Breaking | request-property-else-added | else subschema added to request property |
| Info | request-property-else-removed | else subschema removed from request property |
| Breaking | request-property-if-added | if subschema added to request property |
| Info | request-property-if-removed | if subschema removed from request property |
| Info | request-property-one-of-added | sub-schema added to oneOf in request property |
| Breaking | request-property-one-of-removed | sub-schema deleted from oneOf in request property |
| Info | request-property-prefix-items-added | sub-schema added to prefixItems in request property |
| Breaking | request-property-prefix-items-removed | sub-schema removed from prefixItems in request property |
| Breaking | request-property-property-names-added | propertyNames constraint added to request property |
| Info | request-property-property-names-removed | propertyNames constraint removed from request property |
| Breaking | request-property-then-added | then subschema added to request property |
| Info | request-property-then-removed | then subschema removed from request property |
| Breaking | request-property-unevaluated-items-added | unevaluatedItems constraint added to request property |
| Info | request-property-unevaluated-items-removed | unevaluatedItems constraint removed from request property |
| Breaking | request-property-unevaluated-properties-added | unevaluatedProperties constraint added to request property |
| Info | request-property-unevaluated-properties-removed | unevaluatedProperties constraint removed from request property |
| Info | response-body-all-of-added | sub-schema added to allOf in response body |
| Info | response-body-all-of-added-annotation-only | annotation-only sub-schema added to allOf in response body (no wire-contract effect) |
| Info | response-body-all-of-removed | sub-schema removed from allOf in response body |
| Info | response-body-all-of-removed-annotation-only | annotation-only sub-schema removed from allOf in response body (no wire-contract effect) |
| Info | response-body-any-of-added | sub-schema added to anyOf in response body |
| Info | response-body-any-of-removed | sub-schema removed from anyOf in response body |
| Info | response-body-contains-added | contains constraint added to response body |
| Breaking | response-body-contains-removed | contains constraint removed from response body |
| Info | response-body-dependent-required-added | response body dependentRequired added |
| Breaking | response-body-dependent-required-changed | response body dependentRequired changed |
| Breaking | response-body-dependent-required-removed | response body dependentRequired removed |
| Info | response-body-dependent-schema-added | dependent schema added to response body |
| Breaking | response-body-dependent-schema-removed | dependent schema removed from response body |
| Info | response-body-discriminator-added | response body discriminator added |
| Info | response-body-discriminator-mapping-added | response body discriminator mapping added |
| Info | response-body-discriminator-mapping-changed | response body discriminator mapping changed |
| Info | response-body-discriminator-mapping-deleted | response body discriminator mapping deleted |
| Info | response-body-discriminator-property-name-changed | response body discriminator property name changed |
| Info | response-body-discriminator-removed | response body discriminator removed |
| Info | response-body-else-added | else subschema added to response body |
| Breaking | response-body-else-removed | else subschema removed from response body |
| Info | response-body-if-added | if subschema added to response body |
| Breaking | response-body-if-removed | if subschema removed from response body |
| Breaking | response-body-one-of-added | sub-schema added to oneOf in response body |
| Info | response-body-one-of-removed | sub-schema removed from oneOf in response body |
| Breaking | response-body-prefix-items-added | sub-schema added to prefixItems in response body |
| Info | response-body-prefix-items-removed | sub-schema removed from prefixItems in response body |
| Info | response-body-property-names-added | propertyNames constraint added to response body |
| Breaking | response-body-property-names-removed | propertyNames constraint removed from response body |
| Info | response-body-then-added | then subschema added to response body |
| Breaking | response-body-then-removed | then subschema removed from response body |
| Info | response-body-unevaluated-items-added | unevaluatedItems constraint added to response body |
| Breaking | response-body-unevaluated-items-removed | unevaluatedItems constraint removed from response body |
| Info | response-body-unevaluated-properties-added | unevaluatedProperties constraint added to response body |
| Breaking | response-body-unevaluated-properties-removed | unevaluatedProperties constraint removed from response body |
| Info | response-property-all-of-added | sub-schema added to allOf in response property |
| Info | response-property-all-of-added-annotation-only | annotation-only sub-schema added to allOf in response property (no wire-contract effect) |
| Info | response-property-all-of-removed | sub-schema removed from allOf in response property |
| Info | response-property-all-of-removed-annotation-only | annotation-only sub-schema removed from allOf in response property (no wire-contract effect) |
| Info | response-property-any-of-added | sub-schema added to anyOf in response property |
| Info | response-property-any-of-removed | sub-schema removed from anyOf in response property |
| Info | response-property-contains-added | contains constraint added to response property |
| Breaking | response-property-contains-removed | contains constraint removed from response property |
| Info | response-property-dependent-required-added | response property dependentRequired added |
| Breaking | response-property-dependent-required-changed | response property dependentRequired changed |
| Breaking | response-property-dependent-required-removed | response property dependentRequired removed |
| Info | response-property-dependent-schema-added | dependent schema added to response property |
| Breaking | response-property-dependent-schema-removed | dependent schema removed from response property |
| Info | response-property-discriminator-added | response property discriminator added |
| Info | response-property-discriminator-mapping-added | response property discriminator mapping added |
| Info | response-property-discriminator-mapping-changed | response property discriminator mapping changed |
| Info | response-property-discriminator-mapping-deleted | response property discriminator mapping deleted |
| Info | response-property-discriminator-property-name-changed | response property discriminator property name changed |
| Info | response-property-discriminator-removed | response property discriminator removed |
| Info | response-property-else-added | else subschema added to response property |
| Breaking | response-property-else-removed | else subschema removed from response property |
| Info | response-property-if-added | if subschema added to response property |
| Breaking | response-property-if-removed | if subschema removed from response property |
| Breaking | response-property-one-of-added | sub-schema added to oneOf in response property |
| Info | response-property-one-of-removed | sub-schema removed from oneOf in response property |
| Breaking | response-property-prefix-items-added | sub-schema added to prefixItems in response property |
| Info | response-property-prefix-items-removed | sub-schema removed from prefixItems in response property |
| Info | response-property-property-names-added | propertyNames constraint added to response property |
| Breaking | response-property-property-names-removed | propertyNames constraint removed from response property |
| Info | response-property-then-added | then subschema added to response property |
| Breaking | response-property-then-removed | then subschema removed from response property |
| Info | response-property-unevaluated-items-added | unevaluatedItems constraint added to response property |
| Breaking | response-property-unevaluated-items-removed | unevaluatedItems constraint removed from response property |
| Info | response-property-unevaluated-properties-added | unevaluatedProperties constraint added to response property |
| Breaking | response-property-unevaluated-properties-removed | unevaluatedProperties constraint removed from response property |
Lifecycle12
| Type | ID | Description |
|---|---|---|
| Info | request-property-deprecated | request property deprecated |
| Breaking | request-property-deprecated-sunset-invalid | request property deprecated with invalid sunset date |
| Breaking | request-property-deprecated-sunset-missing | request property deprecated without sunset date |
| Info | request-property-deprecated-with-sunset | request property deprecated with sunset date |
| Info | request-property-reactivated | request property reactivated (deprecation set to false) |
| Breaking | request-property-sunset-date-too-small | deprecated request property sunset before min required deprecation days |
| Info | response-property-deprecated | response property deprecated |
| Breaking | response-property-deprecated-sunset-invalid | response property deprecated with invalid sunset date |
| Breaking | response-property-deprecated-sunset-missing | response property deprecated without sunset date |
| Info | response-property-deprecated-with-sunset | response property deprecated with sunset date |
| Info | response-property-reactivated | response property reactivated (deprecation set to false) |
| Breaking | response-property-sunset-date-too-small | deprecated response property sunset before min required deprecation days |
Parameters
64 changesExistence9
| Type | ID | Description |
|---|---|---|
| Info | new-optional-request-default-parameter-to-existing-path | optional request parameter added at path level |
| Info | new-optional-request-parameter | optional request parameter added to endpoint |
| Breaking | new-request-path-parameter | new request path parameter |
| Breaking | new-required-request-default-parameter-to-existing-path | required request parameter added at path level |
| Breaking | new-required-request-header-property | new required request header |
| Breaking | new-required-request-parameter | required request parameter added to endpoint |
| Warning | request-parameter-removed | request parameter deletedMitigation: This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first. |
| Breaking | request-parameter-removed-before-sunset | request parameter deleted before sunset date |
| Info | request-parameter-removed-with-deprecation | request parameter deleted after deprecation |
Requiredness3
| Type | ID | Description |
|---|---|---|
| Breaking | request-header-property-became-required | request header property became required |
| Info | request-parameter-became-optional | request parameter became optional |
| Breaking | request-parameter-became-required | request parameter became required |
Type & format9
| Type | ID | Description |
|---|---|---|
| Breaking | request-parameter-list-of-types-narrowed | request parameter list-of-types narrowed |
| Info | request-parameter-list-of-types-widened | request parameter list-of-types widened |
| Breaking | request-parameter-property-list-of-types-narrowed | request parameter property list-of-types narrowed |
| Info | request-parameter-property-list-of-types-widened | request parameter property list-of-types widened |
| Warning | request-parameter-property-type-changed | request parameter property type changed |
| Info | request-parameter-property-type-generalized | request parameter property type generalized |
| Breaking | request-parameter-property-type-specialized | request parameter property type specialized |
| Breaking | request-parameter-type-changed | request parameter type changed |
| Info | request-parameter-type-generalized | request parameter type generalized |
Constraints26
| Type | ID | Description |
|---|---|---|
| Breaking | request-parameter-exclusive-max-decreased | request parameter exclusiveMaximum decreased |
| Info | request-parameter-exclusive-max-increased | request parameter exclusiveMaximum increased |
| Warning | request-parameter-exclusive-max-set | request parameter exclusiveMaximum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-parameter-exclusive-min-decreased | request parameter exclusiveMinimum decreased |
| Breaking | request-parameter-exclusive-min-increased | request parameter exclusiveMinimum increased |
| Warning | request-parameter-exclusive-min-set | request parameter exclusiveMinimum setMitigation: This is a warning because the restriction is sometimes legitimately required. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-parameter-max-decreased | request parameter max decreased |
| Info | request-parameter-max-increased | request parameter max increased |
| Breaking | request-parameter-max-items-decreased | request parameter max items decreased |
| Info | request-parameter-max-items-increased | request parameter max items increased |
| Breaking | request-parameter-max-length-decreased | request parameter max length decreased |
| Info | request-parameter-max-length-increased | request parameter max length increased |
| Warning | request-parameter-max-length-set | request parameter max length setMitigation: This is a warning because the restriction is sometimes legitimately required, for security reasons or to correct an error in the specification. Before making such a change, confirm that clients can handle the new restriction. |
| Warning | request-parameter-max-set | request parameter max setMitigation: This is a warning because the restriction is sometimes legitimately required, for security reasons or to correct an error in the specification. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-parameter-min-decreased | request parameter min decreased |
| Breaking | request-parameter-min-increased | request parameter min increased |
| Info | request-parameter-min-items-decreased | request parameter min items decreased |
| Breaking | request-parameter-min-items-increased | request parameter min items increased |
| Warning | request-parameter-min-items-set | request parameter min items setMitigation: This is a warning because the restriction is sometimes legitimately required, for security reasons or to correct an error in the specification. Before making such a change, confirm that clients can handle the new restriction. |
| Info | request-parameter-min-length-decreased | request parameter min length decreased |
| Breaking | request-parameter-min-length-increased | request parameter min length increased |
| Warning | request-parameter-min-set | request parameter min setMitigation: This is a warning because the restriction is sometimes legitimately required, for security reasons or to correct an error in the specification. Before making such a change, confirm that clients can handle the new restriction. |
| Breaking | request-parameter-pattern-added | request parameter pattern set |
| Warning | request-parameter-pattern-changed | request parameter pattern changed |
| Info | request-parameter-pattern-generalized | request parameter pattern generalized |
| Info | request-parameter-pattern-removed | request parameter pattern unset |
Values10
| Type | ID | Description |
|---|---|---|
| Breaking | request-header-property-became-enum | request header property restricted to enum |
| Breaking | request-parameter-became-enum | request parameter restricted to enum |
| Breaking | request-parameter-default-value-added | request parameter default value set |
| Breaking | request-parameter-default-value-changed | request parameter default value changed |
| Breaking | request-parameter-default-value-removed | request parameter default value unset |
| Info | request-parameter-enum-value-added | request parameter enum value added |
| Breaking | request-parameter-enum-value-removed | request parameter enum value deleted |
| Info | request-parameter-property-enum-value-added | request parameter property enum value added |
| Breaking | request-parameter-property-enum-value-removed | request parameter property enum value removed |
| Breaking | request-parameter-x-extensible-enum-value-removed | request parameter x-extensible-enum value deleted |
Lifecycle7
| Type | ID | Description |
|---|---|---|
| Info | request-parameter-deprecated | request parameter deprecated |
| Breaking | request-parameter-deprecated-sunset-missing | request parameter deprecated without sunset date |
| Info | request-parameter-reactivated | request parameter reactivated (deprecation set to false) |
| Breaking | request-parameter-sunset-date-changed-too-small | request parameter sunset date moved below min required deprecation days |
| Breaking | request-parameter-sunset-date-too-small | deprecated request parameter sunset before min required deprecation days |
| Breaking | request-parameter-sunset-deleted | request parameter sunset date deleted while still deprecated |
| Breaking | request-parameter-sunset-parse | request parameter deprecated with invalid sunset date |
Request Body
8 changesExistence4
| Type | ID | Description |
|---|---|---|
| Info | request-body-added-optional | optional request body added |
| Breaking | request-body-added-required | required request body added |
| Info | request-body-media-type-added | request body media-type added |
| Breaking | request-body-media-type-removed | request body media-type deleted |
Requiredness2
| Type | ID | Description |
|---|---|---|
| Info | request-body-became-optional | request body became optional |
| Breaking | request-body-became-required | request body became required |
Type & format2
| Type | ID | Description |
|---|---|---|
| Breaking | request-body-content-encoding-changed | request body contentEncoding changed |
| Breaking | request-body-content-media-type-changed | request body contentMediaType changed |
Responses
11 changesExistence6
| Type | ID | Description |
|---|---|---|
| Info | response-media-type-added | response media type added |
| Breaking | response-media-type-removed | response media type removed |
| Info | response-non-success-status-added | response non-success status added |
| Info | response-non-success-status-removed | response non-success status removed |
| Info | response-success-status-added | response success status added |
| Breaking | response-success-status-removed | response success status removed |
Type & format5
| Type | ID | Description |
|---|---|---|
| Breaking | response-body-content-encoding-changed | response body contentEncoding changed |
| Breaking | response-body-content-media-type-changed | response body contentMediaType changed |
| Info | response-media-type-name-changed | response media type changed |
| Breaking | response-media-type-name-generalized | response media type changed to a more general type |
| Info | response-media-type-name-specialized | response media type changed to a more specific type |
Headers
3 changesExistence2
| Type | ID | Description |
|---|---|---|
| Warning | optional-response-header-removed | optional response header deleted |
| Breaking | required-response-header-removed | required response header removed |
Requiredness1
| Type | ID | Description |
|---|---|---|
| Breaking | response-header-became-optional | response header became optional |
Security & Connectivity
Security
16 changesExistence12
| Type | ID | Description |
|---|---|---|
| Info | api-global-security-added | security scheme added in security |
| Info | api-global-security-removed | security scheme deleted in security |
| Info | api-global-security-scope-added | scope added to a security scheme in security |
| Info | api-global-security-scope-removed | scope deleted from a security scheme in security |
| Info | api-security-added | security requirements added to endpoint |
| Info | api-security-component-added | security scheme added in components/securitySchemes |
| Info | api-security-component-oauth-scope-added | scope added to OAuth flow in components/securitySchemes |
| Info | api-security-component-oauth-scope-removed | scope deleted from OAuth flow in components/securitySchemes |
| Info | api-security-component-removed | security scheme deleted in components/securitySchemes |
| Info | api-security-removed | security requirements deleted from endpoint |
| Info | api-security-scope-added | scope added to an endpoint's security scheme |
| Info | api-security-scope-removed | scope deleted from an endpoint's security scheme |
Type & format4
| Type | ID | Description |
|---|---|---|
| Info | api-security-component-oauth-scope-changed | scope modified in OAuth flow in components/securitySchemes |
| Info | api-security-component-oauth-token-url-changed | token URL modified in OAuth flow in components/securitySchemes |
| Info | api-security-component-oauth-url-changed | auth URL modified in OAuth flow in components/securitySchemes |
| Info | api-security-component-type-changed | security scheme type modified in components/securitySchemes |
Breaking (198)Warning (29)Informational (247)
This list is generated from the oasdiff checks command, so it always matches the rules oasdiff actually runs. See the oasdiff GitHub repo for the source.