From cbb0dd1a3bcaa721c37f9a8a74f380ec37c96008 Mon Sep 17 00:00:00 2001 From: Aliaksandr Pinchuk Date: Tue, 13 May 2025 21:35:29 +0200 Subject: [PATCH] feat: add config and config_extended CSV files for OpenAPI diff analysis --- config.csv | 166 +++++++++++++++++++++++++++++++++++ config_extended.csv | 208 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 374 insertions(+) create mode 100644 config.csv create mode 100644 config_extended.csv diff --git a/config.csv b/config.csv new file mode 100644 index 00000000..0bfe84a9 --- /dev/null +++ b/config.csv @@ -0,0 +1,166 @@ +Element Path,Addition,Removal,Value Change,Optional → Required,Required → Optional,Type/Range Expansion,Type/Range Restriction +$.oldSpecOpenApi,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.newSpecOpenApi,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.newEndpoints,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.newEndpoints[*].path,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.newEndpoints[*].method,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.newEndpoints[*].summary,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.missingEndpoints,N/A,Breaking*,N/A,N/A,N/A,N/A,N/A +$.missingEndpoints[*].path,N/A,Breaking*,N/A,N/A,N/A,N/A,N/A +$.missingEndpoints[*].method,N/A,Breaking*,N/A,N/A,N/A,N/A,N/A +$.missingEndpoints[*].summary,N/A,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedOperations[*].pathUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].httpMethod,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].oldOperation,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].newOperation,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].summary,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].operationId,Non-breaking,Non-breaking,Breaking*,N/A,N/A,N/A,N/A +$.changedOperations[*].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.increased,Non-breaking,N/A,N/A,Breaking***,Non-breaking,N/A,N/A +$.changedOperations[*].parameters.increased[*],Non-breaking***,N/A,N/A,Breaking***,N/A,N/A,N/A +$.changedOperations[*].parameters.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].name,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].in,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedOperations[*].parameters.changed[*].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].style,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].explode,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].allowReserved,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedOperations[*].parameters.changed[*].schema,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].parameters.changed[*].content,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody,Breaking***,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedOperations[*].requestBody.content,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.content.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.content.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.content.changed,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.content.changed[*].schema,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].requestBody.content.changed[*].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.changed,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.changed[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.changed[*].required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.changed[*].schema,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].headers.changed[*].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content.changed,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content.changed[*].schema,N/A,N/A,Depends***,N/A,N/A,N/A,N/A +$.changedOperations[*].apiResponses.changed[*].content.changed[*].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedOperations[*].securityRequirements,Non-breaking,Non-breaking,Breaking****,N/A,N/A,Breaking,Non-breaking +$.changedOperations[*].securityRequirements.missing,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedOperations[*].securityRequirements.increased,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedOperations[*].securityRequirements.changed,N/A,N/A,Depends****,N/A,N/A,Breaking,Non-breaking +$.changedOperations[*].securityRequirements.changed[*].scopes,N/A,N/A,Depends****,N/A,N/A,Breaking,Non-breaking +$.changedOperations[*].extensions,Non-breaking,Non-breaking*******,Non-breaking*******,N/A,N/A,N/A,N/A +$.changedSchemas,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].oldSchema,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].newSchema,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].context,N/A,N/A,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].changedProperties,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].increasedProperties,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].missingProperties,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].changeDeprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.changedSchemas[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].example,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].changeTitle,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].required.increased,N/A,N/A,N/A,Breaking,N/A,N/A,N/A +$.changedSchemas[*].required.missing,N/A,N/A,N/A,N/A,Non-breaking,N/A,N/A +$.changedSchemas[*].changeDefault,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].enumeration,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].enumeration.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].enumeration.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].changeFormat,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].readOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].writeOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].changedType,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxLength,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].numericRange,N/A,N/A,N/A,N/A,N/A,Depends******,Depends****** +$.changedSchemas[*].numericRange.minimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].numericRange.maximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].numericRange.exclusiveMinimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].numericRange.exclusiveMaximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].multipleOf,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].minItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].minProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].uniqueItems,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].discriminatorPropertyChanged,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].pattern,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].items,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].oneOfSchema,N/A,N/A,Depends******,N/A,N/A,N/A,N/A +$.changedSchemas[*].oneOfSchema.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].oneOfSchema.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].oneOfSchema.changed,N/A,N/A,Depends******,N/A,N/A,N/A,N/A +$.changedSchemas[*].addProp,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].extensions,Non-breaking,Non-breaking*******,Non-breaking*******,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.missing,N/A,Breaking,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.changed,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.changed[*].type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].properties.changed[*].format,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].properties.changed[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.changed[*].nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].properties.changed[*].readOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].properties.changed[*].writeOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].properties.changed[*].enum,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].properties.changed[*].items,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].properties.changed[*].additionalProperties,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].format,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].items,N/A,N/A,Depends**,N/A,N/A,N/A,N/A +$.changedSchemas[*].enum,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].enum.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].enum.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].discriminator,Non-breaking,Breaking,Breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].discriminator.propertyName,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].discriminator.mapping,Non-breaking,Breaking,Breaking,N/A,N/A,N/A,N/A +$.changedSchemas[*].nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].oneOf,Breaking******,Breaking******,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].oneOf.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].oneOf.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].oneOf.changed,N/A,N/A,Depends******,N/A,N/A,N/A,N/A +$.changedSchemas[*].allOf,Breaking******,Breaking******,N/A,N/A,N/A,N/A,N/A +$.changedSchemas[*].allOf.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].allOf.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].allOf.changed,N/A,N/A,Depends******,N/A,N/A,N/A,N/A +$.changedSchemas[*].anyOf,Breaking******,Breaking******,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].anyOf.increased,Non-breaking,N/A,N/A,N/A,N/A,Non-breaking,N/A +$.changedSchemas[*].anyOf.missing,N/A,Breaking,N/A,N/A,N/A,N/A,Breaking +$.changedSchemas[*].anyOf.changed,N/A,N/A,Depends******,N/A,N/A,N/A,N/A +$.changedSchemas[*].additionalProperties,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].minItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].minLength,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxLength,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].minProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maxProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].minimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].maximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].exclusiveMinimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.changedSchemas[*].exclusiveMaximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.changedSchemas[*].uniqueItems,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.changedSchemas[*].pattern,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.changedExtensions,Non-breaking,Non-breaking*******,Non-breaking*******,N/A,N/A,N/A,N/A +$.changedExtensions.increased,Non-breaking,N/A,N/A,N/A,N/A,N/A,N/A +$.changedExtensions.missing,N/A,Non-breaking*******,N/A,N/A,N/A,N/A,N/A +$.changedExtensions.changed,N/A,N/A,Non-breaking*******,N/A,N/A,N/A,N/A \ No newline at end of file diff --git a/config_extended.csv b/config_extended.csv new file mode 100644 index 00000000..62c01bd6 --- /dev/null +++ b/config_extended.csv @@ -0,0 +1,208 @@ +Element Path (JSON Path),Addition,Removal,Value Change,Optional → Required,Required → Optional,Type/Range Expansion,Type/Range Restriction +$.openapi,N/A,N/A,Non-breaking,N/A,N/A,N/A,N/A +$.info,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.info.title,N/A,N/A,Non-breaking,N/A,N/A,N/A,N/A +$.info.summary,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.termsOfService,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.contact,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.info.contact.name,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.contact.url,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.contact.email,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.license,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.info.license.name,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.license.url,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.license.identifier,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.info.version,N/A,N/A,Non-breaking,N/A,N/A,N/A,N/A +$.jsonSchemaDialect,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.servers[*],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.servers[*].url,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.servers[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.servers[*].variables,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.servers[*].variables[:{name}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.servers[*].variables[:{name}].enum,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.servers[*].variables[:{name}].default,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.servers[*].variables[:{name}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}].summary,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].tags,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].summary,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].externalDocs,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].operationId,Non-breaking,Non-breaking,Breaking*,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*],Breaking***,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].name,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].in,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].allowEmptyValue,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].style,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].explode,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].allowReserved,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema.$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema.type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.format,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.enum,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.minimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.maximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.paths[:{path}][:{method}].parameters[*].schema.exclusiveMinimum,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.exclusiveMaximum,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.paths[:{path}][:{method}].parameters[*].schema.minLength,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.maxLength,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.paths[:{path}][:{method}].parameters[*].schema.pattern,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.multipleOf,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].parameters[*].schema.default,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema.nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema.readOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].schema.writeOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].example,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].parameters[*].content,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody,Breaking***,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.items,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.properties,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.properties[:{property}],Non-breaking***,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.required,N/A,Non-breaking,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].schema.additionalProperties,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].requestBody.content[:{mediaType}].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].requestBody.required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].responses,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses.default,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses.default.$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}].required,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].headers[:{name}].schema,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.items,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.properties,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.properties[:{property}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.required,N/A,Non-breaking,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].schema.additionalProperties,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].content[:{mediaType}].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].links,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].links[:{name}],Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].responses[:{status}].links[:{name}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].callbacks,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].callbacks[:{name}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].callbacks[:{name}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.paths[:{path}][:{method}].security,Non-breaking,Non-breaking,Breaking****,N/A,N/A,Breaking,Non-breaking +$.paths[:{path}][:{method}].servers,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.webhooks,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.webhooks[:{name}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.webhooks[:{name}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.components.schemas,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].$ref,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].format,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].items,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].properties,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].type,N/A,N/A,Breaking,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].properties[:{property}].format,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].properties[:{property}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].default,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].readOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].writeOnly,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].properties[:{property}].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].required,Non-breaking,Non-breaking,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].additionalProperties,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].default,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].enum,Non-breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].discriminator,Non-breaking,Breaking,Breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].discriminator.propertyName,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].discriminator.mapping,Non-breaking,Breaking,Breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].xml,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].externalDocs,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].example,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].examples,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].deprecated,Non-breaking,Non-breaking,Non-breaking**,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].allOf,Breaking******,Breaking******,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].oneOf,Breaking******,Breaking******,N/A,N/A,N/A,N/A,N/A +$.components.schemas[:{schema}].anyOf,Breaking******,Breaking******,N/A,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].not,Breaking,Breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].nullable,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].pattern,Non-breaking,Non-breaking,Breaking,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].minItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].maxItems,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.components.schemas[:{schema}].uniqueItems,N/A,N/A,N/A,Breaking,Non-breaking,N/A,N/A +$.components.schemas[:{schema}].minProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Non-breaking,Breaking +$.components.schemas[:{schema}].maxProperties,Non-breaking,Non-breaking,N/A,N/A,N/A,Breaking,Non-breaking +$.components.responses,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.responses[:{response}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.parameters,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.parameters[:{parameter}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.examples,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.components.examples[:{example}],Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.components.requestBodies,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.requestBodies[:{requestBody}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.headers,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.headers[:{header}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}],Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].type,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].name,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].in,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].scheme,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].bearerFormat,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.implicit,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.implicit.authorizationUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.implicit.scopes,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.password,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.password.tokenUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.password.scopes,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.clientCredentials,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.clientCredentials.tokenUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.clientCredentials.scopes,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.authorizationCode,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.authorizationCode.authorizationUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.authorizationCode.tokenUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].flows.authorizationCode.scopes,Non-breaking,Breaking,N/A,N/A,N/A,N/A,N/A +$.components.securitySchemes[:{name}].openIdConnectUrl,N/A,N/A,Breaking,N/A,N/A,N/A,N/A +$.components.links,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.components.links[:{name}],Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.components.callbacks,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.callbacks[:{name}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.pathItems,Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.components.pathItems[:{name}],Non-breaking,Breaking*****,N/A,N/A,N/A,N/A,N/A +$.security,Non-breaking,Non-breaking,Breaking****,N/A,N/A,Breaking,Non-breaking +$.tags,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.tags[*],Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.tags[*].name,N/A,N/A,Non-breaking,N/A,N/A,N/A,N/A +$.tags[*].description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.tags[*].externalDocs,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.externalDocs,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A,N/A +$.externalDocs.description,Non-breaking,Non-breaking,Non-breaking,N/A,N/A,N/A,N/A +$.externalDocs.url,Non-breaking,Non-breaking,Breaking,N/A,N/A,N/A,N/A +$['x-*'],Non-breaking,Non-breaking*******,Non-breaking*******,N/A,N/A,N/A,N/A \ No newline at end of file