validation

package
v2.937.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2026 License: AGPL-3.0 Imports: 39 Imported by: 0

Documentation

Overview

Borrowed from https://github.com/daveshanley/vacuum/blob/main/functions/openapi/path_parameters.go

Index

Constants

View Source
const (
	RulesetSpeakeasyRecommended = "speakeasy-recommended"
	RulesetSpeakeasyGeneration  = "speakeasy-generation"
	RulesetSpeakeasyUnsupported = "speakeasy-unsupported-constructs"
	RulesetSpeakeasyOpenAPI     = "speakeasy-openapi"
	RulesetOpenAPIStandard      = "openapi-standard"
	RulesetOWASP                = "owasp"
)
View Source
const (
	ErrInvalidPath         = generatorErrors.Error("invalid path")
	ErrUnencodedCharacters = generatorErrors.Error("unencoded characters")
)

Variables

View Source
var RulesetMappings = map[string]RulesetConfig{
	"vacuum": {
		NewName:     "openapi-standard",
		Description: "Standard OpenAPI validation rules (formerly vacuum ruleset)",
		Extends:     []string{"recommended"},
	},
	"owasp": {
		NewName:     "owasp",
		Description: "OWASP security rules",
		Extends:     []string{},
	},
	"speakeasy-recommended": {
		NewName:     "speakeasy-recommended",
		Description: "Recommended rules for Speakeasy SDK generation",
		Extends:     []string{"recommended"},
	},
	"speakeasy-generation": {
		NewName:     "speakeasy-generation",
		Description: "Critical rules for SDK generation",
		Extends:     []string{},
	},
	"speakeasy-unsupported-constructs": {
		NewName:     "speakeasy-unsupported-constructs",
		Description: "Generation rules plus checks for constructs the generator cannot represent",
		Extends:     []string{"speakeasy-generation"},
	},
	"speakeasy-openapi": {
		NewName:     "speakeasy-openapi",
		Description: "Broader OpenAPI validation",
		Extends:     []string{"recommended"},
	},
}

RulesetMappings maps old ruleset names to new configurations This allows users to continue using old ruleset names while migrating to new names

SeverityOverrides allows overriding default severities for specific rules in specific rulesets

View Source
var VacuumRuleAliases = map[string]string{

	"typed-enum":                         "semantic-typed-enum",
	"path-params":                        "semantic-path-params",
	"path-declarations-must-exist":       "semantic-path-declarations",
	"path-not-include-query":             "semantic-path-query",
	"duplicated-entry-in-enum":           "semantic-duplicated-enum",
	"no-eval-in-markdown":                "semantic-no-eval-in-markdown",
	"no-script-tags-in-markdown":         "semantic-no-script-tags-in-markdown",
	"operation-operationId":              "semantic-operation-operation-id",
	"operation-operationId-valid-in-url": "semantic-operation-id-valid-in-url",
	"no-ambiguous-paths":                 "semantic-no-ambiguous-paths",
	"oas3-unused-component":              "semantic-unused-component",
	"oas2-unused-definition":             "semantic-unused-component",
	"oas3-missing-example":               "oas3-example-missing",

	"contact-properties":          "style-contact-properties",
	"info-contact":                "style-info-contact",
	"info-description":            "style-info-description",
	"info-license":                "style-info-license",
	"license-url":                 "style-license-url",
	"openapi-tags":                "style-openapi-tags",
	"openapi-tags-alphabetical":   "style-tags-alphabetical",
	"operation-tags":              "style-operation-tags",
	"operation-description":       "style-operation-description",
	"component-description":       "style-component-description",
	"tag-description":             "style-tag-description",
	"no-$ref-siblings":            "style-no-ref-siblings",
	"oas3-no-$ref-siblings":       "style-no-ref-siblings",
	"oas3-host-not-example":       "style-oas3-host-not-example",
	"oas3-server-trailing-slash":  "style-oas3-host-trailing-slash",
	"oas3-parameter-description":  "style-oas3-parameter-description",
	"description-duplication":     "style-description-duplication",
	"oas3-api-servers":            "style-oas3-api-servers",
	"no-http-verbs-in-path":       "style-no-verbs-in-path",
	"paths-kebab-case":            "style-paths-kebab-case",
	"operation-4xx-response":      "style-operation-error-response",
	"operation-success-response":  "style-operation-success-response",
	"operation-singular-tag":      "style-operation-singular-tag",
	"operation-tag-defined":       "style-operation-tag-defined",
	"path-keys-no-trailing-slash": "style-path-trailing-slash",

	"owasp-no-additionalProperties":          "owasp-no-additional-properties",
	"owasp-constrained-additionalProperties": "owasp-additional-properties-constrained",

	"oas3-host-trailing-slash": "style-oas3-host-trailing-slash",

	"duplicate-schema-name":      "generator-duplicate-schema-name",
	"duplicate-schemas":          "generator-duplicate-inline-schemas",
	"duplicate-operation-name":   "generator-duplicate-operation-name",
	"duplicate-errors":           "generator-duplicate-errors",
	"duplicate-inline-schemas":   "generator-duplicate-inline-schemas",
	"duplicate-path-params":      "generator-duplicate-path-params",
	"duplicate-properties":       "generator-duplicate-properties",
	"duplicate-tag":              "generator-duplicate-tag",
	"missing-error-response":     "generator-missing-error-response",
	"missing-examples":           "generator-missing-examples",
	"pagination":                 "generator-pagination",
	"retries":                    "generator-retries",
	"validate-composite-schemas": "generator-validate-composite-schemas",
	"validate-consts-defaults":   "generator-validate-consts-defaults",
	"validate-content-type":      "generator-validate-content-type",
	"validate-deprecation":       "generator-validate-deprecation",
	"validate-document":          "speakeasy-validate-document",
	"validate-enums":             "generator-validate-enums",
	"validate-extensions":        "generator-validate-extensions",
	"validate-not-schemas":       "generator-validate-not-schemas",
	"validate-parameters":        "generator-validate-parameters",
	"validate-paths":             "generator-validate-paths",
	"validate-requests":          "generator-validate-requests",
	"validate-responses":         "generator-validate-responses",
	"validate-security":          "generator-validate-security",
	"validate-servers":           "generator-validate-servers",
	"validate-types":             "generator-validate-types",
}

VacuumRuleAliases maps old vacuum rule names to new linter rule names This allows users to continue using old rule names in their lint.yaml configurations

Functions

func GetAllRulesetNames

func GetAllRulesetNames() []string

GetAllRulesetNames returns all available ruleset names

func GetRulesetConfig

func GetRulesetConfig(rulesetName string) *baseLinter.Config

GetRulesetConfig returns a linter configuration for the specified ruleset name

func NewLinterWithRuleset

func NewLinterWithRuleset(rulesetName string) (*linter.Linter, error)

NewLinterWithRuleset creates a new linter with the specified ruleset registered

func RegisterRuleset

func RegisterRuleset(registry *baseLinter.Registry[*openapi.OpenAPI], rulesetName string, cfg *config.Configuration)

RegisterRuleset registers all rules for a ruleset, applying config-dependent rules.

func ReverseTranslateRuleName

func ReverseTranslateRuleName(newName string) string

ReverseTranslateRuleName translates a new linter rule name back to old vacuum name This is useful for displaying errors with legacy rule names for backward compatibility

func TranslateRuleName

func TranslateRuleName(oldName string) string

TranslateRuleName translates an old vacuum rule name to the new linter rule name If no translation exists, it returns the original name

func TranslateRulesetName

func TranslateRulesetName(oldName string) string

TranslateRulesetName translates an old ruleset name to the new name If no translation exists, it returns the original name

Types

type CsharpOptionalNullableDecimal

type CsharpOptionalNullableDecimal struct {
	// contains filtered or unexported fields
}

CsharpOptionalNullableDecimal warns when a scalar optional+nullable `format: decimal` property is generated for C# in presence-aware mode. Such a field cannot be represented as OptionalNullable<decimal?> without precision loss (Json.NET parses the scalar number token as double before the converter runs), so the generator emits a plain `decimal?` instead. The unwrap decision itself lives in the C# templates (isScalarOptionalNullableDecimal); this rule only surfaces the author-facing warning.

func (*CsharpOptionalNullableDecimal) Category

func (r *CsharpOptionalNullableDecimal) Category() string

func (*CsharpOptionalNullableDecimal) DefaultSeverity

func (r *CsharpOptionalNullableDecimal) DefaultSeverity() validation.Severity

func (*CsharpOptionalNullableDecimal) Description

func (r *CsharpOptionalNullableDecimal) Description() string

func (*CsharpOptionalNullableDecimal) HowToFix

func (r *CsharpOptionalNullableDecimal) HowToFix() string

func (*CsharpOptionalNullableDecimal) ID

func (*CsharpOptionalNullableDecimal) Run

func (*CsharpOptionalNullableDecimal) SetConfig

func (*CsharpOptionalNullableDecimal) SetTarget

func (r *CsharpOptionalNullableDecimal) SetTarget(target types.Target)

func (*CsharpOptionalNullableDecimal) Summary

func (*CsharpOptionalNullableDecimal) Versions

func (r *CsharpOptionalNullableDecimal) Versions() []string

type DuplicateComponentSchemas

type DuplicateComponentSchemas struct{}

DuplicateComponentSchemas flags named component schemas that are structurally identical. Each one generates its own SDK type, bloating the surface area with redundant models that could be a single component shared via $ref.

func (*DuplicateComponentSchemas) Category

func (r *DuplicateComponentSchemas) Category() string

func (*DuplicateComponentSchemas) DefaultSeverity

func (r *DuplicateComponentSchemas) DefaultSeverity() validation.Severity

func (*DuplicateComponentSchemas) Description

func (r *DuplicateComponentSchemas) Description() string

func (*DuplicateComponentSchemas) HowToFix

func (r *DuplicateComponentSchemas) HowToFix() string

func (*DuplicateComponentSchemas) ID

func (*DuplicateComponentSchemas) Run

func (*DuplicateComponentSchemas) Summary

func (r *DuplicateComponentSchemas) Summary() string

func (*DuplicateComponentSchemas) Versions

func (r *DuplicateComponentSchemas) Versions() []string

type DuplicateErrors

type DuplicateErrors struct{}

func (*DuplicateErrors) Category

func (r *DuplicateErrors) Category() string

func (*DuplicateErrors) DefaultSeverity

func (r *DuplicateErrors) DefaultSeverity() validation.Severity

func (*DuplicateErrors) Description

func (r *DuplicateErrors) Description() string

func (*DuplicateErrors) HowToFix

func (r *DuplicateErrors) HowToFix() string

func (*DuplicateErrors) ID

func (r *DuplicateErrors) ID() string
func (r *DuplicateErrors) Link() string

func (*DuplicateErrors) Run

func (*DuplicateErrors) Summary

func (r *DuplicateErrors) Summary() string

func (*DuplicateErrors) Versions

func (r *DuplicateErrors) Versions() []string

type DuplicateInlineSchemas

type DuplicateInlineSchemas struct{}

func (*DuplicateInlineSchemas) Category

func (r *DuplicateInlineSchemas) Category() string

func (*DuplicateInlineSchemas) DefaultSeverity

func (r *DuplicateInlineSchemas) DefaultSeverity() validation.Severity

func (*DuplicateInlineSchemas) Description

func (r *DuplicateInlineSchemas) Description() string

func (*DuplicateInlineSchemas) HowToFix

func (r *DuplicateInlineSchemas) HowToFix() string

func (*DuplicateInlineSchemas) ID

func (r *DuplicateInlineSchemas) Link() string

func (*DuplicateInlineSchemas) Run

func (*DuplicateInlineSchemas) Summary

func (r *DuplicateInlineSchemas) Summary() string

func (*DuplicateInlineSchemas) Versions

func (r *DuplicateInlineSchemas) Versions() []string

type DuplicateModelNamespace

type DuplicateModelNamespace struct{}

DuplicateModelNamespace checks that x-speakeasy-model-namespace values are unique when converted to folder/package names according to target language naming conventions.

func (*DuplicateModelNamespace) Category

func (r *DuplicateModelNamespace) Category() string

func (*DuplicateModelNamespace) DefaultSeverity

func (r *DuplicateModelNamespace) DefaultSeverity() validation.Severity

func (*DuplicateModelNamespace) Description

func (r *DuplicateModelNamespace) Description() string

func (*DuplicateModelNamespace) HowToFix

func (r *DuplicateModelNamespace) HowToFix() string

func (*DuplicateModelNamespace) ID

func (r *DuplicateModelNamespace) Link() string

func (*DuplicateModelNamespace) Run

func (*DuplicateModelNamespace) Summary

func (r *DuplicateModelNamespace) Summary() string

func (*DuplicateModelNamespace) Versions

func (r *DuplicateModelNamespace) Versions() []string

type DuplicateOperationName

type DuplicateOperationName struct {
	// contains filtered or unexported fields
}

func (*DuplicateOperationName) Category

func (r *DuplicateOperationName) Category() string

func (*DuplicateOperationName) DefaultSeverity

func (r *DuplicateOperationName) DefaultSeverity() validation.Severity

func (*DuplicateOperationName) Description

func (r *DuplicateOperationName) Description() string

func (*DuplicateOperationName) HowToFix

func (r *DuplicateOperationName) HowToFix() string

func (*DuplicateOperationName) ID

func (r *DuplicateOperationName) Link() string

func (*DuplicateOperationName) Run

func (*DuplicateOperationName) SetConfig

func (r *DuplicateOperationName) SetConfig(cfg *config.Configuration)

func (*DuplicateOperationName) SetTarget

func (r *DuplicateOperationName) SetTarget(target types.Target)

func (*DuplicateOperationName) Summary

func (r *DuplicateOperationName) Summary() string

func (*DuplicateOperationName) Versions

func (r *DuplicateOperationName) Versions() []string

type DuplicatePathParams

type DuplicatePathParams struct{}

func (*DuplicatePathParams) Category

func (r *DuplicatePathParams) Category() string

func (*DuplicatePathParams) DefaultSeverity

func (r *DuplicatePathParams) DefaultSeverity() validation.Severity

func (*DuplicatePathParams) Description

func (r *DuplicatePathParams) Description() string

func (*DuplicatePathParams) HowToFix

func (r *DuplicatePathParams) HowToFix() string

func (*DuplicatePathParams) ID

func (r *DuplicatePathParams) ID() string
func (r *DuplicatePathParams) Link() string

func (*DuplicatePathParams) Run

func (*DuplicatePathParams) Summary

func (r *DuplicatePathParams) Summary() string

func (*DuplicatePathParams) Versions

func (r *DuplicatePathParams) Versions() []string

type DuplicateProperties

type DuplicateProperties struct {
	// contains filtered or unexported fields
}

func (*DuplicateProperties) Category

func (r *DuplicateProperties) Category() string

func (*DuplicateProperties) DefaultSeverity

func (r *DuplicateProperties) DefaultSeverity() validation.Severity

func (*DuplicateProperties) Description

func (r *DuplicateProperties) Description() string

func (*DuplicateProperties) HowToFix

func (r *DuplicateProperties) HowToFix() string

func (*DuplicateProperties) ID

func (r *DuplicateProperties) ID() string
func (r *DuplicateProperties) Link() string

func (*DuplicateProperties) Run

func (*DuplicateProperties) SetConfig

func (r *DuplicateProperties) SetConfig(cfg *config.Configuration)

func (*DuplicateProperties) SetTarget

func (r *DuplicateProperties) SetTarget(target types.Target)

func (*DuplicateProperties) Summary

func (r *DuplicateProperties) Summary() string

func (*DuplicateProperties) Versions

func (r *DuplicateProperties) Versions() []string

type DuplicateSchemaName

type DuplicateSchemaName struct{}

DuplicateSchemaName checks that schema names are unique when converted to class names

func (*DuplicateSchemaName) Category

func (r *DuplicateSchemaName) Category() string

func (*DuplicateSchemaName) DefaultSeverity

func (r *DuplicateSchemaName) DefaultSeverity() validation.Severity

func (*DuplicateSchemaName) Description

func (r *DuplicateSchemaName) Description() string

func (*DuplicateSchemaName) HowToFix

func (r *DuplicateSchemaName) HowToFix() string

func (*DuplicateSchemaName) ID

func (r *DuplicateSchemaName) ID() string
func (r *DuplicateSchemaName) Link() string

func (*DuplicateSchemaName) Run

func (*DuplicateSchemaName) Summary

func (r *DuplicateSchemaName) Summary() string

func (*DuplicateSchemaName) Versions

func (r *DuplicateSchemaName) Versions() []string

type DuplicateTag

type DuplicateTag struct{}

func (*DuplicateTag) Category

func (r *DuplicateTag) Category() string

func (*DuplicateTag) DefaultSeverity

func (r *DuplicateTag) DefaultSeverity() validation.Severity

func (*DuplicateTag) Description

func (r *DuplicateTag) Description() string

func (*DuplicateTag) HowToFix

func (r *DuplicateTag) HowToFix() string

func (*DuplicateTag) ID

func (r *DuplicateTag) ID() string
func (r *DuplicateTag) Link() string

func (*DuplicateTag) Run

func (r *DuplicateTag) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error

func (*DuplicateTag) Summary

func (r *DuplicateTag) Summary() string

func (*DuplicateTag) Versions

func (r *DuplicateTag) Versions() []string

type LintResult

type LintResult struct {
	Output          *baseLinter.Output
	DocInfo         *baseLinter.DocumentInfo[*openapi.OpenAPI]
	ParseErrors     []error
	LintError       error
	CliVersion      string
	ParseValidOps   bool
	SpecBytes       []byte
	RegisteredRules []Rule // Rules that were registered for this validation
}

LintResult contains the raw output from the linter plus any parsing errors

type MissingErrorResponse

type MissingErrorResponse struct{}

The MissingErrorResponse rule checks that all operations have at least one error response defined An error response is defined as one of the following:

  • A response with a wildcard status code (4XX, 5XX, or default)
  • A response with a status code in the range 400-499
  • A response with a status code in the range 500-599

func (*MissingErrorResponse) Category

func (r *MissingErrorResponse) Category() string

func (*MissingErrorResponse) DefaultSeverity

func (r *MissingErrorResponse) DefaultSeverity() validation.Severity

func (*MissingErrorResponse) Description

func (r *MissingErrorResponse) Description() string

func (*MissingErrorResponse) HowToFix

func (r *MissingErrorResponse) HowToFix() string

func (*MissingErrorResponse) ID

func (r *MissingErrorResponse) ID() string
func (r *MissingErrorResponse) Link() string

func (*MissingErrorResponse) Run

func (*MissingErrorResponse) Summary

func (r *MissingErrorResponse) Summary() string

func (*MissingErrorResponse) Versions

func (r *MissingErrorResponse) Versions() []string

type MissingExamples

type MissingExamples struct{}

The MissingExamples rule checks that examples are provided for parameters, request bodies, responses, and component schemas where possible to improve API documentation

func (*MissingExamples) Category

func (r *MissingExamples) Category() string

func (*MissingExamples) DefaultSeverity

func (r *MissingExamples) DefaultSeverity() validation.Severity

func (*MissingExamples) Description

func (r *MissingExamples) Description() string

func (*MissingExamples) HowToFix

func (r *MissingExamples) HowToFix() string

func (*MissingExamples) ID

func (r *MissingExamples) ID() string
func (r *MissingExamples) Link() string

func (*MissingExamples) Run

func (*MissingExamples) Summary

func (r *MissingExamples) Summary() string

func (*MissingExamples) Versions

func (r *MissingExamples) Versions() []string

type Option

type Option func(*options)

func WithCliVersion

func WithCliVersion(cliVersion string) Option

func WithDisallowConfiguration

func WithDisallowConfiguration() Option

func WithFilteredRules

func WithFilteredRules(rules []string) Option

func WithParseValidOperations

func WithParseValidOperations() Option

func WithRuleset

func WithRuleset(ruleset string) Option

func WithUniformSeverity

func WithUniformSeverity() Option

func WithWorkingDir

func WithWorkingDir(workingDir string) Option

type Pagination

type Pagination struct{}

Pagination checks if pagination might be supported by operations based on parameter names

func (*Pagination) Category

func (r *Pagination) Category() string

func (*Pagination) DefaultSeverity

func (r *Pagination) DefaultSeverity() validation.Severity

func (*Pagination) Description

func (r *Pagination) Description() string

func (*Pagination) HowToFix

func (r *Pagination) HowToFix() string

func (*Pagination) ID

func (r *Pagination) ID() string
func (r *Pagination) Link() string

func (*Pagination) Run

func (r *Pagination) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error

func (*Pagination) Summary

func (r *Pagination) Summary() string

func (*Pagination) Versions

func (r *Pagination) Versions() []string

type PaginationNullableRequestBody added in v2.932.12

type PaginationNullableRequestBody struct{}

PaginationNullableRequestBody rejects a nullable paginated body with required properties.

func (*PaginationNullableRequestBody) Category added in v2.932.12

func (r *PaginationNullableRequestBody) Category() string

func (*PaginationNullableRequestBody) DefaultSeverity added in v2.932.12

func (r *PaginationNullableRequestBody) DefaultSeverity() validation.Severity

func (*PaginationNullableRequestBody) Description added in v2.932.12

func (r *PaginationNullableRequestBody) Description() string

func (*PaginationNullableRequestBody) HowToFix added in v2.932.12

func (r *PaginationNullableRequestBody) HowToFix() string

func (*PaginationNullableRequestBody) ID added in v2.932.12

func (*PaginationNullableRequestBody) Run added in v2.932.12

func (*PaginationNullableRequestBody) Summary added in v2.932.12

func (*PaginationNullableRequestBody) Versions added in v2.932.12

func (r *PaginationNullableRequestBody) Versions() []string

type PathParams

type PathParams struct{}

func (*PathParams) Category

func (p *PathParams) Category() string

func (*PathParams) DefaultSeverity

func (p *PathParams) DefaultSeverity() validation.Severity

func (*PathParams) Description

func (p *PathParams) Description() string

func (*PathParams) HowToFix

func (p *PathParams) HowToFix() string

func (*PathParams) ID

func (p *PathParams) ID() string
func (p *PathParams) Link() string

func (*PathParams) Run

func (p *PathParams) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error

func (*PathParams) Summary

func (p *PathParams) Summary() string

func (*PathParams) Versions

func (p *PathParams) Versions() []string

type Result

type Result struct {
	// contains filtered or unexported fields
}

func NewResult

func NewResult(reportData *report.ValidationReportData, errs []error, cliVersion string, operationToFailingLineNumber map[string]int) *Result

func (*Result) AddError

func (r *Result) AddError(err error)

func (*Result) GenerateReport

func (r *Result) GenerateReport() []byte

func (*Result) GetInvalidOperations

func (r *Result) GetInvalidOperations() []string

func (*Result) GetValidOperations

func (r *Result) GetValidOperations() []string

func (*Result) GetValidationErrors

func (r *Result) GetValidationErrors() []error

func (*Result) HasFatalErrors

func (r *Result) HasFatalErrors() bool

func (*Result) Insert

func (r *Result) Insert(res *validation.Error)

type Retries

type Retries struct{}

Retries checks if retry configuration is present

func (*Retries) Category

func (r *Retries) Category() string

func (*Retries) DefaultSeverity

func (r *Retries) DefaultSeverity() validation.Severity

func (*Retries) Description

func (r *Retries) Description() string

func (*Retries) HowToFix

func (r *Retries) HowToFix() string

func (*Retries) ID

func (r *Retries) ID() string
func (r *Retries) Link() string

func (*Retries) Run

func (r *Retries) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error

func (*Retries) Summary

func (r *Retries) Summary() string

func (*Retries) Versions

func (r *Retries) Versions() []string

type Rule

func NewRuleset

func NewRuleset(name string) []Rule

NewRuleset returns a fresh set of rule instances for the given ruleset name. This ensures each validator gets its own rule instances, preventing state pollution.

type RulesetConfig

type RulesetConfig struct {
	NewName     string
	Description string
	Extends     []string
}

RulesetConfig defines configuration for a ruleset mapping

func GetRulesetMetadata

func GetRulesetMetadata(name string) (RulesetConfig, bool)

GetRulesetMetadata returns the ruleset metadata for a given ruleset name

type SuggestDiscriminator

type SuggestDiscriminator struct{}

SuggestDiscriminator flags oneOf/anyOf unions of object schemas whose members are distinguished by a shared property with distinct constant values, but that have no explicit discriminator. Adding one lets the SDK select the variant directly instead of attempting to deserialize against each member.

func (*SuggestDiscriminator) Category

func (r *SuggestDiscriminator) Category() string

func (*SuggestDiscriminator) DefaultSeverity

func (r *SuggestDiscriminator) DefaultSeverity() validation.Severity

func (*SuggestDiscriminator) Description

func (r *SuggestDiscriminator) Description() string

func (*SuggestDiscriminator) HowToFix

func (r *SuggestDiscriminator) HowToFix() string

func (*SuggestDiscriminator) ID

func (r *SuggestDiscriminator) ID() string
func (r *SuggestDiscriminator) Link() string

func (*SuggestDiscriminator) Run

func (*SuggestDiscriminator) Summary

func (r *SuggestDiscriminator) Summary() string

func (*SuggestDiscriminator) Versions

func (r *SuggestDiscriminator) Versions() []string

type ValidateBase64InputMode

type ValidateBase64InputMode struct{}

ValidateBase64InputMode validates the x-speakeasy-base64-input-mode extension. The extension is opt-in and only meaningful on string schemas that already carry format:byte or contentEncoding:base64. This rule warns (never blocks) when the extension is misapplied so spec authors get clear feedback while generation continues to produce a usable SDK (the application path treats invalid usage as a no-op).

func (*ValidateBase64InputMode) Category

func (r *ValidateBase64InputMode) Category() string

func (*ValidateBase64InputMode) DefaultSeverity

func (r *ValidateBase64InputMode) DefaultSeverity() validation.Severity

func (*ValidateBase64InputMode) Description

func (r *ValidateBase64InputMode) Description() string

func (*ValidateBase64InputMode) HowToFix

func (r *ValidateBase64InputMode) HowToFix() string

func (*ValidateBase64InputMode) ID

func (r *ValidateBase64InputMode) Link() string

func (*ValidateBase64InputMode) Run

func (*ValidateBase64InputMode) Summary

func (r *ValidateBase64InputMode) Summary() string

func (*ValidateBase64InputMode) Versions

func (r *ValidateBase64InputMode) Versions() []string

type ValidateCasing

type ValidateCasing struct{}

ValidateCasing flags component schema names that are identical once case is ignored. Such names produce distinct types in case-sensitive languages but collide in case-insensitive contexts (e.g. C# type lookups and case-insensitive filesystems), where one model silently overwrites the other.

func (*ValidateCasing) Category

func (r *ValidateCasing) Category() string

func (*ValidateCasing) DefaultSeverity

func (r *ValidateCasing) DefaultSeverity() validation.Severity

func (*ValidateCasing) Description

func (r *ValidateCasing) Description() string

func (*ValidateCasing) HowToFix

func (r *ValidateCasing) HowToFix() string

func (*ValidateCasing) ID

func (r *ValidateCasing) ID() string
func (r *ValidateCasing) Link() string

func (*ValidateCasing) Run

func (*ValidateCasing) Summary

func (r *ValidateCasing) Summary() string

func (*ValidateCasing) Versions

func (r *ValidateCasing) Versions() []string

type ValidateCompositeSchemas

type ValidateCompositeSchemas struct{}

func (*ValidateCompositeSchemas) Category

func (r *ValidateCompositeSchemas) Category() string

func (*ValidateCompositeSchemas) DefaultSeverity

func (r *ValidateCompositeSchemas) DefaultSeverity() validation.Severity

func (*ValidateCompositeSchemas) Description

func (r *ValidateCompositeSchemas) Description() string

func (*ValidateCompositeSchemas) HowToFix

func (r *ValidateCompositeSchemas) HowToFix() string

func (*ValidateCompositeSchemas) ID

func (r *ValidateCompositeSchemas) Link() string

func (*ValidateCompositeSchemas) Run

func (*ValidateCompositeSchemas) Summary

func (r *ValidateCompositeSchemas) Summary() string

func (*ValidateCompositeSchemas) Versions

func (r *ValidateCompositeSchemas) Versions() []string

type ValidateConstsDefaults

type ValidateConstsDefaults struct{}

func (*ValidateConstsDefaults) Category

func (r *ValidateConstsDefaults) Category() string

func (*ValidateConstsDefaults) DefaultSeverity

func (r *ValidateConstsDefaults) DefaultSeverity() validation.Severity

func (*ValidateConstsDefaults) Description

func (r *ValidateConstsDefaults) Description() string

func (*ValidateConstsDefaults) HowToFix

func (r *ValidateConstsDefaults) HowToFix() string

func (*ValidateConstsDefaults) ID

func (r *ValidateConstsDefaults) Link() string

func (*ValidateConstsDefaults) Run

func (*ValidateConstsDefaults) Summary

func (r *ValidateConstsDefaults) Summary() string

func (*ValidateConstsDefaults) Versions

func (r *ValidateConstsDefaults) Versions() []string

type ValidateContentType

type ValidateContentType struct{}

func (*ValidateContentType) Category

func (r *ValidateContentType) Category() string

func (*ValidateContentType) DefaultSeverity

func (r *ValidateContentType) DefaultSeverity() validation.Severity

func (*ValidateContentType) Description

func (r *ValidateContentType) Description() string

func (*ValidateContentType) HowToFix

func (r *ValidateContentType) HowToFix() string

func (*ValidateContentType) ID

func (r *ValidateContentType) ID() string
func (r *ValidateContentType) Link() string

func (*ValidateContentType) Run

func (*ValidateContentType) Summary

func (r *ValidateContentType) Summary() string

func (*ValidateContentType) Versions

func (r *ValidateContentType) Versions() []string

type ValidateDeprecation

type ValidateDeprecation struct{}

func (*ValidateDeprecation) Category

func (r *ValidateDeprecation) Category() string

func (*ValidateDeprecation) DefaultSeverity

func (r *ValidateDeprecation) DefaultSeverity() validation.Severity

func (*ValidateDeprecation) Description

func (r *ValidateDeprecation) Description() string

func (*ValidateDeprecation) HowToFix

func (r *ValidateDeprecation) HowToFix() string

func (*ValidateDeprecation) ID

func (r *ValidateDeprecation) ID() string
func (r *ValidateDeprecation) Link() string

func (*ValidateDeprecation) Run

func (*ValidateDeprecation) Summary

func (r *ValidateDeprecation) Summary() string

func (*ValidateDeprecation) Versions

func (r *ValidateDeprecation) Versions() []string

type ValidateDocument

type ValidateDocument struct{}

ValidateDocument ensures the document has paths or webhooks with at least one entry

func (*ValidateDocument) Category

func (r *ValidateDocument) Category() string

func (*ValidateDocument) DefaultSeverity

func (r *ValidateDocument) DefaultSeverity() validation.Severity

func (*ValidateDocument) Description

func (r *ValidateDocument) Description() string

func (*ValidateDocument) HowToFix

func (r *ValidateDocument) HowToFix() string

func (*ValidateDocument) ID

func (r *ValidateDocument) ID() string
func (r *ValidateDocument) Link() string

func (*ValidateDocument) Run

func (*ValidateDocument) Summary

func (r *ValidateDocument) Summary() string

func (*ValidateDocument) Versions

func (r *ValidateDocument) Versions() []string

type ValidateEnums

type ValidateEnums struct{}

func (*ValidateEnums) Category

func (r *ValidateEnums) Category() string

func (*ValidateEnums) DefaultSeverity

func (r *ValidateEnums) DefaultSeverity() validation.Severity

func (*ValidateEnums) Description

func (r *ValidateEnums) Description() string

func (*ValidateEnums) HowToFix

func (r *ValidateEnums) HowToFix() string

func (*ValidateEnums) ID

func (r *ValidateEnums) ID() string
func (r *ValidateEnums) Link() string

func (*ValidateEnums) Run

func (*ValidateEnums) Summary

func (r *ValidateEnums) Summary() string

func (*ValidateEnums) Versions

func (r *ValidateEnums) Versions() []string

type ValidateExtensions

type ValidateExtensions struct {
	// contains filtered or unexported fields
}

func (*ValidateExtensions) Category

func (r *ValidateExtensions) Category() string

func (*ValidateExtensions) DefaultSeverity

func (r *ValidateExtensions) DefaultSeverity() validation.Severity

func (*ValidateExtensions) Description

func (r *ValidateExtensions) Description() string

func (*ValidateExtensions) HowToFix

func (r *ValidateExtensions) HowToFix() string

func (*ValidateExtensions) ID

func (r *ValidateExtensions) ID() string
func (r *ValidateExtensions) Link() string

func (*ValidateExtensions) Run

func (*ValidateExtensions) SetConfig

func (r *ValidateExtensions) SetConfig(cfg *config.Configuration)

func (*ValidateExtensions) SetDocInfo

func (r *ValidateExtensions) SetDocInfo(docInfo *document.DocumentInfo)

func (*ValidateExtensions) SetTarget

func (r *ValidateExtensions) SetTarget(target types.Target)

func (*ValidateExtensions) Summary

func (r *ValidateExtensions) Summary() string

func (*ValidateExtensions) Versions

func (r *ValidateExtensions) Versions() []string

type ValidateNotSchemas

type ValidateNotSchemas struct{}

ValidateNotSchemas flags schemas that use the JSON Schema `not` keyword. The SDK generator does not support `not`; any operation whose request or response schemas reach such a schema is silently skipped at generation time. This rule surfaces the unsupported construct during linting so it can be caught before methods disappear from a published SDK. It ships only in the opt-in speakeasy-unsupported-constructs ruleset.

func (*ValidateNotSchemas) Category

func (r *ValidateNotSchemas) Category() string

func (*ValidateNotSchemas) DefaultSeverity

func (r *ValidateNotSchemas) DefaultSeverity() validation.Severity

func (*ValidateNotSchemas) Description

func (r *ValidateNotSchemas) Description() string

func (*ValidateNotSchemas) HowToFix

func (r *ValidateNotSchemas) HowToFix() string

func (*ValidateNotSchemas) ID

func (r *ValidateNotSchemas) ID() string
func (r *ValidateNotSchemas) Link() string

func (*ValidateNotSchemas) Run

func (*ValidateNotSchemas) Summary

func (r *ValidateNotSchemas) Summary() string

func (*ValidateNotSchemas) Versions

func (r *ValidateNotSchemas) Versions() []string

type ValidateParameters

type ValidateParameters struct {
	// contains filtered or unexported fields
}

func (*ValidateParameters) Category

func (r *ValidateParameters) Category() string

func (*ValidateParameters) DefaultSeverity

func (r *ValidateParameters) DefaultSeverity() validation.Severity

func (*ValidateParameters) Description

func (r *ValidateParameters) Description() string

func (*ValidateParameters) HowToFix

func (r *ValidateParameters) HowToFix() string

func (*ValidateParameters) ID

func (r *ValidateParameters) ID() string
func (r *ValidateParameters) Link() string

func (*ValidateParameters) Run

func (*ValidateParameters) SetConfig

func (r *ValidateParameters) SetConfig(cfg *config.Configuration)

func (*ValidateParameters) SetTarget

func (r *ValidateParameters) SetTarget(target types.Target)

func (*ValidateParameters) Summary

func (r *ValidateParameters) Summary() string

func (*ValidateParameters) Versions

func (r *ValidateParameters) Versions() []string

type ValidatePaths

type ValidatePaths struct{}

func (*ValidatePaths) Category

func (r *ValidatePaths) Category() string

func (*ValidatePaths) DefaultSeverity

func (r *ValidatePaths) DefaultSeverity() validation.Severity

func (*ValidatePaths) Description

func (r *ValidatePaths) Description() string

func (*ValidatePaths) HowToFix

func (r *ValidatePaths) HowToFix() string

func (*ValidatePaths) ID

func (r *ValidatePaths) ID() string
func (r *ValidatePaths) Link() string

func (*ValidatePaths) Run

func (*ValidatePaths) Summary

func (r *ValidatePaths) Summary() string

func (*ValidatePaths) Versions

func (r *ValidatePaths) Versions() []string

type ValidateRequests

type ValidateRequests struct{}

func (*ValidateRequests) Category

func (r *ValidateRequests) Category() string

func (*ValidateRequests) DefaultSeverity

func (r *ValidateRequests) DefaultSeverity() validation.Severity

func (*ValidateRequests) Description

func (r *ValidateRequests) Description() string

func (*ValidateRequests) HowToFix

func (r *ValidateRequests) HowToFix() string

func (*ValidateRequests) ID

func (r *ValidateRequests) ID() string
func (r *ValidateRequests) Link() string

func (*ValidateRequests) Run

func (*ValidateRequests) Summary

func (r *ValidateRequests) Summary() string

func (*ValidateRequests) Versions

func (r *ValidateRequests) Versions() []string

type ValidateResponses

type ValidateResponses struct{}

func (*ValidateResponses) Category

func (r *ValidateResponses) Category() string

func (*ValidateResponses) DefaultSeverity

func (r *ValidateResponses) DefaultSeverity() validation.Severity

func (*ValidateResponses) Description

func (r *ValidateResponses) Description() string

func (*ValidateResponses) HowToFix

func (r *ValidateResponses) HowToFix() string

func (*ValidateResponses) ID

func (r *ValidateResponses) ID() string
func (r *ValidateResponses) Link() string

func (*ValidateResponses) Run

func (*ValidateResponses) Summary

func (r *ValidateResponses) Summary() string

func (*ValidateResponses) Versions

func (r *ValidateResponses) Versions() []string

type ValidateSecurity

type ValidateSecurity struct {
	// contains filtered or unexported fields
}

func (*ValidateSecurity) Category

func (r *ValidateSecurity) Category() string

func (*ValidateSecurity) DefaultSeverity

func (r *ValidateSecurity) DefaultSeverity() validation.Severity

func (*ValidateSecurity) Description

func (r *ValidateSecurity) Description() string

func (*ValidateSecurity) HowToFix

func (r *ValidateSecurity) HowToFix() string

func (*ValidateSecurity) ID

func (r *ValidateSecurity) ID() string
func (r *ValidateSecurity) Link() string

func (*ValidateSecurity) Run

func (*ValidateSecurity) SetTarget

func (r *ValidateSecurity) SetTarget(target types.Target)

func (*ValidateSecurity) Summary

func (r *ValidateSecurity) Summary() string

func (*ValidateSecurity) Versions

func (r *ValidateSecurity) Versions() []string

type ValidateServers

type ValidateServers struct {
	BaseServerURL string
}

func (*ValidateServers) Category

func (r *ValidateServers) Category() string

func (*ValidateServers) DefaultSeverity

func (r *ValidateServers) DefaultSeverity() validation.Severity

func (*ValidateServers) Description

func (r *ValidateServers) Description() string

func (*ValidateServers) HowToFix

func (r *ValidateServers) HowToFix() string

func (*ValidateServers) ID

func (r *ValidateServers) ID() string
func (r *ValidateServers) Link() string

func (*ValidateServers) Run

func (*ValidateServers) SetConfig

func (r *ValidateServers) SetConfig(cfg *config.Configuration)

func (*ValidateServers) Summary

func (r *ValidateServers) Summary() string

func (*ValidateServers) Versions

func (r *ValidateServers) Versions() []string

type ValidateTypes

type ValidateTypes struct{}

ValidateTypes validates array-specific schema constraints for SDK generation. Note: Basic type validation (checking if type is "string", "integer", etc.) is handled by the built-in OpenAPI schema validator, so we only validate array-specific rules here.

func (*ValidateTypes) Category

func (r *ValidateTypes) Category() string

func (*ValidateTypes) DefaultSeverity

func (r *ValidateTypes) DefaultSeverity() validation.Severity

func (*ValidateTypes) Description

func (r *ValidateTypes) Description() string

func (*ValidateTypes) HowToFix

func (r *ValidateTypes) HowToFix() string

func (*ValidateTypes) ID

func (r *ValidateTypes) ID() string
func (r *ValidateTypes) Link() string

func (*ValidateTypes) Run

func (*ValidateTypes) Summary

func (r *ValidateTypes) Summary() string

func (*ValidateTypes) Versions

func (r *ValidateTypes) Versions() []string

type Validator

type Validator struct {
	// contains filtered or unexported fields
}

func NewValidator

func NewValidator(cfg *config.Configuration, defaultRuleset string, opts ...Option) (*Validator, error)

func (*Validator) AreRulesUsed

func (v *Validator) AreRulesUsed(rules []Rule) bool

func (*Validator) FilterErrors

func (v *Validator) FilterErrors(errs []error) ([]error, []error)

FilterErrors applies the linter's filters to errors and separates them by severity This is used for additional errors from resolution or other sources

func (*Validator) GetRules

func (v *Validator) GetRules() map[string]Rule

func (*Validator) GetRulesets

func (v *Validator) GetRulesets() map[string][]Rule

func (*Validator) GetUsedRules

func (v *Validator) GetUsedRules() []Rule

func (*Validator) ValidateDocument

func (v *Validator) ValidateDocument(ctx context.Context, docInfo *document.DocumentInfo, target types.Target, parseErrors ...error) *Result

ValidateDocument validates an already-parsed OpenAPI document from DocumentInfo This is the optimized API that eliminates duplicate parsing between validation and generation Optionally accepts parse errors from openapi.Unmarshal which will be included in the output

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL