Documentation
¶
Overview ¶
Package checker detects breaking changes and generates changelog messages between OpenAPI specifications.
Overview ¶
The checker analyzes a diff report (from the diff package) and applies a set of rules to detect breaking changes and other notable differences. It supports both path operations and webhooks.
Usage ¶
The main entry point is CheckBackwardCompatibility:
diffReport, _ := diff.Get(config, spec1, spec2) changes := checker.CheckBackwardCompatibility(checker.NewConfig(checker.GetAllRules()), diffReport, operationsSources)
Configuration ¶
Config controls which checks run and their severity levels:
- Checks: the list of BackwardCompatibilityCheck functions to run
- LogLevels: override default severity (ERR, WARN, INFO) for specific rule IDs
- MinSunsetBetaDays/MinSunsetStableDays: minimum deprecation periods
Use NewConfig with GetAllRules() for all checks, or GetDefaultRules() for breaking changes only.
Severity Levels ¶
Each rule has a default severity level:
- ERR: breaking change that will break existing clients
- WARN: potentially breaking change that may affect some clients
- INFO: non-breaking change for changelog purposes
Rules ¶
Rules are defined in rules.go with metadata including:
- Direction: whether the rule applies to requests, responses, or neither
- Area: the OpenAPI object the rule concerns (schema, parameters, requestBody, responses, paths, headers, security, tags, or components)
- Kind: the aspect of the contract that changed (existence, requiredness, mutability, type, constraints, values, structure, or lifecycle)
- Action: add, remove, change, generalize, specialize, increase, decrease, set
This metadata enables filtering and categorization of changes.
Webhooks ¶
Webhooks are handled by merging modified webhooks into PathsDiff with a "webhook:" prefix, allowing all path/operation rules to apply without duplication. Added/deleted webhooks are handled separately by WebhookUpdatedCheck since PathsDiff.Added/Deleted require lookup in openapi3.Paths objects that don't contain webhooks.
Localization ¶
Change messages support localization via the localizations package (generated from localizations_src). Messages use format strings with placeholders for dynamic values.
Index ¶
- Constants
- func CompareChanges(a, b Change) int
- func ComputeFingerprint(id, operation, path string, args []any) string
- func Fingerprint(c Change) string
- func GetAllRuleIds() []string
- func GetCheckLevels() map[string]Level
- func GetSeverityLevels(source io.Reader) (map[string]Level, error)
- func GetSupportedColorValues() []string
- func GetSupportedStabilityLevels() []string
- func IsColorEnabled(colorMode ColorMode) bool
- func IsDecreased(from any, to any) bool
- func IsIncreased(from any, to any) bool
- func ParameterSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func ProcessSeverityLevels(file string) (map[string]Level, error)
- func ResponseSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaAddedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaDeletedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SchemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- func SetPipedOutput(val *bool) *bool
- func SubschemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, ...) (*Source, *Source)
- type ApiChange
- func (c ApiChange) GetArgs() []any
- func (c ApiChange) GetComment(l Localizer) string
- func (c ApiChange) GetDisclaimers() []Disclaimer
- func (c ApiChange) GetId() string
- func (c ApiChange) GetLevel() Level
- func (c ApiChange) GetOperation() string
- func (c ApiChange) GetOperationId() string
- func (c ApiChange) GetPath() string
- func (c ApiChange) GetSection() string
- func (c ApiChange) GetSource() string
- func (c ApiChange) GetSourceColumn() int
- func (c ApiChange) GetSourceColumnEnd() int
- func (c ApiChange) GetSourceFile() string
- func (c ApiChange) GetSourceLine() int
- func (c ApiChange) GetSourceLineEnd() int
- func (c ApiChange) GetText(l Localizer) string
- func (c ApiChange) GetUncolorizedText(l Localizer) string
- func (c ApiChange) IsBreaking() bool
- func (c ApiChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c ApiChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c ApiChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c ApiChange) WithDetails(details string) ApiChange
- func (c ApiChange) WithDisclaimers(disclaimers []Disclaimer) ApiChange
- func (a ApiChange) WithSchema(schemaDiff *diff.SchemaDiff) ApiChange
- func (a ApiChange) WithSources(baseSource, revisionSource *Source) ApiChange
- type Area
- type BackwardCompatibilityCheck
- type BackwardCompatibilityChecks
- type BackwardCompatibilityRule
- type BackwardCompatibilityRules
- type Change
- type Changes
- func APIAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIComponentsSchemaRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIComponentsSecurityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIOperationIdUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APIRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APISecurityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APISunsetChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func APITagUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func AddedRequestBodyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func CheckBackwardCompatibility(config *Config, diffReport *diff.Diff, ...) Changes
- func CheckBackwardCompatibilityUntilLevel(config *Config, diffReport *diff.Diff, ...) Changes
- func MediaTypeSchemaExistenceCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestNonPathDefaultParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestNonPathParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequestPathParameterCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func NewRequiredRequestHeaderPropertyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ProcessIgnoredBackwardCompatibilityErrors(level Level, errs Changes, ignoreFile string, l Localizer) (Changes, error)
- func RequestBodyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyMediaTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestBodyRequiredUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestDiscriminatorUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestHeaderPropertyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestHeaderPropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterBecameNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterEnumValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxLengthSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMaxUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinItemsSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterMinUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterPatternAddedOrChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterRequiredValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterSchemaBecameFalseCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterSunsetChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestParameterXExtensibleEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyAllOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyAnyOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyBecameEnumCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyBecameNotNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyConstChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyContainsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyContentUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDependentRequiredChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDependentSchemasUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyEnumValueUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyIfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxItemsSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxLengthSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxPropertiesSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxPropertiesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMaxSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinItemsIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinItemsSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinLengthUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinPropertiesIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMinSetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyMultipleOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyOneOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPatternPropertiesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPatternUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPrefixItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyPropertyNamesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyRequiredUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertySchemaBecameFalseCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyUnevaluatedUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyUniqueItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func RequestPropertyXExtensibleEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseDiscriminatorUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderBecameNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderBecameOptionalCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderSchemaBecameFalseCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseHeaderTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeNameUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseMediaTypeUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseNonSuccessStatusUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseOptionalPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseOptionalPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseParameterEnumValueRemovedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePatternAddedOrChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyAllOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyAnyOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameOptionalCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyBecameRequiredCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyConstChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyContainsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyContentUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDefaultValueChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDependentRequiredChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDependentSchemasUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyEnumValueAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyIfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyListOfTypesChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxItemsIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxLengthIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxLengthUnsetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMaxPropertiesIncreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinItemsDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinItemsUnsetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinLengthDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMinPropertiesDecreasedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyMultipleOfUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyOneOfUpdated(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPatternPropertiesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPrefixItemsUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyPropertyNamesUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertySchemaBecameFalseCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyUnevaluatedUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponsePropertyUniqueItemsUnsetCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseRequiredPropertyUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseRequiredPropertyWriteOnlyReadOnlyCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func ResponseSuccessStatusUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- func WebhookUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, ...) Changes
- type ColorMode
- type CommonChange
- type ComponentChange
- func (c ComponentChange) GetArgs() []any
- func (c ComponentChange) GetComment(l Localizer) string
- func (ComponentChange) GetDisclaimers() []Disclaimer
- func (c ComponentChange) GetId() string
- func (c ComponentChange) GetLevel() Level
- func (ComponentChange) GetOperation() string
- func (ComponentChange) GetOperationId() string
- func (ComponentChange) GetPath() string
- func (c ComponentChange) GetSection() string
- func (c ComponentChange) GetSource() string
- func (c ComponentChange) GetSourceColumn() int
- func (c ComponentChange) GetSourceColumnEnd() int
- func (c ComponentChange) GetSourceFile() string
- func (c ComponentChange) GetSourceLine() int
- func (c ComponentChange) GetSourceLineEnd() int
- func (c ComponentChange) GetText(l Localizer) string
- func (c ComponentChange) GetUncolorizedText(l Localizer) string
- func (c ComponentChange) IsBreaking() bool
- func (c ComponentChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c ComponentChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c ComponentChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c ComponentChange) WithSources(baseSource, revisionSource *Source) ComponentChange
- type Config
- type Direction
- type Disclaimer
- type Effect
- type Guard
- type InfoChange
- func (c InfoChange) GetArgs() []any
- func (c InfoChange) GetComment(l Localizer) string
- func (InfoChange) GetDisclaimers() []Disclaimer
- func (c InfoChange) GetId() string
- func (c InfoChange) GetLevel() Level
- func (InfoChange) GetOperation() string
- func (InfoChange) GetOperationId() string
- func (InfoChange) GetPath() string
- func (c InfoChange) GetSection() string
- func (InfoChange) GetSource() string
- func (InfoChange) GetSourceColumn() int
- func (InfoChange) GetSourceColumnEnd() int
- func (InfoChange) GetSourceFile() string
- func (InfoChange) GetSourceLine() int
- func (InfoChange) GetSourceLineEnd() int
- func (c InfoChange) GetText(l Localizer) string
- func (c InfoChange) GetUncolorizedText(l Localizer) string
- func (c InfoChange) IsBreaking() bool
- func (c InfoChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c InfoChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c InfoChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c InfoChange) WithSources(baseSource, revisionSource *Source) InfoChange
- type Kind
- type Level
- type Localizer
- type Option
- func WithAttributes(attributes []string) Option
- func WithChecks(checks BackwardCompatibilityChecks) Option
- func WithDeprecation(deprecationDaysBeta uint, deprecationDaysStable uint) Option
- func WithSeverityLevels(severityLevels map[string]Level) Option
- func WithSingleCheck(check BackwardCompatibilityCheck) Option
- func WithStabilityLevel(level string) Option
- type SecurityChange
- func (c SecurityChange) GetArgs() []any
- func (c SecurityChange) GetComment(l Localizer) string
- func (SecurityChange) GetDisclaimers() []Disclaimer
- func (c SecurityChange) GetId() string
- func (c SecurityChange) GetLevel() Level
- func (r SecurityChange) GetOperation() string
- func (SecurityChange) GetOperationId() string
- func (SecurityChange) GetPath() string
- func (c SecurityChange) GetSection() string
- func (c SecurityChange) GetSource() string
- func (c SecurityChange) GetSourceColumn() int
- func (c SecurityChange) GetSourceColumnEnd() int
- func (c SecurityChange) GetSourceFile() string
- func (c SecurityChange) GetSourceLine() int
- func (c SecurityChange) GetSourceLineEnd() int
- func (c SecurityChange) GetText(l Localizer) string
- func (c SecurityChange) GetUncolorizedText(l Localizer) string
- func (c SecurityChange) IsBreaking() bool
- func (c SecurityChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
- func (c SecurityChange) MultiLineError(l Localizer, colorMode ColorMode) string
- func (c SecurityChange) SingleLineError(l Localizer, colorMode ColorMode) string
- func (c SecurityChange) WithSources(baseSource, revisionSource *Source) SecurityChange
- type Source
- func NewEmptySource() *Source
- func NewSource(file string, line int, column int) *Source
- func NewSourceFromField(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- func NewSourceFromOrigin(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- func NewSourceFromSequenceItem(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, ...) *Source
- type StabilityLevel
Examples ¶
Constants ¶
const ( AddedRequiredRequestBodyId = "request-body-added-required" AddedOptionalRequestBodyId = "request-body-added-optional" )
const ( EndpointReactivatedId = "endpoint-reactivated" APIDeprecatedSunsetParseId = "api-deprecated-sunset-parse" APIDeprecatedSunsetMissingId = "api-deprecated-sunset-missing" APIInvalidStabilityLevelId = "api-invalid-stability-level" APISunsetDateTooSmallId = "api-sunset-date-too-small" EndpointDeprecatedId = "endpoint-deprecated" EndpointDeprecatedWithSunsetId = "endpoint-deprecated-with-sunset" )
const ( APIOperationIdRemovedId = "api-operation-id-removed" APIOperationIdAddId = "api-operation-id-added" )
const ( APIPathRemovedWithoutDeprecationId = "api-path-removed-without-deprecation" APIPathRemovedWithDeprecationId = "api-path-removed-with-deprecation" APIPathSunsetParseId = "api-path-sunset-parse" APIPathRemovedBeforeSunsetId = "api-path-removed-before-sunset" APIRemovedWithoutDeprecationId = "api-removed-without-deprecation" APIRemovedWithDeprecationId = "api-removed-with-deprecation" APIRemovedBeforeSunsetId = "api-removed-before-sunset" )
const ( APISecurityRemovedCheckId = "api-security-removed" APISecurityAddedCheckId = "api-security-added" APISecurityScopeAddedId = "api-security-scope-added" APISecurityScopeRemovedId = "api-security-scope-removed" APIGlobalSecurityRemovedCheckId = "api-global-security-removed" APIGlobalSecurityAddedCheckId = "api-global-security-added" APIGlobalSecurityScopeAddedId = "api-global-security-scope-added" APIGlobalSecurityScopeRemovedId = "api-global-security-scope-removed" )
const ( APIStabilityDecreasedId = "api-stability-decreased" APIStabilityIncreasedId = "api-stability-increased" )
const ( APISunsetDeletedId = "sunset-deleted" APISunsetDateChangedTooSmallId = "api-sunset-date-changed-too-small" )
const ( StabilityDraft = "draft" StabilityAlpha = "alpha" StabilityBeta = "beta" StabilityStable = "stable" )
const ( // Deprecated: use StabilityDraft. STABILITY_DRAFT = StabilityDraft // Deprecated: use StabilityAlpha. STABILITY_ALPHA = StabilityAlpha // Deprecated: use StabilityBeta. STABILITY_BETA = StabilityBeta // Deprecated: use StabilityStable. STABILITY_STABLE = StabilityStable )
const ( APITagRemovedId = "api-tag-removed" APITagAddedId = "api-tag-added" )
const ( APISchemasRemovedId = "api-schema-removed" ComponentSchemas = "schemas" )
const ( APIComponentsSecurityRemovedId = "api-security-component-removed" APIComponentsSecurityAddedId = "api-security-component-added" APIComponentsSecurityComponentOauthUrlUpdatedId = "api-security-component-oauth-url-changed" APIComponentsSecurityTypeUpdatedId = "api-security-component-type-changed" APIComponentsSecurityOauthTokenUrlUpdatedId = "api-security-component-oauth-token-url-changed" APIComponentSecurityOauthScopeAddedId = "api-security-component-oauth-scope-added" APIComponentSecurityOauthScopeRemovedId = "api-security-component-oauth-scope-removed" APIComponentSecurityOauthScopeUpdatedId = "api-security-component-oauth-scope-changed" )
const ( // Regular schema RequestBodyMediaTypeSchemaAddedId = "request-body-media-type-schema-added" RequestBodyMediaTypeSchemaRemovedId = "request-body-media-type-schema-removed" ResponseBodyMediaTypeSchemaAddedId = "response-body-media-type-schema-added" ResponseBodyMediaTypeSchemaRemovedId = "response-body-media-type-schema-removed" // OpenAPI 3.2 itemSchema RequestBodyMediaTypeItemSchemaAddedId = "request-body-media-type-item-schema-added" RequestBodyMediaTypeItemSchemaRemovedId = "request-body-media-type-item-schema-removed" ResponseBodyMediaTypeItemSchemaAddedId = "response-body-media-type-item-schema-added" ResponseBodyMediaTypeItemSchemaRemovedId = "response-body-media-type-item-schema-removed" ResponseBodyMediaTypeItemSchemaRemovedUntypedId = "response-body-media-type-item-schema-removed-untyped" )
const ( NewRequiredRequestDefaultParameterToExistingPathId = "new-required-request-default-parameter-to-existing-path" NewOptionalRequestDefaultParameterToExistingPathId = "new-optional-request-default-parameter-to-existing-path" )
const ( NewRequiredRequestParameterId = "new-required-request-parameter" NewOptionalRequestParameterId = "new-optional-request-parameter" )
const ( RequestPropertyStabilityDecreasedId = "request-property-stability-decreased" RequestPropertyStabilityIncreasedId = "request-property-stability-increased" ResponsePropertyStabilityDecreasedId = "response-property-stability-decreased" ResponsePropertyStabilityIncreasedId = "response-property-stability-increased" )
const ( RequestBodyMediaTypeAddedId = "request-body-media-type-added" RequestBodyMediaTypeRemovedId = "request-body-media-type-removed" )
const ( RequestBodyBecameOptionalId = "request-body-became-optional" RequestBodyBecameRequiredId = "request-body-became-required" )
const ( RequestBodyDiscriminatorAddedId = "request-body-discriminator-added" RequestBodyDiscriminatorRemovedId = "request-body-discriminator-removed" RequestBodyDiscriminatorPropertyNameChangedId = "request-body-discriminator-property-name-changed" RequestBodyDiscriminatorMappingAddedId = "request-body-discriminator-mapping-added" RequestBodyDiscriminatorMappingDeletedId = "request-body-discriminator-mapping-deleted" RequestBodyDiscriminatorMappingChangedId = "request-body-discriminator-mapping-changed" RequestPropertyDiscriminatorAddedId = "request-property-discriminator-added" RequestPropertyDiscriminatorRemovedId = "request-property-discriminator-removed" RequestPropertyDiscriminatorPropertyNameChangedId = "request-property-discriminator-property-name-changed" RequestPropertyDiscriminatorMappingAddedId = "request-property-discriminator-mapping-added" RequestPropertyDiscriminatorMappingDeletedId = "request-property-discriminator-mapping-deleted" RequestPropertyDiscriminatorMappingChangedId = "request-property-discriminator-mapping-changed" )
const ( RequestParameterBecameNullableId = "request-parameter-became-nullable" RequestParameterBecameNotNullableId = "request-parameter-became-not-nullable" RequestParameterPropertyBecameNullableId = "request-parameter-property-became-nullable" RequestParameterPropertyBecameNotNullableId = "request-parameter-property-became-not-nullable" )
const ( RequestParameterReactivatedId = "request-parameter-reactivated" RequestParameterDeprecatedSunsetMissingId = "request-parameter-deprecated-sunset-missing" RequestParameterSunsetDateTooSmallId = "request-parameter-sunset-date-too-small" RequestParameterDeprecatedId = "request-parameter-deprecated" )
const ( RequestParameterEnumValueAddedId = "request-parameter-enum-value-added" RequestParameterEnumValueRemovedId = "request-parameter-enum-value-removed" RequestParameterPropertyEnumValueAddedId = "request-parameter-property-enum-value-added" RequestParameterPropertyEnumValueRemovedId = "request-parameter-property-enum-value-removed" )
const ( RequestParameterListOfTypesWidenedId = "request-parameter-list-of-types-widened" RequestParameterListOfTypesNarrowedId = "request-parameter-list-of-types-narrowed" RequestParameterPropertyListOfTypesWidenedId = "request-parameter-property-list-of-types-widened" RequestParameterPropertyListOfTypesNarrowedId = "request-parameter-property-list-of-types-narrowed" )
const ( RequestParameterPatternAddedId = "request-parameter-pattern-added" RequestParameterPatternRemovedId = "request-parameter-pattern-removed" RequestParameterPatternChangedId = "request-parameter-pattern-changed" RequestParameterPatternGeneralizedId = "request-parameter-pattern-generalized" PatternChangedCommentId = "pattern-changed-warn-comment" PatternAddedCommentId = "pattern-added-error-comment" )
const ( RequestParameterRemovedId = "request-parameter-removed" // this is actually the "without deprecation" case but we leave it as is for backward compatibility RequestParameterRemovedWithDeprecationId = "request-parameter-removed-with-deprecation" RequestParameterSunsetParseId = "request-parameter-sunset-parse" ParameterRemovedBeforeSunsetId = "request-parameter-removed-before-sunset" )
const ( RequestParameterBecomeRequiredId = "request-parameter-became-required" RequestParameterBecomeOptionalId = "request-parameter-became-optional" )
const ( RequestParameterSunsetDeletedId = "request-parameter-sunset-deleted" RequestParameterSunsetDateChangedTooSmallId = "request-parameter-sunset-date-changed-too-small" )
const ( RequestParameterDefaultValueChangedId = "request-parameter-default-value-changed" RequestParameterDefaultValueAddedId = "request-parameter-default-value-added" RequestParameterDefaultValueRemovedId = "request-parameter-default-value-removed" )
const ( RequestParameterMaxItemsIncreasedId = "request-parameter-max-items-increased" RequestParameterMaxItemsDecreasedId = "request-parameter-max-items-decreased" )
const ( RequestParameterMaxLengthDecreasedId = "request-parameter-max-length-decreased" RequestParameterMaxLengthIncreasedId = "request-parameter-max-length-increased" )
const ( RequestParameterMaxSetId = "request-parameter-max-set" RequestParameterExclusiveMaxSetId = "request-parameter-exclusive-max-set" )
const ( RequestParameterMaxDecreasedId = "request-parameter-max-decreased" RequestParameterMaxIncreasedId = "request-parameter-max-increased" RequestParameterExclusiveMaxDecreasedId = "request-parameter-exclusive-max-decreased" RequestParameterExclusiveMaxIncreasedId = "request-parameter-exclusive-max-increased" )
const ( RequestParameterMinItemsIncreasedId = "request-parameter-min-items-increased" RequestParameterMinItemsDecreasedId = "request-parameter-min-items-decreased" )
const ( RequestParameterMinLengthIncreasedId = "request-parameter-min-length-increased" RequestParameterMinLengthDecreasedId = "request-parameter-min-length-decreased" )
const ( RequestParameterMinSetId = "request-parameter-min-set" RequestParameterExclusiveMinSetId = "request-parameter-exclusive-min-set" )
const ( RequestParameterMinIncreasedId = "request-parameter-min-increased" RequestParameterMinDecreasedId = "request-parameter-min-decreased" RequestParameterExclusiveMinIncreasedId = "request-parameter-exclusive-min-increased" RequestParameterExclusiveMinDecreasedId = "request-parameter-exclusive-min-decreased" )
const ( RequestParameterTypeChangedId = "request-parameter-type-changed" RequestParameterTypeGeneralizedId = "request-parameter-type-generalized" RequestParameterPropertyTypeChangedId = "request-parameter-property-type-changed" RequestParameterPropertyTypeGeneralizedId = "request-parameter-property-type-generalized" RequestParameterPropertyTypeSpecializedId = "request-parameter-property-type-specialized" RequestParameterPropertyTypeChangedCommentId = "request-parameter-property-type-changed-warn-comment" RequestParameterTypeFormExplodeArrayCommentId = "request-parameter-type-form-explode-array-comment" )
const ( RequestBodyAllOfAddedId = "request-body-all-of-added" RequestBodyAllOfRemovedId = "request-body-all-of-removed" RequestPropertyAllOfAddedId = "request-property-all-of-added" RequestPropertyAllOfRemovedId = "request-property-all-of-removed" RequestBodyAllOfAddedAnnotationOnlyId = "request-body-all-of-added-annotation-only" RequestBodyAllOfRemovedAnnotationOnlyId = "request-body-all-of-removed-annotation-only" RequestPropertyAllOfAddedAnnotationOnlyId = "request-property-all-of-added-annotation-only" RequestPropertyAllOfRemovedAnnotationOnlyId = "request-property-all-of-removed-annotation-only" )
const ( RequestBodyAnyOfAddedId = "request-body-any-of-added" RequestBodyAnyOfRemovedId = "request-body-any-of-removed" RequestPropertyAnyOfAddedId = "request-property-any-of-added" RequestPropertyAnyOfRemovedId = "request-property-any-of-removed" )
const ( RequestBodyBecomeNotNullableId = "request-body-became-not-nullable" RequestBodyBecomeNullableId = "request-body-became-nullable" RequestPropertyBecomeNotNullableId = "request-property-became-not-nullable" RequestPropertyBecomeNullableId = "request-property-became-nullable" )
const ( RequestBodyConstAddedId = "request-body-const-added" RequestBodyConstRemovedId = "request-body-const-removed" RequestBodyConstChangedId = "request-body-const-changed" RequestPropertyConstAddedId = "request-property-const-added" RequestPropertyConstRemovedId = "request-property-const-removed" RequestPropertyConstChangedId = "request-property-const-changed" )
const ( RequestBodyContainsAddedId = "request-body-contains-added" RequestBodyContainsRemovedId = "request-body-contains-removed" RequestBodyMinContainsIncreasedId = "request-body-min-contains-increased" RequestBodyMinContainsDecreasedId = "request-body-min-contains-decreased" RequestBodyMaxContainsIncreasedId = "request-body-max-contains-increased" RequestBodyMaxContainsDecreasedId = "request-body-max-contains-decreased" RequestPropertyContainsAddedId = "request-property-contains-added" RequestPropertyContainsRemovedId = "request-property-contains-removed" RequestPropertyMinContainsIncreasedId = "request-property-min-contains-increased" RequestPropertyMinContainsDecreasedId = "request-property-min-contains-decreased" RequestPropertyMaxContainsIncreasedId = "request-property-max-contains-increased" RequestPropertyMaxContainsDecreasedId = "request-property-max-contains-decreased" )
const ( RequestBodyContentSchemaAddedId = "request-body-content-schema-added" RequestBodyContentSchemaRemovedId = "request-body-content-schema-removed" RequestBodyContentMediaTypeChangedId = "request-body-content-media-type-changed" RequestBodyContentEncodingChangedId = "request-body-content-encoding-changed" RequestPropertyContentSchemaAddedId = "request-property-content-schema-added" RequestPropertyContentSchemaRemovedId = "request-property-content-schema-removed" RequestPropertyContentMediaTypeChangedId = "request-property-content-media-type-changed" RequestPropertyContentEncodingChangedId = "request-property-content-encoding-changed" )
const ( RequestBodyDefaultValueAddedId = "request-body-default-value-added" RequestBodyDefaultValueRemovedId = "request-body-default-value-removed" RequestBodyDefaultValueChangedId = "request-body-default-value-changed" RequestPropertyDefaultValueAddedId = "request-property-default-value-added" RequestPropertyDefaultValueRemovedId = "request-property-default-value-removed" RequestPropertyDefaultValueChangedId = "request-property-default-value-changed" )
const ( RequestBodyDependentRequiredAddedId = "request-body-dependent-required-added" RequestBodyDependentRequiredRemovedId = "request-body-dependent-required-removed" RequestBodyDependentRequiredChangedId = "request-body-dependent-required-changed" RequestPropertyDependentRequiredAddedId = "request-property-dependent-required-added" RequestPropertyDependentRequiredRemovedId = "request-property-dependent-required-removed" RequestPropertyDependentRequiredChangedId = "request-property-dependent-required-changed" )
const ( RequestBodyDependentSchemaAddedId = "request-body-dependent-schema-added" RequestBodyDependentSchemaRemovedId = "request-body-dependent-schema-removed" RequestPropertyDependentSchemaAddedId = "request-property-dependent-schema-added" RequestPropertyDependentSchemaRemovedId = "request-property-dependent-schema-removed" )
const ( RequestPropertyDeprecatedId = "request-property-deprecated" RequestPropertyDeprecatedWithSunsetId = "request-property-deprecated-with-sunset" RequestPropertyDeprecatedSunsetMissingId = "request-property-deprecated-sunset-missing" RequestPropertyDeprecatedInvalidId = "request-property-deprecated-sunset-invalid" RequestPropertyReactivatedId = "request-property-reactivated" RequestPropertySunsetDateTooSmallId = "request-property-sunset-date-too-small" )
const ( RequestPropertyEnumValueRemovedId = "request-property-enum-value-removed" RequestReadOnlyPropertyEnumValueRemovedId = "request-read-only-property-enum-value-removed" RequestPropertyEnumValueAddedId = "request-property-enum-value-added" )
const ( RequestBodyIfAddedId = "request-body-if-added" RequestBodyIfRemovedId = "request-body-if-removed" RequestBodyThenAddedId = "request-body-then-added" RequestBodyThenRemovedId = "request-body-then-removed" RequestBodyElseAddedId = "request-body-else-added" RequestBodyElseRemovedId = "request-body-else-removed" RequestPropertyIfAddedId = "request-property-if-added" RequestPropertyIfRemovedId = "request-property-if-removed" RequestPropertyThenAddedId = "request-property-then-added" RequestPropertyThenRemovedId = "request-property-then-removed" RequestPropertyElseAddedId = "request-property-else-added" RequestPropertyElseRemovedId = "request-property-else-removed" )
const ( RequestBodyListOfTypesWidenedId = "request-body-list-of-types-widened" RequestBodyListOfTypesNarrowedId = "request-body-list-of-types-narrowed" RequestPropertyListOfTypesWidenedId = "request-property-list-of-types-widened" RequestPropertyListOfTypesNarrowedId = "request-property-list-of-types-narrowed" )
const ( RequestBodyMaxItemsSetId = "request-body-max-items-set" RequestPropertyMaxItemsSetId = "request-property-max-items-set" )
const ( RequestBodyMaxItemsDecreasedId = "request-body-max-items-decreased" RequestBodyMaxItemsIncreasedId = "request-body-max-items-increased" RequestPropertyMaxItemsDecreasedId = "request-property-max-items-decreased" RequestReadOnlyPropertyMaxItemsDecreasedId = "request-read-only-property-max-items-decreased" RequestPropertyMaxItemsIncreasedId = "request-property-max-items-increased" )
const ( RequestBodyMaxLengthSetId = "request-body-max-length-set" RequestPropertyMaxLengthSetId = "request-property-max-length-set" )
const ( RequestBodyMaxLengthDecreasedId = "request-body-max-length-decreased" RequestBodyMaxLengthIncreasedId = "request-body-max-length-increased" RequestPropertyMaxLengthDecreasedId = "request-property-max-length-decreased" RequestReadOnlyPropertyMaxLengthDecreasedId = "request-read-only-property-max-length-decreased" RequestPropertyMaxLengthIncreasedId = "request-property-max-length-increased" )
const ( RequestBodyMaxPropertiesSetId = "request-body-max-properties-set" RequestPropertyMaxPropertiesSetId = "request-property-max-properties-set" )
const ( RequestBodyMaxPropertiesDecreasedId = "request-body-max-properties-decreased" RequestBodyMaxPropertiesIncreasedId = "request-body-max-properties-increased" RequestPropertyMaxPropertiesDecreasedId = "request-property-max-properties-decreased" RequestReadOnlyPropertyMaxPropertiesDecreasedId = "request-read-only-property-max-properties-decreased" RequestPropertyMaxPropertiesIncreasedId = "request-property-max-properties-increased" )
const ( RequestBodyMaxSetId = "request-body-max-set" RequestPropertyMaxSetId = "request-property-max-set" RequestBodyExclusiveMaxSetId = "request-body-exclusive-max-set" RequestPropertyExclusiveMaxSetId = "request-property-exclusive-max-set" )
const ( RequestBodyMaxDecreasedId = "request-body-max-decreased" RequestBodyMaxIncreasedId = "request-body-max-increased" RequestPropertyMaxDecreasedId = "request-property-max-decreased" RequestReadOnlyPropertyMaxDecreasedId = "request-read-only-property-max-decreased" RequestPropertyMaxIncreasedId = "request-property-max-increased" RequestBodyExclusiveMaxDecreasedId = "request-body-exclusive-max-decreased" RequestBodyExclusiveMaxIncreasedId = "request-body-exclusive-max-increased" RequestPropertyExclusiveMaxDecreasedId = "request-property-exclusive-max-decreased" RequestReadOnlyPropertyExclusiveMaxDecreasedId = "request-read-only-property-exclusive-max-decreased" RequestPropertyExclusiveMaxIncreasedId = "request-property-exclusive-max-increased" )
const ( RequestBodyMinItemsIncreasedId = "request-body-min-items-increased" RequestPropertyMinItemsIncreasedId = "request-property-min-items-increased" )
const ( RequestBodyMinItemsSetId = "request-body-min-items-set" RequestPropertyMinItemsSetId = "request-property-min-items-set" )
const ( RequestBodyMinLengthIncreasedId = "request-body-min-length-increased" RequestBodyMinLengthDecreasedId = "request-body-min-length-decreased" RequestPropertyMinLengthIncreasedId = "request-property-min-length-increased" RequestPropertyMinLengthDecreasedId = "request-property-min-length-decreased" )
const ( RequestBodyMinPropertiesIncreasedId = "request-body-min-properties-increased" RequestPropertyMinPropertiesIncreasedId = "request-property-min-properties-increased" )
const ( RequestBodyMinSetId = "request-body-min-set" RequestPropertyMinSetId = "request-property-min-set" RequestBodyExclusiveMinSetId = "request-body-exclusive-min-set" RequestPropertyExclusiveMinSetId = "request-property-exclusive-min-set" )
const ( RequestBodyMinIncreasedId = "request-body-min-increased" RequestBodyMinDecreasedId = "request-body-min-decreased" RequestPropertyMinIncreasedId = "request-property-min-increased" RequestReadOnlyPropertyMinIncreasedId = "request-read-only-property-min-increased" RequestPropertyMinDecreasedId = "request-property-min-decreased" RequestBodyExclusiveMinIncreasedId = "request-body-exclusive-min-increased" RequestBodyExclusiveMinDecreasedId = "request-body-exclusive-min-decreased" RequestPropertyExclusiveMinIncreasedId = "request-property-exclusive-min-increased" RequestReadOnlyPropertyExclusiveMinIncreasedId = "request-read-only-property-exclusive-min-increased" RequestPropertyExclusiveMinDecreasedId = "request-property-exclusive-min-decreased" )
const ( RequestBodyMultipleOfSetId = "request-body-multiple-of-set" RequestPropertyMultipleOfSetId = "request-property-multiple-of-set" RequestBodyMultipleOfUnsetId = "request-body-multiple-of-unset" RequestPropertyMultipleOfUnsetId = "request-property-multiple-of-unset" RequestBodyMultipleOfChangedId = "request-body-multiple-of-changed" RequestPropertyMultipleOfChangedId = "request-property-multiple-of-changed" RequestBodyMultipleOfGeneralizedId = "request-body-multiple-of-generalized" RequestPropertyMultipleOfGeneralizedId = "request-property-multiple-of-generalized" )
const ( RequestBodyOneOfAddedId = "request-body-one-of-added" RequestBodyOneOfRemovedId = "request-body-one-of-removed" RequestPropertyOneOfAddedId = "request-property-one-of-added" RequestPropertyOneOfRemovedId = "request-property-one-of-removed" )
const ( RequestPropertyPatternRemovedId = "request-property-pattern-removed" RequestPropertyPatternAddedId = "request-property-pattern-added" RequestPropertyPatternChangedId = "request-property-pattern-changed" RequestPropertyPatternGeneralizedId = "request-property-pattern-generalized" )
const ( RequestBodyPatternPropertyAddedId = "request-body-pattern-property-added" RequestBodyPatternPropertyRemovedId = "request-body-pattern-property-removed" RequestPropertyPatternPropertyAddedId = "request-property-pattern-property-added" RequestPropertyPatternPropertyRemovedId = "request-property-pattern-property-removed" )
const ( RequestBodyPrefixItemsAddedId = "request-body-prefix-items-added" RequestBodyPrefixItemsRemovedId = "request-body-prefix-items-removed" RequestPropertyPrefixItemsAddedId = "request-property-prefix-items-added" RequestPropertyPrefixItemsRemovedId = "request-property-prefix-items-removed" // Shared by the request and response prefixItems checks. A position no // prefixItems entry covers is governed by items, so an added entry may // constrain a position that was open or open one that items closed, and // the two schemas cannot be ordered. The direction is undetermined. PrefixItemsChangedCommentId = "prefix-items-changed-warning-comment" )
const ( RequestBodyPropertyNamesAddedId = "request-body-property-names-added" RequestBodyPropertyNamesRemovedId = "request-body-property-names-removed" RequestPropertyPropertyNamesAddedId = "request-property-property-names-added" RequestPropertyPropertyNamesRemovedId = "request-property-property-names-removed" )
const ( RequestPropertyBecameRequiredId = "request-property-became-required" RequestPropertyBecameRequiredWithDefaultId = "request-property-became-required-with-default" RequestPropertyBecameOptionalId = "request-property-became-optional" )
const ( RequestBodyTypeGeneralizedId = "request-body-type-generalized" RequestBodyTypeChangedId = "request-body-type-changed" RequestBodyTypeCompatibleId = "request-body-type-compatible" RequestPropertyTypeGeneralizedId = "request-property-type-generalized" RequestPropertyTypeChangedId = "request-property-type-changed" RequestPropertyTypeCompatibleId = "request-property-type-compatible" )
const ( RequestBodyUnevaluatedItemsAddedId = "request-body-unevaluated-items-added" RequestBodyUnevaluatedItemsRemovedId = "request-body-unevaluated-items-removed" RequestBodyUnevaluatedPropertiesAddedId = "request-body-unevaluated-properties-added" RequestBodyUnevaluatedPropertiesRemovedId = "request-body-unevaluated-properties-removed" RequestPropertyUnevaluatedItemsAddedId = "request-property-unevaluated-items-added" RequestPropertyUnevaluatedItemsRemovedId = "request-property-unevaluated-items-removed" RequestPropertyUnevaluatedPropertiesAddedId = "request-property-unevaluated-properties-added" RequestPropertyUnevaluatedPropertiesRemovedId = "request-property-unevaluated-properties-removed" )
const ( RequestBodyUniqueItemsSetId = "request-body-unique-items-set" RequestPropertyUniqueItemsSetId = "request-property-unique-items-set" RequestBodyUniqueItemsUnsetId = "request-body-unique-items-unset" RequestPropertyUniqueItemsUnsetId = "request-property-unique-items-unset" )
const ( RequestPropertyRemovedId = "request-property-removed" NewRequiredRequestPropertyId = "new-required-request-property" NewRequiredRequestPropertyWithDefaultId = "new-required-request-property-with-default" NewOptionalRequestPropertyId = "new-optional-request-property" RequestBodyWrappedInOneOfId = "request-body-wrapped-in-one-of" RequestBodyWrappedInOneOfOriginalPreservedId = "request-body-wrapped-in-one-of-original-preserved" // Shared by the request and response wrapped-in-one-of-original-preserved // checks. The spec does not say whether the alternatives overlap, and // oneOf rejects a payload matching more than one, so a payload that was // valid before may or may not still be accepted. WrappedInOneOfOriginalPreservedCommentId = "wrapped-in-one-of-original-preserved-warning-comment" // Shared by the two "required request property with a default" checks. A // request that omits a required property is invalid under the new contract // whether or not the property has a default: the default is a server-side // fallback, not a rule that makes the omitted property valid. So these are // breaking (ERR), same as the no-default siblings, with this comment // explaining why the default does not make them safe. RequiredRequestPropertyWithDefaultCommentId = "required-request-property-with-default-error-comment" )
const ( RequestOptionalPropertyBecameNonWriteOnlyCheckId = "request-optional-property-became-not-write-only" RequestOptionalPropertyBecameWriteOnlyCheckId = "request-optional-property-became-write-only" RequestOptionalPropertyBecameReadOnlyCheckId = "request-optional-property-became-read-only" RequestOptionalPropertyBecameNonReadOnlyCheckId = "request-optional-property-became-not-read-only" RequestRequiredPropertyBecameNonWriteOnlyCheckId = "request-required-property-became-not-write-only" RequestRequiredPropertyBecameWriteOnlyCheckId = "request-required-property-became-write-only" RequestRequiredPropertyBecameReadOnlyCheckId = "request-required-property-became-read-only" RequestRequiredPropertyBecameNonReadOnlyCheckId = "request-required-property-became-not-read-only" )
const ( ResponseBodyDiscriminatorAddedId = "response-body-discriminator-added" ResponseBodyDiscriminatorRemovedId = "response-body-discriminator-removed" ResponseBodyDiscriminatorPropertyNameChangedId = "response-body-discriminator-property-name-changed" ResponseBodyDiscriminatorMappingAddedId = "response-body-discriminator-mapping-added" ResponseBodyDiscriminatorMappingDeletedId = "response-body-discriminator-mapping-deleted" ResponseBodyDiscriminatorMappingChangedId = "response-body-discriminator-mapping-changed" ResponsePropertyDiscriminatorAddedId = "response-property-discriminator-added" ResponsePropertyDiscriminatorRemovedId = "response-property-discriminator-removed" ResponsePropertyDiscriminatorPropertyNameChangedId = "response-property-discriminator-property-name-changed" ResponsePropertyDiscriminatorMappingAddedId = "response-property-discriminator-mapping-added" ResponsePropertyDiscriminatorMappingDeletedId = "response-property-discriminator-mapping-deleted" ResponsePropertyDiscriminatorMappingChangedId = "response-property-discriminator-mapping-changed" )
const ( ResponseHeaderBecameNullableId = "response-header-became-nullable" ResponseHeaderBecameNotNullableId = "response-header-became-not-nullable" )
const ( RequiredResponseHeaderRemovedId = "required-response-header-removed" OptionalResponseHeaderRemovedId = "optional-response-header-removed" )
const ( ResponseHeaderTypeChangedId = "response-header-type-changed" ResponseHeaderTypeGeneralizedId = "response-header-type-generalized" ResponseHeaderTypeSpecializedId = "response-header-type-specialized" ResponseHeaderTypeCompatibleId = "response-header-type-compatible" // ResponseHeaderTypeCompatibleCommentId explains the surprising "compatible" // verdict for a header, where the shared media-type comment (which talks about // XML) does not apply: a header value is text on the wire regardless. ResponseHeaderTypeCompatibleCommentId = "response-header-type-compatible-comment" )
const ( ResponseMediaTypeNameChangedId = "response-media-type-name-changed" ResponseMediaTypeNameGeneralizedId = "response-media-type-name-generalized" ResponseMediaTypeNameSpecializedId = "response-media-type-name-specialized" // A media type parameter appearing, disappearing or changing value all // reach this id, and the check cannot tell what the parameter // constrains, so it cannot order the two media types. Splitting the id // by which of the three happened is oasdiff#1186. ResponseMediaTypeNameChangedCommentId = "response-media-type-name-changed-warning-comment" )
const ( ResponseMediaTypeRemovedId = "response-media-type-removed" ResponseMediaTypeAddedId = "response-media-type-added" )
const ( ResponseOptionalPropertyRemovedId = "response-optional-property-removed" ResponseOptionalWriteOnlyPropertyRemovedId = "response-optional-write-only-property-removed" ResponseOptionalPropertyAddedId = "response-optional-property-added" ResponseOptionalWriteOnlyPropertyAddedId = "response-optional-write-only-property-added" )
const ( ResponseOptionalPropertyBecameNonWriteOnlyId = "response-optional-property-became-not-write-only" ResponseOptionalPropertyBecameWriteOnlyId = "response-optional-property-became-write-only" ResponseOptionalPropertyBecameReadOnlyId = "response-optional-property-became-read-only" ResponseOptionalPropertyBecameNonReadOnlyId = "response-optional-property-became-not-read-only" )
const ( ResponsePropertyPatternAddedId = "response-property-pattern-added" ResponsePropertyPatternChangedId = "response-property-pattern-changed" ResponsePropertyPatternRemovedId = "response-property-pattern-removed" )
const ( ResponseBodyAllOfAddedId = "response-body-all-of-added" ResponseBodyAllOfRemovedId = "response-body-all-of-removed" ResponsePropertyAllOfAddedId = "response-property-all-of-added" ResponsePropertyAllOfRemovedId = "response-property-all-of-removed" ResponseBodyAllOfAddedAnnotationOnlyId = "response-body-all-of-added-annotation-only" ResponseBodyAllOfRemovedAnnotationOnlyId = "response-body-all-of-removed-annotation-only" ResponsePropertyAllOfAddedAnnotationOnlyId = "response-property-all-of-added-annotation-only" ResponsePropertyAllOfRemovedAnnotationOnlyId = "response-property-all-of-removed-annotation-only" )
const ( ResponseBodyAnyOfAddedId = "response-body-any-of-added" ResponseBodyAnyOfRemovedId = "response-body-any-of-removed" ResponsePropertyAnyOfAddedId = "response-property-any-of-added" ResponsePropertyAnyOfRemovedId = "response-property-any-of-removed" )
const ( ResponsePropertyBecameNullableId = "response-property-became-nullable" ResponseBodyBecameNullableId = "response-body-became-nullable" ResponsePropertyBecameNotNullableId = "response-property-became-not-nullable" ResponseBodyBecameNotNullableId = "response-body-became-not-nullable" )
const ( ResponsePropertyBecameOptionalId = "response-property-became-optional" ResponseWriteOnlyPropertyBecameOptionalId = "response-write-only-property-became-optional" )
const ( ResponsePropertyBecameRequiredId = "response-property-became-required" ResponseWriteOnlyPropertyBecameRequiredId = "response-write-only-property-became-required" )
const ( ResponseBodyConstAddedId = "response-body-const-added" ResponseBodyConstRemovedId = "response-body-const-removed" ResponseBodyConstChangedId = "response-body-const-changed" ResponsePropertyConstAddedId = "response-property-const-added" ResponsePropertyConstRemovedId = "response-property-const-removed" ResponsePropertyConstChangedId = "response-property-const-changed" )
const ( ResponseBodyContainsAddedId = "response-body-contains-added" ResponseBodyContainsRemovedId = "response-body-contains-removed" ResponseBodyMinContainsIncreasedId = "response-body-min-contains-increased" ResponseBodyMinContainsDecreasedId = "response-body-min-contains-decreased" ResponseBodyMaxContainsIncreasedId = "response-body-max-contains-increased" ResponseBodyMaxContainsDecreasedId = "response-body-max-contains-decreased" ResponsePropertyContainsAddedId = "response-property-contains-added" ResponsePropertyContainsRemovedId = "response-property-contains-removed" ResponsePropertyMinContainsIncreasedId = "response-property-min-contains-increased" ResponsePropertyMinContainsDecreasedId = "response-property-min-contains-decreased" ResponsePropertyMaxContainsIncreasedId = "response-property-max-contains-increased" ResponsePropertyMaxContainsDecreasedId = "response-property-max-contains-decreased" )
const ( ResponseBodyContentSchemaAddedId = "response-body-content-schema-added" ResponseBodyContentSchemaRemovedId = "response-body-content-schema-removed" ResponseBodyContentMediaTypeChangedId = "response-body-content-media-type-changed" ResponseBodyContentEncodingChangedId = "response-body-content-encoding-changed" ResponsePropertyContentSchemaAddedId = "response-property-content-schema-added" ResponsePropertyContentSchemaRemovedId = "response-property-content-schema-removed" ResponsePropertyContentMediaTypeChangedId = "response-property-content-media-type-changed" ResponsePropertyContentEncodingChangedId = "response-property-content-encoding-changed" )
const ( ResponseBodyDefaultValueAddedId = "response-body-default-value-added" ResponseBodyDefaultValueRemovedId = "response-body-default-value-removed" ResponseBodyDefaultValueChangedId = "response-body-default-value-changed" ResponsePropertyDefaultValueAddedId = "response-property-default-value-added" ResponsePropertyDefaultValueRemovedId = "response-property-default-value-removed" ResponsePropertyDefaultValueChangedId = "response-property-default-value-changed" )
const ( ResponseBodyDependentRequiredAddedId = "response-body-dependent-required-added" ResponseBodyDependentRequiredRemovedId = "response-body-dependent-required-removed" ResponseBodyDependentRequiredChangedId = "response-body-dependent-required-changed" ResponsePropertyDependentRequiredAddedId = "response-property-dependent-required-added" ResponsePropertyDependentRequiredRemovedId = "response-property-dependent-required-removed" ResponsePropertyDependentRequiredChangedId = "response-property-dependent-required-changed" )
const ( ResponseBodyDependentSchemaAddedId = "response-body-dependent-schema-added" ResponseBodyDependentSchemaRemovedId = "response-body-dependent-schema-removed" ResponsePropertyDependentSchemaAddedId = "response-property-dependent-schema-added" ResponsePropertyDependentSchemaRemovedId = "response-property-dependent-schema-removed" )
const ( ResponsePropertyDeprecatedId = "response-property-deprecated" ResponsePropertyDeprecatedWithSunsetId = "response-property-deprecated-with-sunset" ResponsePropertyDeprecatedSunsetMissingId = "response-property-deprecated-sunset-missing" ResponsePropertyDeprecatedInvalidId = "response-property-deprecated-sunset-invalid" ResponsePropertyReactivatedId = "response-property-reactivated" ResponsePropertySunsetDateTooSmallId = "response-property-sunset-date-too-small" )
const ( ResponsePropertyEnumValueAddedId = "response-property-enum-value-added" ResponseWriteOnlyPropertyEnumValueAddedId = "response-write-only-property-enum-value-added" )
const ( ResponseBodyIfAddedId = "response-body-if-added" ResponseBodyIfRemovedId = "response-body-if-removed" ResponseBodyThenAddedId = "response-body-then-added" ResponseBodyThenRemovedId = "response-body-then-removed" ResponseBodyElseAddedId = "response-body-else-added" ResponseBodyElseRemovedId = "response-body-else-removed" ResponsePropertyIfAddedId = "response-property-if-added" ResponsePropertyIfRemovedId = "response-property-if-removed" ResponsePropertyThenAddedId = "response-property-then-added" ResponsePropertyThenRemovedId = "response-property-then-removed" ResponsePropertyElseAddedId = "response-property-else-added" ResponsePropertyElseRemovedId = "response-property-else-removed" )
const ( ResponseBodyListOfTypesWidenedId = "response-body-list-of-types-widened" ResponseBodyListOfTypesNarrowedId = "response-body-list-of-types-narrowed" ResponsePropertyListOfTypesWidenedId = "response-property-list-of-types-widened" ResponsePropertyListOfTypesNarrowedId = "response-property-list-of-types-narrowed" )
const ( ResponseBodyMaxIncreasedId = "response-body-max-increased" ResponsePropertyMaxIncreasedId = "response-property-max-increased" ResponseBodyExclusiveMaxIncreasedId = "response-body-exclusive-max-increased" ResponsePropertyExclusiveMaxIncreasedId = "response-property-exclusive-max-increased" )
const ( ResponseBodyMaxItemsIncreasedId = "response-body-max-items-increased" ResponsePropertyMaxItemsIncreasedId = "response-property-max-items-increased" )
const ( ResponseBodyMaxLengthIncreasedId = "response-body-max-length-increased" ResponsePropertyMaxLengthIncreasedId = "response-property-max-length-increased" )
const ( ResponseBodyMaxLengthUnsetId = "response-body-max-length-unset" ResponsePropertyMaxLengthUnsetId = "response-property-max-length-unset" )
const ( ResponseBodyMaxPropertiesIncreasedId = "response-body-max-properties-increased" ResponsePropertyMaxPropertiesIncreasedId = "response-property-max-properties-increased" )
const ( ResponseBodyMinDecreasedId = "response-body-min-decreased" ResponsePropertyMinDecreasedId = "response-property-min-decreased" ResponseBodyExclusiveMinDecreasedId = "response-body-exclusive-min-decreased" ResponsePropertyExclusiveMinDecreasedId = "response-property-exclusive-min-decreased" )
const ( ResponseBodyMinItemsDecreasedId = "response-body-min-items-decreased" ResponsePropertyMinItemsDecreasedId = "response-property-min-items-decreased" )
const ( ResponseBodyMinItemsUnsetId = "response-body-min-items-unset" ResponsePropertyMinItemsUnsetId = "response-property-min-items-unset" )
const ( ResponseBodyMinLengthDecreasedId = "response-body-min-length-decreased" ResponsePropertyMinLengthDecreasedId = "response-property-min-length-decreased" )
const ( ResponseBodyMinPropertiesDecreasedId = "response-body-min-properties-decreased" ResponsePropertyMinPropertiesDecreasedId = "response-property-min-properties-decreased" )
const ( ResponseBodyMultipleOfUnsetId = "response-body-multiple-of-unset" ResponsePropertyMultipleOfUnsetId = "response-property-multiple-of-unset" ResponseBodyMultipleOfChangedId = "response-body-multiple-of-changed" ResponsePropertyMultipleOfChangedId = "response-property-multiple-of-changed" ResponseBodyMultipleOfSpecializedId = "response-body-multiple-of-specialized" ResponsePropertyMultipleOfSpecializedId = "response-property-multiple-of-specialized" )
const ( ResponseBodyOneOfAddedId = "response-body-one-of-added" ResponseBodyOneOfRemovedId = "response-body-one-of-removed" ResponsePropertyOneOfAddedId = "response-property-one-of-added" ResponsePropertyOneOfRemovedId = "response-property-one-of-removed" )
const ( ResponseBodyPatternPropertyAddedId = "response-body-pattern-property-added" ResponseBodyPatternPropertyRemovedId = "response-body-pattern-property-removed" ResponsePropertyPatternPropertyAddedId = "response-property-pattern-property-added" ResponsePropertyPatternPropertyRemovedId = "response-property-pattern-property-removed" )
const ( ResponseBodyPrefixItemsAddedId = "response-body-prefix-items-added" ResponseBodyPrefixItemsRemovedId = "response-body-prefix-items-removed" ResponsePropertyPrefixItemsAddedId = "response-property-prefix-items-added" ResponsePropertyPrefixItemsRemovedId = "response-property-prefix-items-removed" )
const ( ResponseBodyPropertyNamesAddedId = "response-body-property-names-added" ResponseBodyPropertyNamesRemovedId = "response-body-property-names-removed" ResponsePropertyPropertyNamesAddedId = "response-property-property-names-added" ResponsePropertyPropertyNamesRemovedId = "response-property-property-names-removed" )
const ( ResponseBodyTypeChangedId = "response-body-type-changed" ResponseBodyTypeGeneralizedId = "response-body-type-generalized" ResponseBodyTypeSpecializedId = "response-body-type-specialized" ResponseBodyTypeCompatibleId = "response-body-type-compatible" ResponsePropertyTypeChangedId = "response-property-type-changed" ResponsePropertyTypeGeneralizedId = "response-property-type-generalized" ResponsePropertyTypeSpecializedId = "response-property-type-specialized" ResponsePropertyTypeCompatibleId = "response-property-type-compatible" )
const ( ResponseBodyUnevaluatedItemsAddedId = "response-body-unevaluated-items-added" ResponseBodyUnevaluatedItemsRemovedId = "response-body-unevaluated-items-removed" ResponseBodyUnevaluatedPropertiesAddedId = "response-body-unevaluated-properties-added" ResponseBodyUnevaluatedPropertiesRemovedId = "response-body-unevaluated-properties-removed" ResponsePropertyUnevaluatedItemsAddedId = "response-property-unevaluated-items-added" ResponsePropertyUnevaluatedItemsRemovedId = "response-property-unevaluated-items-removed" ResponsePropertyUnevaluatedPropertiesAddedId = "response-property-unevaluated-properties-added" ResponsePropertyUnevaluatedPropertiesRemovedId = "response-property-unevaluated-properties-removed" )
const ( ResponseBodyUniqueItemsUnsetId = "response-body-unique-items-unset" ResponsePropertyUniqueItemsUnsetId = "response-property-unique-items-unset" )
const ( ResponseRequiredPropertyRemovedId = "response-required-property-removed" ResponseRequiredWriteOnlyPropertyRemovedId = "response-required-write-only-property-removed" ResponseRequiredPropertyAddedId = "response-required-property-added" ResponseRequiredWriteOnlyPropertyAddedId = "response-required-write-only-property-added" ResponseBodyWrappedInOneOfId = "response-body-wrapped-in-one-of" ResponseBodyWrappedInOneOfOriginalPreservedId = "response-body-wrapped-in-one-of-original-preserved" )
const ( ResponseRequiredPropertyBecameNonWriteOnlyId = "response-required-property-became-not-write-only" ResponseRequiredPropertyBecameWriteOnlyId = "response-required-property-became-write-only" ResponseRequiredPropertyBecameReadOnlyId = "response-required-property-became-read-only" ResponseRequiredPropertyBecameNonReadOnlyId = "response-required-property-became-not-read-only" )
const ( ResponseSuccessStatusRemovedId = "response-success-status-removed" ResponseNonSuccessStatusRemovedId = "response-non-success-status-removed" ResponseSuccessStatusAddedId = "response-success-status-added" ResponseNonSuccessStatusAddedId = "response-non-success-status-added" )
const ( RequestBodySchemaBecameFalseId = "request-body-schema-became-false" RequestBodySchemaBecameNotFalseId = "request-body-schema-became-not-false" RequestPropertySchemaBecameFalseId = "request-property-schema-became-false" RequestPropertySchemaBecameNotFalseId = "request-property-schema-became-not-false" ResponseBodySchemaBecameFalseId = "response-body-schema-became-false" ResponseBodySchemaBecameNotFalseId = "response-body-schema-became-not-false" ResponsePropertySchemaBecameFalseId = "response-property-schema-became-false" ResponsePropertySchemaBecameNotFalseId = "response-property-schema-became-not-false" RequestParameterSchemaBecameFalseId = "request-parameter-schema-became-false" RequestParameterSchemaBecameNotFalseId = "request-parameter-schema-became-not-false" RequestParameterPropertySchemaBecameFalseId = "request-parameter-property-schema-became-false" RequestParameterPropertySchemaBecameNotFalseId = "request-parameter-property-schema-became-not-false" ResponseHeaderSchemaBecameFalseId = "response-header-schema-became-false" ResponseHeaderSchemaBecameNotFalseId = "response-header-schema-became-not-false" // A property schema narrowing to nothing is reported at the level the // law derives for a response narrowing, with this comment naming what // the reader likely wants to know instead. ResponsePropertySchemaBecameFalseCommentId = "response-property-schema-became-false-comment" )
const ( WebhookAddedId = "webhook-added" WebhookRemovedId = "webhook-removed" ComponentWebhooks = "webhooks" )
const ( ColorAlways = colorize.ColorAlways ColorNever = colorize.ColorNever ColorAuto = colorize.ColorAuto ColorInvalid = colorize.ColorInvalid )
const ( DefaultBetaDeprecationDays = uint(0) DefaultStableDeprecationDays = uint(0) )
const ( ERR = rules.ERR WARN = rules.WARN INFO = rules.INFO NONE = rules.NONE INVALID = rules.INVALID )
const ( DirectionRequest = rules.DirectionRequest DirectionResponse = rules.DirectionResponse DirectionNone = rules.DirectionNone AreaSchema = rules.AreaSchema AreaParameters = rules.AreaParameters AreaRequestBody = rules.AreaRequestBody AreaResponses = rules.AreaResponses AreaPaths = rules.AreaPaths AreaHeaders = rules.AreaHeaders AreaSecurity = rules.AreaSecurity AreaTags = rules.AreaTags AreaComponents = rules.AreaComponents AreaInfo = rules.AreaInfo AreaServers = rules.AreaServers AreaNone = rules.AreaNone KindExistence = rules.KindExistence KindRequiredness = rules.KindRequiredness KindMutability = rules.KindMutability KindType = rules.KindType KindConstraints = rules.KindConstraints KindValues = rules.KindValues KindStructure = rules.KindStructure KindLifecycle = rules.KindLifecycle KindNone = rules.KindNone EffectNone = rules.EffectNone EffectWidens = rules.EffectWidens EffectNarrows = rules.EffectNarrows EffectIncomparable = rules.EffectIncomparable EffectUnknown = rules.EffectUnknown EffectViolation = rules.EffectViolation GuardReadOnly = rules.GuardReadOnly GuardWriteOnly = rules.GuardWriteOnly GuardSanctioned = rules.GuardSanctioned GuardNonSuccess = rules.GuardNonSuccess GuardHasDefault = rules.GuardHasDefault GuardNegotiated = rules.GuardNegotiated )
const ( APIVersionNotBumpedId = "api-version-not-bumped" APIVersionDecreasedId = "api-version-decreased" APIMajorVersionNotBumpedId = "api-major-version-not-bumped" )
The versioning policy is one statement: a breaking change requires a major version increase. These are the three ways to violate it.
const ComponentSecuritySchemes = "securitySchemes"
const DefaultStabilityLevel = StabilityLevelBeta
DefaultStabilityLevel is the default stability level when none is specified. This matches the documented CLI default of "beta".
const (
EndpointAddedId = "endpoint-added"
)
const (
NewRequestPathParameterId = "new-request-path-parameter"
)
const (
NewRequiredRequestHeaderPropertyId = "new-required-request-header-property"
)
const (
RequestBodyBecameEnumId = "request-body-became-enum"
)
const (
RequestBodyEnumValueRemovedId = "request-body-enum-value-removed"
)
const (
RequestBodyRemovedId = "request-body-removed"
)
const (
RequestHeaderPropertyBecameEnumId = "request-header-property-became-enum"
)
const (
RequestHeaderPropertyBecameRequiredId = "request-header-property-became-required"
)
const (
RequestParameterBecameEnumId = "request-parameter-became-enum"
)
const (
RequestParameterMaxLengthSetId = "request-parameter-max-length-set"
)
const (
RequestParameterMinItemsSetId = "request-parameter-min-items-set"
)
const (
RequestParameterXExtensibleEnumValueRemovedId = "request-parameter-x-extensible-enum-value-removed"
)
const (
RequestPropertyBecameEnumId = "request-property-became-enum"
)
const (
RequestPropertyXExtensibleEnumValueRemovedId = "request-property-x-extensible-enum-value-removed"
)
const (
ResponseHeaderAddedId = "response-header-added"
)
const (
ResponseHeaderBecameOptionalId = "response-header-became-optional"
)
const (
ResponseMediaTypeEnumValueRemovedId = "response-mediatype-enum-value-removed"
)
const (
ResponsePropertyEnumValueRemovedId = "response-property-enum-value-removed"
)
const TypeChangeLooselyTypedCommentId = "type-change-loosely-typed-comment"
TypeChangeLooselyTypedCommentId explains the surprising "compatible" verdict: a type change that is safe only because the media type isn't strongly typed.
Variables ¶
This section is empty.
Functions ¶
func CompareChanges ¶ added in v1.11.10
func ComputeFingerprint ¶ added in v1.23.0
ComputeFingerprint produces a short, stable identifier for a change or finding. It is used to match the same logical item across spec versions (carry-forward of review state in oasdiff-service) and to look up review records at view time. The changelog and validate commands share it so a downstream tool can match findings produced by either.
func Fingerprint ¶ added in v1.23.0
Fingerprint is ComputeFingerprint for a Change, reading its id, operation, path, and args. Findings are not Changes, so they call ComputeFingerprint directly.
func GetAllRuleIds ¶
func GetAllRuleIds() []string
func GetCheckLevels ¶
GetCheckLevels gets levels for all backward compatibility checks
func GetSeverityLevels ¶
GetSeverityLevels reads severity levels from a reader and returns a map of severity levels
func GetSupportedColorValues ¶
func GetSupportedColorValues() []string
func GetSupportedStabilityLevels ¶ added in v1.20.0
func GetSupportedStabilityLevels() []string
GetSupportedStabilityLevels returns the list of valid stability level strings.
func IsColorEnabled ¶ added in v1.16.0
IsColorEnabled lets oasdiff packages outside checker (validate, future subcommands) gate their own color logic on the same auto-detect + override convention.
func IsDecreased ¶
func IsIncreased ¶
func ParameterSources ¶ added in v1.12.0
func ParameterSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, paramDiff *diff.ParameterDiff) (*Source, *Source)
parameterSources returns source locations from parameter Origins. Falls back to operation-level sources when parameter origin data is unavailable.
func ProcessSeverityLevels ¶
ProcessSeverityLevels reads a file with severity levels and returns a map of severity levels
func ResponseSources ¶ added in v1.12.0
func ResponseSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, responseDiff *diff.ResponseDiff) (*Source, *Source)
responseSources returns source locations from response Origins. Falls back to operation-level sources when response origin data is unavailable.
func SchemaAddedItemSources ¶ added in v1.12.0
func SchemaAddedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, value string) (*Source, *Source)
SchemaAddedItemSources returns source locations for an added sequence item. Base source is nil, revision source points to the specific added item.
func SchemaDeletedItemSources ¶ added in v1.12.0
func SchemaDeletedItemSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, value string) (*Source, *Source)
SchemaDeletedItemSources returns source locations for a deleted sequence item. Base source points to the specific deleted item, revision source is nil.
func SchemaFieldSources ¶ added in v1.12.0
func SchemaFieldSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string) (*Source, *Source)
schemaFieldSources returns source locations from a specific field within schema Origins. Falls back to schema-level sources when the field is not found in origin data.
func SchemaSources ¶ added in v1.12.0
func SchemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff) (*Source, *Source)
schemaSources returns source locations from schema Origins. Falls back to operation-level sources when schema origin data is unavailable.
func SetPipedOutput ¶
SetPipedOutput overrides piped-output auto-detection; see colorize.
func SubschemaSources ¶ added in v1.15.0
func SubschemaSources(operationsSources *diff.OperationsSourcesMap, operationItem *diff.MethodDiff, schemaDiff *diff.SchemaDiff, field string, baseIndex, revisionIndex int) (*Source, *Source)
SubschemaSources returns source locations for a specific subschema within an allOf/oneOf/anyOf array. For added subschemas, baseIndex should be -1; for deleted subschemas, revisionIndex should be -1.
Types ¶
type ApiChange ¶
type ApiChange struct {
CommonChange
Id string
Args []any
Comment string
Disclaimers []Disclaimer
Details string
Level Level
Operation string
OperationId string
Path string
Source *load.Source
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
// contains filtered or unexported fields
}
ApiChange represnts a change in the Paths Section of an OpenAPI spec
func NewApiChange ¶
func NewApiChange(id string, config *Config, args []any, comment string, operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, method, path string) ApiChange
NewApiChange creates a new ApiChange
func (ApiChange) GetComment ¶
func (ApiChange) GetDisclaimers ¶ added in v1.29.0
func (c ApiChange) GetDisclaimers() []Disclaimer
func (ApiChange) GetOperation ¶
func (ApiChange) GetOperationId ¶
func (ApiChange) GetSection ¶
func (ApiChange) GetSourceColumn ¶
func (ApiChange) GetSourceColumnEnd ¶
func (ApiChange) GetSourceFile ¶
func (ApiChange) GetSourceLine ¶
func (ApiChange) GetSourceLineEnd ¶
func (ApiChange) GetUncolorizedText ¶
func (ApiChange) IsBreaking ¶
func (ApiChange) MatchIgnore ¶
func (ApiChange) MultiLineError ¶
func (ApiChange) SingleLineError ¶
func (ApiChange) WithDetails ¶ added in v1.11.9
WithDetails returns a copy of the ApiChange with Details set
func (ApiChange) WithDisclaimers ¶ added in v1.29.0
func (c ApiChange) WithDisclaimers(disclaimers []Disclaimer) ApiChange
WithDisclaimers is additive and drops duplicates: a change can gather the same condition from more than one place.
func (ApiChange) WithSchema ¶ added in v1.23.0
func (a ApiChange) WithSchema(schemaDiff *diff.SchemaDiff) ApiChange
WithSchema returns a copy of the ApiChange with claimed set: the change is claimed when a recognized transition at the given schema node (the node the change was computed from) claims the change's rule (see transition_claims.go). The node itself is not retained.
func (ApiChange) WithSources ¶ added in v1.12.0
WithSources returns a copy of the ApiChange with BaseSource and RevisionSource populated
type Area ¶ added in v1.18.3
The rule model (taxonomy, Effect, Guards, Level, location claims) is defined in checker/rules; the aliases below keep the checker package's public surface unchanged. This package binds the model to the check implementations via Handler.
type BackwardCompatibilityCheck ¶
type BackwardCompatibilityCheck func(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
BackwardCompatibilityCheck, or a check, is a function that receives a diff report and returns a list of changes
type BackwardCompatibilityChecks ¶
type BackwardCompatibilityChecks []BackwardCompatibilityCheck
func GetAllChecks ¶
func GetAllChecks() BackwardCompatibilityChecks
GetAllChecks gets all backward compatibility checks
type BackwardCompatibilityRule ¶
type BackwardCompatibilityRule struct {
rules.Rule
Handler BackwardCompatibilityCheck
}
BackwardCompatibilityRule binds the rule metadata to the check function that implements it.
type BackwardCompatibilityRules ¶
type BackwardCompatibilityRules []BackwardCompatibilityRule
func GetAllRules ¶
func GetAllRules() BackwardCompatibilityRules
func (BackwardCompatibilityRules) Metadata ¶ added in v1.30.0
func (bcRules BackwardCompatibilityRules) Metadata() []rules.Rule
Metadata returns the rules without their handlers, for callers that audit the rules rather than run them.
type Change ¶
type Change interface {
GetSection() string
IsBreaking() bool
GetId() string
GetText(l Localizer) string
GetArgs() []any
GetUncolorizedText(l Localizer) string
GetComment(l Localizer) string
GetLevel() Level
GetDisclaimers() []Disclaimer
GetOperation() string
GetOperationId() string
GetPath() string
GetSource() string
GetAttributes() map[string]any
// Location tracking methods
GetBaseSource() *Source
GetRevisionSource() *Source
// DEPRECATED: Will be removed after GitHubActionsFormatter migration
GetSourceFile() string
GetSourceLine() int
GetSourceLineEnd() int
GetSourceColumn() int
GetSourceColumnEnd() int
MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
SingleLineError(l Localizer, colorMode ColorMode) string
MultiLineError(l Localizer, colorMode ColorMode) string
}
type Changes ¶
type Changes []Change
func APIAddedCheck ¶
func APIDeprecationCheck ¶
func APIRemovedCheck ¶
func APISecurityUpdatedCheck ¶
func APISunsetChangedCheck ¶
func APITagUpdatedCheck ¶
func AddedRequestBodyCheck ¶
func CheckBackwardCompatibility ¶
func CheckBackwardCompatibility(config *Config, diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap) Changes
CheckBackwardCompatibility runs the checks and returns the changes with level WARN or ERR; see CheckBackwardCompatibilityUntilLevel.
Example ¶
package main
import (
"fmt"
"os"
"strings"
"github.com/getkin/kin-openapi/openapi3"
"github.com/oasdiff/oasdiff/checker"
"github.com/oasdiff/oasdiff/diff"
"github.com/oasdiff/oasdiff/load"
)
func main() {
loader := openapi3.NewLoader()
loader.IsExternalRefsAllowed = true
s1, err := load.NewSpecInfo(loader, load.NewSource("../data/openapi-test1.yaml"))
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load spec: %v", err)
return
}
s2, err := load.NewSpecInfo(loader, load.NewSource("../data/openapi-test3.yaml"))
if err != nil {
fmt.Fprintf(os.Stderr, "failed to load spec: %v", err)
return
}
diffRes, operationsSources, err := diff.GetPathsDiff(diff.NewConfig(),
[]*load.SpecInfo{s1},
[]*load.SpecInfo{s2},
)
if err != nil {
fmt.Fprintf(os.Stderr, "diff failed with %v", err)
return
}
errs := checker.CheckBackwardCompatibility(checker.NewConfig(checker.GetAllChecks()), diffRes, operationsSources)
// process configuration file for ignoring errors
errs, err = checker.ProcessIgnoredBackwardCompatibilityErrors(checker.ERR, errs, "../data/ignore-err-example.txt", checker.NewDefaultLocalizer())
if err != nil {
fmt.Fprintf(os.Stderr, "ignore errors failed with %v", err)
return
}
// process configuration file for ignoring warnings
errs, err = checker.ProcessIgnoredBackwardCompatibilityErrors(checker.WARN, errs, "../data/ignore-warn-example.txt", checker.NewDefaultLocalizer())
if err != nil {
fmt.Fprintf(os.Stderr, "ignore warnings failed with %v", err)
return
}
// pretty print breaking changes errors
if len(errs) > 0 {
localizer := checker.NewDefaultLocalizer()
count := errs.GetLevelCount()
fmt.Print(localizer("total-errors", len(errs), count[checker.ERR], "error", count[checker.WARN], "warning"))
for _, bcerr := range errs {
fmt.Printf("%s\n\n", strings.TrimRight(bcerr.SingleLineError(localizer, checker.ColorNever), " "))
}
}
}
Output: 6 breaking changes: 3 error, 3 warning error at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score removed the success response with the status `201` [response-success-status-removed]. error at ../data/openapi-test3.yaml, in API POST /register the endpoint scheme security `bearerAuth` was removed from the API [api-security-removed]. error at ../data/openapi-test3.yaml, in API POST /register the security scope `write:pets` was added to the endpoint's security scheme `OAuth` [api-security-scope-added]. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `cookie` request parameter `test` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `header` request parameter `user` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first. warning at ../data/openapi-test3.yaml, in API GET /api/{domain}/{project}/badges/security-score deleted the `query` request parameter `filter` [request-parameter-removed]. This is a warning because some clients may return an error when receiving an unexpected parameter. It is recommended to deprecate the parameter first.
func CheckBackwardCompatibilityUntilLevel ¶
func CheckBackwardCompatibilityUntilLevel(config *Config, diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, level Level) Changes
CheckBackwardCompatibilityUntilLevel runs the checks and returns the changes with level equal or higher than the given level. Changes claimed by a recognized schema transition are dropped, so each transition is reported only by its own finding (see transition_claims.go). It does not mutate the caller's diffReport; clonePathsDiffForCheck isolates the pipeline's mutation surface.
func MediaTypeSchemaExistenceCheck ¶ added in v1.21.0
func MediaTypeSchemaExistenceCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
MediaTypeSchemaExistenceCheck classifies a schema added to, or removed from, a media type that exists on both sides (the media type itself is unchanged, only its schema appears or disappears). The per-schema-change checks skip these one-sided schema diffs (see modifiedSchemaPresentBothSides), so this check is what reports them, by request/response contravariance:
request body, schema added -> breaking (ERR): a body that accepted anything
now requires a specific shape (narrowing)
request body, schema removed -> info: the body got more permissive
response, schema added -> info: the response got more specific
response, schema removed -> breaking (WARN): a typed response is no longer
guaranteed (the output contract loosened)
The OpenAPI 3.2 itemSchema, which types one item of a streamed body, is classified the same way and for the same reasons: it constrains what may be sent or returned, so adding one narrows and removing one loosens.
Two degenerate schemas escape that classification. One equivalent to the empty schema (`{}`, `true`, or annotations only) accepts everything, so its arrival or departure leaves the contract unchanged and is not reported. The boolean `false` accepts nothing, so a body schema arriving as `false` withdraws the media type's payload and is reported as schema-became-false. The itemSchema variants are still classified by shape alone (#1196).
func RequestBodyRemovedCheck ¶ added in v1.11.2
func RequestParameterBecameNullableCheck ¶ added in v1.23.0
func RequestParameterListOfTypesChangedCheck ¶ added in v1.11.6
func RequestParameterSchemaBecameFalseCheck ¶ added in v1.30.0
func RequestPropertyConstChangedCheck ¶ added in v1.15.0
func RequestPropertyContainsUpdatedCheck ¶ added in v1.15.0
func RequestPropertyContentUpdatedCheck ¶ added in v1.15.0
func RequestPropertyDependentRequiredChangedCheck ¶ added in v1.15.0
func RequestPropertyDependentSchemasUpdatedCheck ¶ added in v1.15.0
func RequestPropertyDeprecationCheck ¶ added in v1.11.9
func RequestPropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
RequestPropertyDeprecationCheck detects deprecated properties in request bodies
func RequestPropertyIfUpdatedCheck ¶ added in v1.15.0
func RequestPropertyListOfTypesChangedCheck ¶ added in v1.11.6
func RequestPropertyMaxItemsSetCheck ¶ added in v1.30.0
func RequestPropertyMaxItemsUpdatedCheck ¶ added in v1.30.0
func RequestPropertyMaxPropertiesSetCheck ¶ added in v1.30.0
func RequestPropertyMaxPropertiesUpdatedCheck ¶ added in v1.30.0
func RequestPropertyMinPropertiesIncreasedCheck ¶ added in v1.30.0
func RequestPropertyMultipleOfUpdatedCheck ¶ added in v1.30.0
func RequestPropertyPatternPropertiesUpdatedCheck ¶ added in v1.15.0
func RequestPropertyPrefixItemsUpdatedCheck ¶ added in v1.15.0
func RequestPropertyPropertyNamesUpdatedCheck ¶ added in v1.15.0
func RequestPropertySchemaBecameFalseCheck ¶ added in v1.30.0
func RequestPropertyStabilityUpdatedCheck ¶ added in v1.20.0
func RequestPropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
RequestPropertyStabilityUpdatedCheck detects request properties where x-stability-level changed. Only emits changes when the property's base stability meets the configured threshold.
func RequestPropertyUnevaluatedUpdatedCheck ¶ added in v1.15.0
func RequestPropertyUniqueItemsUpdatedCheck ¶ added in v1.30.0
func ResponseHeaderAddedCheck ¶ added in v1.21.0
func ResponseHeaderAddedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponseHeaderAddedCheck reports a response header that was added. Adding a response header is non-breaking, so it is reported at INFO. It is the mirror of ResponseHeaderRemovedCheck (see #1033).
func ResponseHeaderBecameNullableCheck ¶ added in v1.26.0
func ResponseHeaderBecameNullableCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponseHeaderBecameNullableCheck reports a nullability change on a response header's schema, the response-header mirror of ResponsePropertyBecameNullableCheck. A response header becoming nullable means a client that never expected a null value can now receive one (breaking); becoming not-nullable narrows the server's output and is safe (info).
func ResponseHeaderSchemaBecameFalseCheck ¶ added in v1.30.0
func ResponseHeaderTypeChangedCheck ¶ added in v1.26.0
func ResponseHeaderTypeChangedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponseHeaderTypeChangedCheck reports a type or format change on a response header's schema, the response-header mirror of ResponsePropertyTypeChangedCheck (response headers previously had existence-level checks only, no schema walk).
A response header value is text on the wire, never a strongly typed media type, so it is classified non-strongly-typed (mediaType ""), the same way a scalar parameter is: a bare string -> integer is a loosely typed compatible change (the value "123" is still valid text a string client reads), while dropping a format a client parses -- the motivating case, Retry-After string/date-time -> integer -- is breaking on the format axis.
func ResponseMediaTypeNameUpdatedCheck ¶ added in v1.11.4
func ResponsePropertyConstChangedCheck ¶ added in v1.15.0
func ResponsePropertyContainsUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyContentUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyDependentRequiredChangedCheck ¶ added in v1.15.0
func ResponsePropertyDependentSchemasUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyDeprecationCheck ¶ added in v1.11.9
func ResponsePropertyDeprecationCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponsePropertyDeprecationCheck detects deprecated properties in response bodies
func ResponsePropertyIfUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyListOfTypesChangedCheck ¶ added in v1.11.6
func ResponsePropertyMaxItemsIncreasedCheck ¶ added in v1.30.0
func ResponsePropertyMaxPropertiesIncreasedCheck ¶ added in v1.30.0
func ResponsePropertyMinPropertiesDecreasedCheck ¶ added in v1.30.0
func ResponsePropertyMultipleOfUpdatedCheck ¶ added in v1.30.0
func ResponsePropertyPatternPropertiesUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyPrefixItemsUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyPropertyNamesUpdatedCheck ¶ added in v1.15.0
func ResponsePropertySchemaBecameFalseCheck ¶ added in v1.30.0
func ResponsePropertyStabilityUpdatedCheck ¶ added in v1.20.0
func ResponsePropertyStabilityUpdatedCheck(diffReport *diff.Diff, operationsSources *diff.OperationsSourcesMap, config *Config) Changes
ResponsePropertyStabilityUpdatedCheck detects response properties where x-stability-level changed. Only emits changes when the property's base stability meets the configured threshold.
func ResponsePropertyUnevaluatedUpdatedCheck ¶ added in v1.15.0
func ResponsePropertyUniqueItemsUnsetCheck ¶ added in v1.30.0
func WebhookUpdatedCheck ¶ added in v1.15.0
func (Changes) GetLevelCount ¶
func (Changes) HasLevelOrHigher ¶
type ColorMode ¶
ColorMode is defined in the colorize package; the aliases keep the checker package's public surface unchanged.
func NewColorMode ¶
type CommonChange ¶
type CommonChange struct {
// Location information for correlation UI
BaseSource *Source // Location in base (original) file
RevisionSource *Source // Location in revision (modified) file
Attributes map[string]any
}
func (CommonChange) GetAttributes ¶
func (c CommonChange) GetAttributes() map[string]any
func (CommonChange) GetBaseSource ¶ added in v1.12.0
func (c CommonChange) GetBaseSource() *Source
func (CommonChange) GetRevisionSource ¶ added in v1.12.0
func (c CommonChange) GetRevisionSource() *Source
type ComponentChange ¶
type ComponentChange struct {
CommonChange
Id string
Args []any
Comment string
Level Level
Component string
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
}
ComponentChange represnts a change in the Components Section: https://swagger.io/docs/specification/components/
func (ComponentChange) GetArgs ¶
func (c ComponentChange) GetArgs() []any
func (ComponentChange) GetComment ¶
func (c ComponentChange) GetComment(l Localizer) string
func (ComponentChange) GetDisclaimers ¶ added in v1.29.0
func (ComponentChange) GetDisclaimers() []Disclaimer
func (ComponentChange) GetId ¶
func (c ComponentChange) GetId() string
func (ComponentChange) GetLevel ¶
func (c ComponentChange) GetLevel() Level
func (ComponentChange) GetOperation ¶
func (ComponentChange) GetOperation() string
func (ComponentChange) GetOperationId ¶
func (ComponentChange) GetOperationId() string
func (ComponentChange) GetPath ¶
func (ComponentChange) GetPath() string
func (ComponentChange) GetSection ¶
func (c ComponentChange) GetSection() string
func (ComponentChange) GetSource ¶
func (c ComponentChange) GetSource() string
func (ComponentChange) GetSourceColumn ¶
func (c ComponentChange) GetSourceColumn() int
func (ComponentChange) GetSourceColumnEnd ¶
func (c ComponentChange) GetSourceColumnEnd() int
func (ComponentChange) GetSourceFile ¶
func (c ComponentChange) GetSourceFile() string
func (ComponentChange) GetSourceLine ¶
func (c ComponentChange) GetSourceLine() int
func (ComponentChange) GetSourceLineEnd ¶
func (c ComponentChange) GetSourceLineEnd() int
func (ComponentChange) GetText ¶
func (c ComponentChange) GetText(l Localizer) string
func (ComponentChange) GetUncolorizedText ¶
func (c ComponentChange) GetUncolorizedText(l Localizer) string
func (ComponentChange) IsBreaking ¶
func (c ComponentChange) IsBreaking() bool
func (ComponentChange) MatchIgnore ¶
func (c ComponentChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
func (ComponentChange) MultiLineError ¶
func (c ComponentChange) MultiLineError(l Localizer, colorMode ColorMode) string
func (ComponentChange) SingleLineError ¶
func (c ComponentChange) SingleLineError(l Localizer, colorMode ColorMode) string
func (ComponentChange) WithSources ¶ added in v1.12.0
func (c ComponentChange) WithSources(baseSource, revisionSource *Source) ComponentChange
WithSources returns a copy of the ComponentChange with BaseSource and RevisionSource populated
type Config ¶
type Config struct {
Checks BackwardCompatibilityChecks
MinSunsetBetaDays uint
MinSunsetStableDays uint
LogLevels map[string]Level
Attributes []string
StabilityLevel StabilityLevel
// contains filtered or unexported fields
}
func NewConfig ¶
func NewConfig(checks BackwardCompatibilityChecks, opts ...Option) *Config
NewConfig creates a new configuration with default values, then applies the given options in order.
type Direction ¶
The rule model (taxonomy, Effect, Guards, Level, location claims) is defined in checker/rules; the aliases below keep the checker package's public surface unchanged. This package binds the model to the check implementations via Handler.
type Disclaimer ¶ added in v1.29.0
type Disclaimer int
A Disclaimer says why oasdiff could not compare something exactly. When one applies, the rule's severity may be too strong for the change it describes.
A Disclaimer only names the problem. The ceiling it puts on a severity is in disclaimerCeilings; its explanation is a localized message.
const ( // DisclaimerAllOfNotFlattened marks a change found inside an allOf branch // that was compared branch by branch. A sibling branch can require what // this one dropped, so the change may have no effect on the merged schema. DisclaimerAllOfNotFlattened Disclaimer = iota + 1 )
func (Disclaimer) String ¶ added in v1.29.0
func (d Disclaimer) String() string
type Effect ¶ added in v1.30.0
The rule model (taxonomy, Effect, Guards, Level, location claims) is defined in checker/rules; the aliases below keep the checker package's public surface unchanged. This package binds the model to the check implementations via Handler.
type Guard ¶ added in v1.30.0
The rule model (taxonomy, Effect, Guards, Level, location claims) is defined in checker/rules; the aliases below keep the checker package's public surface unchanged. This package binds the model to the check implementations via Handler.
type InfoChange ¶ added in v1.27.0
type InfoChange struct {
CommonChange
Id string
Args []any
Comment string
Level Level
}
InfoChange represents a change in the Info Section: https://swagger.io/specification/#info-object It carries no path or operation: the subject is the document as a whole.
func (InfoChange) GetArgs ¶ added in v1.27.0
func (c InfoChange) GetArgs() []any
func (InfoChange) GetComment ¶ added in v1.27.0
func (c InfoChange) GetComment(l Localizer) string
func (InfoChange) GetDisclaimers ¶ added in v1.29.0
func (InfoChange) GetDisclaimers() []Disclaimer
func (InfoChange) GetId ¶ added in v1.27.0
func (c InfoChange) GetId() string
func (InfoChange) GetLevel ¶ added in v1.27.0
func (c InfoChange) GetLevel() Level
func (InfoChange) GetOperation ¶ added in v1.27.0
func (InfoChange) GetOperation() string
func (InfoChange) GetOperationId ¶ added in v1.27.0
func (InfoChange) GetOperationId() string
func (InfoChange) GetPath ¶ added in v1.27.0
func (InfoChange) GetPath() string
func (InfoChange) GetSection ¶ added in v1.27.0
func (c InfoChange) GetSection() string
func (InfoChange) GetSource ¶ added in v1.27.0
func (InfoChange) GetSource() string
func (InfoChange) GetSourceColumn ¶ added in v1.27.0
func (InfoChange) GetSourceColumn() int
func (InfoChange) GetSourceColumnEnd ¶ added in v1.27.0
func (InfoChange) GetSourceColumnEnd() int
func (InfoChange) GetSourceFile ¶ added in v1.27.0
func (InfoChange) GetSourceFile() string
func (InfoChange) GetSourceLine ¶ added in v1.27.0
func (InfoChange) GetSourceLine() int
func (InfoChange) GetSourceLineEnd ¶ added in v1.27.0
func (InfoChange) GetSourceLineEnd() int
func (InfoChange) GetText ¶ added in v1.27.0
func (c InfoChange) GetText(l Localizer) string
func (InfoChange) GetUncolorizedText ¶ added in v1.27.0
func (c InfoChange) GetUncolorizedText(l Localizer) string
func (InfoChange) IsBreaking ¶ added in v1.27.0
func (c InfoChange) IsBreaking() bool
func (InfoChange) MatchIgnore ¶ added in v1.27.0
func (c InfoChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
func (InfoChange) MultiLineError ¶ added in v1.27.0
func (c InfoChange) MultiLineError(l Localizer, colorMode ColorMode) string
func (InfoChange) SingleLineError ¶ added in v1.27.0
func (c InfoChange) SingleLineError(l Localizer, colorMode ColorMode) string
func (InfoChange) WithSources ¶ added in v1.27.0
func (c InfoChange) WithSources(baseSource, revisionSource *Source) InfoChange
WithSources returns a copy of the InfoChange with BaseSource and RevisionSource populated
type Kind ¶ added in v1.18.3
The rule model (taxonomy, Effect, Guards, Level, location claims) is defined in checker/rules; the aliases below keep the checker package's public surface unchanged. This package binds the model to the check implementations via Handler.
type Level ¶
Level is defined in checker/rules; the aliases keep the checker package's public surface unchanged.
type Localizer ¶
func NewDefaultLocalizer ¶
func NewDefaultLocalizer() Localizer
func NewLocalizer ¶
type Option ¶ added in v1.15.3
type Option func(*Config)
Option configures a Config during NewConfig. Options compose: each receives the Config after defaults and prior options have been applied. Use the With* constructors below to obtain Options.
func WithAttributes ¶ added in v1.15.3
WithAttributes sets the list of attributes to be used.
func WithChecks ¶ added in v1.15.3
func WithChecks(checks BackwardCompatibilityChecks) Option
WithChecks sets the list of checks to be used (replaces the constructor's checks argument).
func WithDeprecation ¶ added in v1.15.3
WithDeprecation sets the number of days before sunset for deprecation warnings.
func WithSeverityLevels ¶ added in v1.15.3
WithSeverityLevels overrides per-check log levels from the given map.
func WithSingleCheck ¶ added in v1.15.3
func WithSingleCheck(check BackwardCompatibilityCheck) Option
WithSingleCheck sets a single check to be used (replaces the constructor's checks argument).
func WithStabilityLevel ¶ added in v1.20.0
WithStabilityLevel sets the minimum stability level from a string. If the level is empty, the config is unchanged.
type SecurityChange ¶
type SecurityChange struct {
CommonChange
Id string
Args []any
Comment string
Level Level
// DEPRECATED: Will be removed after migration to BaseSource/RevisionSource
SourceFile string
SourceLine int
SourceLineEnd int
SourceColumn int
SourceColumnEnd int
}
SecurityChange represents a change in the Security Section (not to be confised with components/securitySchemes)
func (SecurityChange) GetArgs ¶
func (c SecurityChange) GetArgs() []any
func (SecurityChange) GetComment ¶
func (c SecurityChange) GetComment(l Localizer) string
func (SecurityChange) GetDisclaimers ¶ added in v1.29.0
func (SecurityChange) GetDisclaimers() []Disclaimer
func (SecurityChange) GetId ¶
func (c SecurityChange) GetId() string
func (SecurityChange) GetLevel ¶
func (c SecurityChange) GetLevel() Level
func (SecurityChange) GetOperation ¶
func (r SecurityChange) GetOperation() string
func (SecurityChange) GetOperationId ¶
func (SecurityChange) GetOperationId() string
func (SecurityChange) GetPath ¶
func (SecurityChange) GetPath() string
func (SecurityChange) GetSection ¶
func (c SecurityChange) GetSection() string
func (SecurityChange) GetSource ¶
func (c SecurityChange) GetSource() string
func (SecurityChange) GetSourceColumn ¶
func (c SecurityChange) GetSourceColumn() int
func (SecurityChange) GetSourceColumnEnd ¶
func (c SecurityChange) GetSourceColumnEnd() int
func (SecurityChange) GetSourceFile ¶
func (c SecurityChange) GetSourceFile() string
func (SecurityChange) GetSourceLine ¶
func (c SecurityChange) GetSourceLine() int
func (SecurityChange) GetSourceLineEnd ¶
func (c SecurityChange) GetSourceLineEnd() int
func (SecurityChange) GetText ¶
func (c SecurityChange) GetText(l Localizer) string
func (SecurityChange) GetUncolorizedText ¶
func (c SecurityChange) GetUncolorizedText(l Localizer) string
func (SecurityChange) IsBreaking ¶
func (c SecurityChange) IsBreaking() bool
func (SecurityChange) MatchIgnore ¶
func (c SecurityChange) MatchIgnore(ignorePath, ignoreLine string, l Localizer) bool
func (SecurityChange) MultiLineError ¶
func (c SecurityChange) MultiLineError(l Localizer, colorMode ColorMode) string
func (SecurityChange) SingleLineError ¶
func (c SecurityChange) SingleLineError(l Localizer, colorMode ColorMode) string
func (SecurityChange) WithSources ¶ added in v1.12.0
func (c SecurityChange) WithSources(baseSource, revisionSource *Source) SecurityChange
WithSources returns a copy of the SecurityChange with BaseSource and RevisionSource populated
type Source ¶ added in v1.12.0
type Source struct {
File string `json:"file,omitempty" yaml:"file,omitempty"` // File path (relative or absolute)
Line int `json:"line,omitempty" yaml:"line,omitempty"` // Line number (1-based)
Column int `json:"column,omitempty" yaml:"column,omitempty"` // Column number (1-based)
EndLine int `json:"endLine,omitempty" yaml:"endLine,omitempty"` // End line (1-based, inclusive); 0 if unknown/single
EndColumn int `json:"endColumn,omitempty" yaml:"endColumn,omitempty"` // End column (1-based); 0 if unknown
}
Source represents the location of a change in an OpenAPI spec file
func NewEmptySource ¶ added in v1.12.0
func NewEmptySource() *Source
func NewSourceFromField ¶ added in v1.12.0
func NewSourceFromOrigin ¶ added in v1.12.0
func NewSourceFromSequenceItem ¶ added in v1.12.0
func NewSourceFromSequenceItem(operationsSources *diff.OperationsSourcesMap, operation *openapi3.Operation, origin *openapi3.Origin, field string, value string) *Source
NewSourceFromSequenceItem returns the source location of a specific item in a sequence-valued field (e.g. type: [string, null]). It looks up the item by value in Origin.Sequences[field]. If multiple items share the same value, it returns the first match.
type StabilityLevel ¶ added in v1.20.0
type StabilityLevel int
StabilityLevel represents a threshold for filtering operations by their x-stability-level. Higher values include more stability levels (e.g., StabilityLevelDraft includes all levels). The enum is a pure ordering: level >= threshold means "included."
const ( // StabilityLevelDraft includes all operations (stable, beta, alpha, and draft). StabilityLevelDraft StabilityLevel = iota + 1 // StabilityLevelAlpha includes stable, beta, and alpha operations. StabilityLevelAlpha // StabilityLevelBeta includes stable and beta operations. StabilityLevelBeta // StabilityLevelStable includes only stable operations. StabilityLevelStable )
func ParseStabilityLevel ¶ added in v1.20.0
func ParseStabilityLevel(s string) StabilityLevel
ParseStabilityLevel converts a stability string to a StabilityLevel. An empty string is treated as stable (implicit stable).
func (StabilityLevel) IsIncluded ¶ added in v1.20.0
func (sl StabilityLevel) IsIncluded(stability string) bool
IsIncluded returns true if the given stability label meets the configured threshold. For example, if the threshold is StabilityLevelDraft, all levels are included. If the threshold is StabilityLevelAlpha, draft is excluded but alpha/beta/stable are included. An empty stability string is treated as "stable".
Source Files
¶
- api_change.go
- change.go
- changes.go
- check_added_required_request_body.go
- check_api_added.go
- check_api_deprecation.go
- check_api_operation_id_updated.go
- check_api_removed.go
- check_api_security_updated.go
- check_api_stability_level.go
- check_api_sunset_changed.go
- check_api_tag_updated.go
- check_components_schemas_removed.go
- check_components_security_updated.go
- check_media_type_schema_existence.go
- check_new_request_non_path_default_parameter.go
- check_new_request_non_path_parameter.go
- check_new_requried_request_header_property.go
- check_property_stability_level.go
- check_request_body_became_enum.go
- check_request_body_enum_deleted.go
- check_request_body_mediatype_updated.go
- check_request_body_removed.go
- check_request_body_required_value_updated.go
- check_request_discriminator_updated.go
- check_request_header_property_became_enum.go
- check_request_header_property_became_required.go
- check_request_parameter_became_enum.go
- check_request_parameter_became_nullable.go
- check_request_parameter_deprecation.go
- check_request_parameter_enum_value_updated.go
- check_request_parameter_list_of_types_changed.go
- check_request_parameter_pattern_added_or_changed.go
- check_request_parameter_removed.go
- check_request_parameter_required_value_updated.go
- check_request_parameter_sunset_changed.go
- check_request_parameter_x_extensible_enum_value_removed.go
- check_request_parameters_default_value_changed.go
- check_request_parameters_max_items_updated.go
- check_request_parameters_max_length_set.go
- check_request_parameters_max_length_updated.go
- check_request_parameters_max_set.go
- check_request_parameters_max_updated.go
- check_request_parameters_min_items_set.go
- check_request_parameters_min_items_updated.go
- check_request_parameters_min_length_updated.go
- check_request_parameters_min_set.go
- check_request_parameters_min_updated.go
- check_request_parameters_type_changed.go
- check_request_path_parameter_added.go
- check_request_property_all_of_updated.go
- check_request_property_any_of_updated.go
- check_request_property_became_enum.go
- check_request_property_became_not_nuallable.go
- check_request_property_const_changed.go
- check_request_property_contains_updated.go
- check_request_property_content_updated.go
- check_request_property_default_value_changed.go
- check_request_property_dependent_required_changed.go
- check_request_property_dependent_schemas_updated.go
- check_request_property_deprecation.go
- check_request_property_enum_value_updated.go
- check_request_property_if_updated.go
- check_request_property_list_of_types_changed.go
- check_request_property_max_items_set.go
- check_request_property_max_items_updated.go
- check_request_property_max_length_set.go
- check_request_property_max_length_updated.go
- check_request_property_max_properties_set.go
- check_request_property_max_properties_updated.go
- check_request_property_max_set.go
- check_request_property_max_updated.go
- check_request_property_min_items_increased.go
- check_request_property_min_items_set.go
- check_request_property_min_length_updated.go
- check_request_property_min_properties_increased.go
- check_request_property_min_set.go
- check_request_property_min_updated.go
- check_request_property_multiple_of_updated.go
- check_request_property_one_of_updated.go
- check_request_property_pattern_added_or_changed.go
- check_request_property_pattern_properties_updated.go
- check_request_property_prefix_items_updated.go
- check_request_property_property_names_updated.go
- check_request_property_required_updated.go
- check_request_property_type_changed.go
- check_request_property_unevaluated_updated.go
- check_request_property_unique_items_updated.go
- check_request_property_updated.go
- check_request_property_write_only_read_only.go
- check_request_property_x_extensible_enum_value_removed.go
- check_response_discriminator_updated.go
- check_response_header_added.go
- check_response_header_became_nullable.go
- check_response_header_became_optional.go
- check_response_header_removed.go
- check_response_header_type_changed.go
- check_response_mediatype_enum_value_removed.go
- check_response_mediatype_name_updated.go
- check_response_mediatype_updated.go
- check_response_optional_property_updated.go
- check_response_optional_property_write_only_read_only.go
- check_response_pattern_added_or_changed.go
- check_response_property_all_of_updated.go
- check_response_property_any_of_updated.go
- check_response_property_became_nuallable.go
- check_response_property_became_optional.go
- check_response_property_became_required.go
- check_response_property_const_changed.go
- check_response_property_contains_updated.go
- check_response_property_content_updated.go
- check_response_property_default_value_changed.go
- check_response_property_dependent_required_changed.go
- check_response_property_dependent_schemas_updated.go
- check_response_property_deprecation.go
- check_response_property_enum_value_added.go
- check_response_property_enum_value_removed.go
- check_response_property_if_updated.go
- check_response_property_list_of_types_changed.go
- check_response_property_max_increased.go
- check_response_property_max_items_increased.go
- check_response_property_max_length_increased.go
- check_response_property_max_length_unset.go
- check_response_property_max_properties_increased.go
- check_response_property_min_decreased.go
- check_response_property_min_items_decreased.go
- check_response_property_min_items_unset.go
- check_response_property_min_length_decreased.go
- check_response_property_min_properties_decreased.go
- check_response_property_multiple_of_updated.go
- check_response_property_one_of_updated.go
- check_response_property_pattern_properties_updated.go
- check_response_property_prefix_items_updated.go
- check_response_property_property_names_updated.go
- check_response_property_type_changed.go
- check_response_property_unevaluated_updated.go
- check_response_property_unique_items_unset.go
- check_response_required_property_updated.go
- check_response_required_property_write_only_read_only.go
- check_response_status_updated.go
- check_schema_became_false.go
- check_types.go
- check_webhook_updated.go
- checker.go
- checks.go
- checks_utils.go
- colorize.go
- component_change.go
- config.go
- dependent_required_format.go
- deprecation.go
- disclaimer.go
- doc.go
- fingerprint.go
- ignore.go
- info_change.go
- level.go
- list_of_types_core.go
- localizer.go
- media_type.go
- media_type_walker.go
- nullable_type_utils.go
- nullable_wrapping.go
- op_info.go
- parameter_walker.go
- rules.go
- security_change.go
- source.go
- stability_level.go
- subschema_walk.go
- transition_claims.go
- type_format.go
- versioning_policy.go
Directories
¶
| Path | Synopsis |
|---|---|
|
oasdiff's ultimate objective is to detect breaking changes, so that its users can prevent them.
|
oasdiff's ultimate objective is to detect breaking changes, so that its users can prevent them. |
|
Package localizations provides localized messages for breaking change and changelog output.
|
Package localizations provides localized messages for breaking change and changelog output. |
|
Package metaschema enumerates every possible edit of an OpenAPI document: each field location in the OpenAPI object model, paired with the syntactic edit actions applicable at that location.
|
Package metaschema enumerates every possible edit of an OpenAPI document: each field location in the OpenAPI object model, paired with the syntactic edit actions applicable at that location. |
|
Package rules defines the metadata model of the backward-compatibility rules: the severity levels, the Direction/Area/Kind taxonomy, the Effect a rule concludes about the accepted-value set, the Guards that select the document state it applies to, and the claims tying each rule to the edits it covers (see checker/metaschema).
|
Package rules defines the metadata model of the backward-compatibility rules: the severity levels, the Direction/Area/Kind taxonomy, the Effect a rule concludes about the accepted-value set, the Guards that select the document state it applies to, and the claims tying each rule to the edits it covers (see checker/metaschema). |