Documentation
¶
Overview ¶
Borrowed from https://github.com/daveshanley/vacuum/blob/main/functions/openapi/path_parameters.go
Index ¶
- Constants
- Variables
- func GetAllRulesetNames() []string
- func GetRulesetConfig(rulesetName string) *baseLinter.Config
- func NewLinterWithRuleset(rulesetName string) (*linter.Linter, error)
- func RegisterRuleset(registry *baseLinter.Registry[*openapi.OpenAPI], rulesetName string, ...)
- func ReverseTranslateRuleName(newName string) string
- func TranslateRuleName(oldName string) string
- func TranslateRulesetName(oldName string) string
- type CsharpOptionalNullableDecimal
- func (r *CsharpOptionalNullableDecimal) Category() string
- func (r *CsharpOptionalNullableDecimal) DefaultSeverity() validation.Severity
- func (r *CsharpOptionalNullableDecimal) Description() string
- func (r *CsharpOptionalNullableDecimal) HowToFix() string
- func (r *CsharpOptionalNullableDecimal) ID() string
- func (r *CsharpOptionalNullableDecimal) Link() string
- func (r *CsharpOptionalNullableDecimal) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *CsharpOptionalNullableDecimal) SetConfig(cfg *config.Configuration)
- func (r *CsharpOptionalNullableDecimal) SetTarget(target types.Target)
- func (r *CsharpOptionalNullableDecimal) Summary() string
- func (r *CsharpOptionalNullableDecimal) Versions() []string
- type DuplicateComponentSchemas
- func (r *DuplicateComponentSchemas) Category() string
- func (r *DuplicateComponentSchemas) DefaultSeverity() validation.Severity
- func (r *DuplicateComponentSchemas) Description() string
- func (r *DuplicateComponentSchemas) HowToFix() string
- func (r *DuplicateComponentSchemas) ID() string
- func (r *DuplicateComponentSchemas) Link() string
- func (r *DuplicateComponentSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateComponentSchemas) Summary() string
- func (r *DuplicateComponentSchemas) Versions() []string
- type DuplicateErrors
- func (r *DuplicateErrors) Category() string
- func (r *DuplicateErrors) DefaultSeverity() validation.Severity
- func (r *DuplicateErrors) Description() string
- func (r *DuplicateErrors) HowToFix() string
- func (r *DuplicateErrors) ID() string
- func (r *DuplicateErrors) Link() string
- func (r *DuplicateErrors) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateErrors) Summary() string
- func (r *DuplicateErrors) Versions() []string
- type DuplicateInlineSchemas
- func (r *DuplicateInlineSchemas) Category() string
- func (r *DuplicateInlineSchemas) DefaultSeverity() validation.Severity
- func (r *DuplicateInlineSchemas) Description() string
- func (r *DuplicateInlineSchemas) HowToFix() string
- func (r *DuplicateInlineSchemas) ID() string
- func (r *DuplicateInlineSchemas) Link() string
- func (r *DuplicateInlineSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateInlineSchemas) Summary() string
- func (r *DuplicateInlineSchemas) Versions() []string
- type DuplicateModelNamespace
- func (r *DuplicateModelNamespace) Category() string
- func (r *DuplicateModelNamespace) DefaultSeverity() validation.Severity
- func (r *DuplicateModelNamespace) Description() string
- func (r *DuplicateModelNamespace) HowToFix() string
- func (r *DuplicateModelNamespace) ID() string
- func (r *DuplicateModelNamespace) Link() string
- func (r *DuplicateModelNamespace) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateModelNamespace) Summary() string
- func (r *DuplicateModelNamespace) Versions() []string
- type DuplicateOperationName
- func (r *DuplicateOperationName) Category() string
- func (r *DuplicateOperationName) DefaultSeverity() validation.Severity
- func (r *DuplicateOperationName) Description() string
- func (r *DuplicateOperationName) HowToFix() string
- func (r *DuplicateOperationName) ID() string
- func (r *DuplicateOperationName) Link() string
- func (r *DuplicateOperationName) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateOperationName) SetConfig(cfg *config.Configuration)
- func (r *DuplicateOperationName) SetTarget(target types.Target)
- func (r *DuplicateOperationName) Summary() string
- func (r *DuplicateOperationName) Versions() []string
- type DuplicatePathParams
- func (r *DuplicatePathParams) Category() string
- func (r *DuplicatePathParams) DefaultSeverity() validation.Severity
- func (r *DuplicatePathParams) Description() string
- func (r *DuplicatePathParams) HowToFix() string
- func (r *DuplicatePathParams) ID() string
- func (r *DuplicatePathParams) Link() string
- func (r *DuplicatePathParams) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicatePathParams) Summary() string
- func (r *DuplicatePathParams) Versions() []string
- type DuplicateProperties
- func (r *DuplicateProperties) Category() string
- func (r *DuplicateProperties) DefaultSeverity() validation.Severity
- func (r *DuplicateProperties) Description() string
- func (r *DuplicateProperties) HowToFix() string
- func (r *DuplicateProperties) ID() string
- func (r *DuplicateProperties) Link() string
- func (r *DuplicateProperties) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateProperties) SetConfig(cfg *config.Configuration)
- func (r *DuplicateProperties) SetTarget(target types.Target)
- func (r *DuplicateProperties) Summary() string
- func (r *DuplicateProperties) Versions() []string
- type DuplicateSchemaName
- func (r *DuplicateSchemaName) Category() string
- func (r *DuplicateSchemaName) DefaultSeverity() validation.Severity
- func (r *DuplicateSchemaName) Description() string
- func (r *DuplicateSchemaName) HowToFix() string
- func (r *DuplicateSchemaName) ID() string
- func (r *DuplicateSchemaName) Link() string
- func (r *DuplicateSchemaName) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateSchemaName) Summary() string
- func (r *DuplicateSchemaName) Versions() []string
- type DuplicateTag
- func (r *DuplicateTag) Category() string
- func (r *DuplicateTag) DefaultSeverity() validation.Severity
- func (r *DuplicateTag) Description() string
- func (r *DuplicateTag) HowToFix() string
- func (r *DuplicateTag) ID() string
- func (r *DuplicateTag) Link() string
- func (r *DuplicateTag) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *DuplicateTag) Summary() string
- func (r *DuplicateTag) Versions() []string
- type LintResult
- type MissingErrorResponse
- func (r *MissingErrorResponse) Category() string
- func (r *MissingErrorResponse) DefaultSeverity() validation.Severity
- func (r *MissingErrorResponse) Description() string
- func (r *MissingErrorResponse) HowToFix() string
- func (r *MissingErrorResponse) ID() string
- func (r *MissingErrorResponse) Link() string
- func (r *MissingErrorResponse) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *MissingErrorResponse) Summary() string
- func (r *MissingErrorResponse) Versions() []string
- type MissingExamples
- func (r *MissingExamples) Category() string
- func (r *MissingExamples) DefaultSeverity() validation.Severity
- func (r *MissingExamples) Description() string
- func (r *MissingExamples) HowToFix() string
- func (r *MissingExamples) ID() string
- func (r *MissingExamples) Link() string
- func (r *MissingExamples) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *MissingExamples) Summary() string
- func (r *MissingExamples) Versions() []string
- type Option
- type Pagination
- func (r *Pagination) Category() string
- func (r *Pagination) DefaultSeverity() validation.Severity
- func (r *Pagination) Description() string
- func (r *Pagination) HowToFix() string
- func (r *Pagination) ID() string
- func (r *Pagination) Link() string
- func (r *Pagination) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *Pagination) Summary() string
- func (r *Pagination) Versions() []string
- type PaginationNullableRequestBody
- func (r *PaginationNullableRequestBody) Category() string
- func (r *PaginationNullableRequestBody) DefaultSeverity() validation.Severity
- func (r *PaginationNullableRequestBody) Description() string
- func (r *PaginationNullableRequestBody) HowToFix() string
- func (r *PaginationNullableRequestBody) ID() string
- func (r *PaginationNullableRequestBody) Link() string
- func (r *PaginationNullableRequestBody) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *PaginationNullableRequestBody) Summary() string
- func (r *PaginationNullableRequestBody) Versions() []string
- type PathParams
- func (p *PathParams) Category() string
- func (p *PathParams) DefaultSeverity() validation.Severity
- func (p *PathParams) Description() string
- func (p *PathParams) HowToFix() string
- func (p *PathParams) ID() string
- func (p *PathParams) Link() string
- func (p *PathParams) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (p *PathParams) Summary() string
- func (p *PathParams) Versions() []string
- type Result
- func (r *Result) AddError(err error)
- func (r *Result) GenerateReport() []byte
- func (r *Result) GetInvalidOperations() []string
- func (r *Result) GetValidOperations() []string
- func (r *Result) GetValidationErrors() []error
- func (r *Result) HasFatalErrors() bool
- func (r *Result) Insert(res *validation.Error)
- type Retries
- func (r *Retries) Category() string
- func (r *Retries) DefaultSeverity() validation.Severity
- func (r *Retries) Description() string
- func (r *Retries) HowToFix() string
- func (r *Retries) ID() string
- func (r *Retries) Link() string
- func (r *Retries) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *Retries) Summary() string
- func (r *Retries) Versions() []string
- type Rule
- type RulesetConfig
- type SuggestDiscriminator
- func (r *SuggestDiscriminator) Category() string
- func (r *SuggestDiscriminator) DefaultSeverity() validation.Severity
- func (r *SuggestDiscriminator) Description() string
- func (r *SuggestDiscriminator) HowToFix() string
- func (r *SuggestDiscriminator) ID() string
- func (r *SuggestDiscriminator) Link() string
- func (r *SuggestDiscriminator) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *SuggestDiscriminator) Summary() string
- func (r *SuggestDiscriminator) Versions() []string
- type ValidateBase64InputMode
- func (r *ValidateBase64InputMode) Category() string
- func (r *ValidateBase64InputMode) DefaultSeverity() validation.Severity
- func (r *ValidateBase64InputMode) Description() string
- func (r *ValidateBase64InputMode) HowToFix() string
- func (r *ValidateBase64InputMode) ID() string
- func (r *ValidateBase64InputMode) Link() string
- func (r *ValidateBase64InputMode) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateBase64InputMode) Summary() string
- func (r *ValidateBase64InputMode) Versions() []string
- type ValidateCasing
- func (r *ValidateCasing) Category() string
- func (r *ValidateCasing) DefaultSeverity() validation.Severity
- func (r *ValidateCasing) Description() string
- func (r *ValidateCasing) HowToFix() string
- func (r *ValidateCasing) ID() string
- func (r *ValidateCasing) Link() string
- func (r *ValidateCasing) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateCasing) Summary() string
- func (r *ValidateCasing) Versions() []string
- type ValidateCompositeSchemas
- func (r *ValidateCompositeSchemas) Category() string
- func (r *ValidateCompositeSchemas) DefaultSeverity() validation.Severity
- func (r *ValidateCompositeSchemas) Description() string
- func (r *ValidateCompositeSchemas) HowToFix() string
- func (r *ValidateCompositeSchemas) ID() string
- func (r *ValidateCompositeSchemas) Link() string
- func (r *ValidateCompositeSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateCompositeSchemas) Summary() string
- func (r *ValidateCompositeSchemas) Versions() []string
- type ValidateConstsDefaults
- func (r *ValidateConstsDefaults) Category() string
- func (r *ValidateConstsDefaults) DefaultSeverity() validation.Severity
- func (r *ValidateConstsDefaults) Description() string
- func (r *ValidateConstsDefaults) HowToFix() string
- func (r *ValidateConstsDefaults) ID() string
- func (r *ValidateConstsDefaults) Link() string
- func (r *ValidateConstsDefaults) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateConstsDefaults) Summary() string
- func (r *ValidateConstsDefaults) Versions() []string
- type ValidateContentType
- func (r *ValidateContentType) Category() string
- func (r *ValidateContentType) DefaultSeverity() validation.Severity
- func (r *ValidateContentType) Description() string
- func (r *ValidateContentType) HowToFix() string
- func (r *ValidateContentType) ID() string
- func (r *ValidateContentType) Link() string
- func (r *ValidateContentType) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateContentType) Summary() string
- func (r *ValidateContentType) Versions() []string
- type ValidateDeprecation
- func (r *ValidateDeprecation) Category() string
- func (r *ValidateDeprecation) DefaultSeverity() validation.Severity
- func (r *ValidateDeprecation) Description() string
- func (r *ValidateDeprecation) HowToFix() string
- func (r *ValidateDeprecation) ID() string
- func (r *ValidateDeprecation) Link() string
- func (r *ValidateDeprecation) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateDeprecation) Summary() string
- func (r *ValidateDeprecation) Versions() []string
- type ValidateDocument
- func (r *ValidateDocument) Category() string
- func (r *ValidateDocument) DefaultSeverity() validation.Severity
- func (r *ValidateDocument) Description() string
- func (r *ValidateDocument) HowToFix() string
- func (r *ValidateDocument) ID() string
- func (r *ValidateDocument) Link() string
- func (r *ValidateDocument) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateDocument) Summary() string
- func (r *ValidateDocument) Versions() []string
- type ValidateEnums
- func (r *ValidateEnums) Category() string
- func (r *ValidateEnums) DefaultSeverity() validation.Severity
- func (r *ValidateEnums) Description() string
- func (r *ValidateEnums) HowToFix() string
- func (r *ValidateEnums) ID() string
- func (r *ValidateEnums) Link() string
- func (r *ValidateEnums) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateEnums) Summary() string
- func (r *ValidateEnums) Versions() []string
- type ValidateExtensions
- func (r *ValidateExtensions) Category() string
- func (r *ValidateExtensions) DefaultSeverity() validation.Severity
- func (r *ValidateExtensions) Description() string
- func (r *ValidateExtensions) HowToFix() string
- func (r *ValidateExtensions) ID() string
- func (r *ValidateExtensions) Link() string
- func (r *ValidateExtensions) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateExtensions) SetConfig(cfg *config.Configuration)
- func (r *ValidateExtensions) SetDocInfo(docInfo *document.DocumentInfo)
- func (r *ValidateExtensions) SetTarget(target types.Target)
- func (r *ValidateExtensions) Summary() string
- func (r *ValidateExtensions) Versions() []string
- type ValidateNotSchemas
- func (r *ValidateNotSchemas) Category() string
- func (r *ValidateNotSchemas) DefaultSeverity() validation.Severity
- func (r *ValidateNotSchemas) Description() string
- func (r *ValidateNotSchemas) HowToFix() string
- func (r *ValidateNotSchemas) ID() string
- func (r *ValidateNotSchemas) Link() string
- func (r *ValidateNotSchemas) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateNotSchemas) Summary() string
- func (r *ValidateNotSchemas) Versions() []string
- type ValidateParameters
- func (r *ValidateParameters) Category() string
- func (r *ValidateParameters) DefaultSeverity() validation.Severity
- func (r *ValidateParameters) Description() string
- func (r *ValidateParameters) HowToFix() string
- func (r *ValidateParameters) ID() string
- func (r *ValidateParameters) Link() string
- func (r *ValidateParameters) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateParameters) SetConfig(cfg *config.Configuration)
- func (r *ValidateParameters) SetTarget(target types.Target)
- func (r *ValidateParameters) Summary() string
- func (r *ValidateParameters) Versions() []string
- type ValidatePaths
- func (r *ValidatePaths) Category() string
- func (r *ValidatePaths) DefaultSeverity() validation.Severity
- func (r *ValidatePaths) Description() string
- func (r *ValidatePaths) HowToFix() string
- func (r *ValidatePaths) ID() string
- func (r *ValidatePaths) Link() string
- func (r *ValidatePaths) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidatePaths) Summary() string
- func (r *ValidatePaths) Versions() []string
- type ValidateRequests
- func (r *ValidateRequests) Category() string
- func (r *ValidateRequests) DefaultSeverity() validation.Severity
- func (r *ValidateRequests) Description() string
- func (r *ValidateRequests) HowToFix() string
- func (r *ValidateRequests) ID() string
- func (r *ValidateRequests) Link() string
- func (r *ValidateRequests) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateRequests) Summary() string
- func (r *ValidateRequests) Versions() []string
- type ValidateResponses
- func (r *ValidateResponses) Category() string
- func (r *ValidateResponses) DefaultSeverity() validation.Severity
- func (r *ValidateResponses) Description() string
- func (r *ValidateResponses) HowToFix() string
- func (r *ValidateResponses) ID() string
- func (r *ValidateResponses) Link() string
- func (r *ValidateResponses) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateResponses) Summary() string
- func (r *ValidateResponses) Versions() []string
- type ValidateSecurity
- func (r *ValidateSecurity) Category() string
- func (r *ValidateSecurity) DefaultSeverity() validation.Severity
- func (r *ValidateSecurity) Description() string
- func (r *ValidateSecurity) HowToFix() string
- func (r *ValidateSecurity) ID() string
- func (r *ValidateSecurity) Link() string
- func (r *ValidateSecurity) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateSecurity) SetTarget(target types.Target)
- func (r *ValidateSecurity) Summary() string
- func (r *ValidateSecurity) Versions() []string
- type ValidateServers
- func (r *ValidateServers) Category() string
- func (r *ValidateServers) DefaultSeverity() validation.Severity
- func (r *ValidateServers) Description() string
- func (r *ValidateServers) HowToFix() string
- func (r *ValidateServers) ID() string
- func (r *ValidateServers) Link() string
- func (r *ValidateServers) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateServers) SetConfig(cfg *config.Configuration)
- func (r *ValidateServers) Summary() string
- func (r *ValidateServers) Versions() []string
- type ValidateTypes
- func (r *ValidateTypes) Category() string
- func (r *ValidateTypes) DefaultSeverity() validation.Severity
- func (r *ValidateTypes) Description() string
- func (r *ValidateTypes) HowToFix() string
- func (r *ValidateTypes) ID() string
- func (r *ValidateTypes) Link() string
- func (r *ValidateTypes) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], ...) []error
- func (r *ValidateTypes) Summary() string
- func (r *ValidateTypes) Versions() []string
- type Validator
- func (v *Validator) AreRulesUsed(rules []Rule) bool
- func (v *Validator) FilterErrors(errs []error) ([]error, []error)
- func (v *Validator) GetRules() map[string]Rule
- func (v *Validator) GetRulesets() map[string][]Rule
- func (v *Validator) GetUsedRules() []Rule
- func (v *Validator) ValidateDocument(ctx context.Context, docInfo *document.DocumentInfo, target types.Target, ...) *Result
Constants ¶
const ( RulesetSpeakeasyRecommended = "speakeasy-recommended" RulesetSpeakeasyGeneration = "speakeasy-generation" RulesetSpeakeasyUnsupported = "speakeasy-unsupported-constructs" RulesetSpeakeasyOpenAPI = "speakeasy-openapi" RulesetOpenAPIStandard = "openapi-standard" RulesetOWASP = "owasp" )
const ( ErrInvalidPath = generatorErrors.Error("invalid path") ErrUnencodedCharacters = generatorErrors.Error("unencoded characters") )
Variables ¶
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
var SeverityOverrides = map[string]map[string]validation.Severity{ RulesetSpeakeasyRecommended: { (&rules.OperationIdRule{}).ID(): validation.SeverityWarning, (&rules.DuplicatedEnumRule{}).ID(): validation.SeverityWarning, (&rules.OperationTagDefinedRule{}).ID(): validation.SeverityWarning, (&rules.NoAmbiguousPathsRule{}).ID(): validation.SeverityWarning, }, RulesetSpeakeasyOpenAPI: { (&rules.OperationIdRule{}).ID(): validation.SeverityWarning, (&rules.DuplicatedEnumRule{}).ID(): validation.SeverityWarning, (&rules.OperationTagDefinedRule{}).ID(): validation.SeverityWarning, (&rules.NoAmbiguousPathsRule{}).ID(): validation.SeverityWarning, }, }
SeverityOverrides allows overriding default severities for specific rules in specific rulesets
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 ¶
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 ¶
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 ¶
TranslateRuleName translates an old vacuum rule name to the new linter rule name If no translation exists, it returns the original name
func TranslateRulesetName ¶
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 (r *CsharpOptionalNullableDecimal) ID() string
func (*CsharpOptionalNullableDecimal) Link ¶
func (r *CsharpOptionalNullableDecimal) Link() string
func (*CsharpOptionalNullableDecimal) Run ¶
func (r *CsharpOptionalNullableDecimal) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
func (*CsharpOptionalNullableDecimal) SetConfig ¶
func (r *CsharpOptionalNullableDecimal) SetConfig(cfg *config.Configuration)
func (*CsharpOptionalNullableDecimal) SetTarget ¶
func (r *CsharpOptionalNullableDecimal) SetTarget(target types.Target)
func (*CsharpOptionalNullableDecimal) Summary ¶
func (r *CsharpOptionalNullableDecimal) Summary() string
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 (r *DuplicateComponentSchemas) ID() string
func (*DuplicateComponentSchemas) Link ¶
func (r *DuplicateComponentSchemas) Link() string
func (*DuplicateComponentSchemas) Run ¶
func (r *DuplicateComponentSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*DuplicateErrors) Link ¶
func (r *DuplicateErrors) Link() string
func (*DuplicateErrors) Run ¶
func (r *DuplicateErrors) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*DuplicateInlineSchemas) Link ¶
func (r *DuplicateInlineSchemas) Link() string
func (*DuplicateInlineSchemas) Run ¶
func (r *DuplicateInlineSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*DuplicateModelNamespace) Link ¶
func (r *DuplicateModelNamespace) Link() string
func (*DuplicateModelNamespace) Run ¶
func (r *DuplicateModelNamespace) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*DuplicateOperationName) Link ¶
func (r *DuplicateOperationName) Link() string
func (*DuplicateOperationName) Run ¶
func (r *DuplicateOperationName) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*DuplicatePathParams) Link ¶
func (r *DuplicatePathParams) Link() string
func (*DuplicatePathParams) Run ¶
func (r *DuplicatePathParams) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*DuplicateProperties) Link ¶
func (r *DuplicateProperties) Link() string
func (*DuplicateProperties) Run ¶
func (r *DuplicateProperties) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*DuplicateSchemaName) Link ¶
func (r *DuplicateSchemaName) Link() string
func (*DuplicateSchemaName) Run ¶
func (r *DuplicateSchemaName) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*DuplicateTag) Link ¶
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 (*MissingErrorResponse) Link ¶
func (r *MissingErrorResponse) Link() string
func (*MissingErrorResponse) Run ¶
func (r *MissingErrorResponse) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*MissingExamples) Link ¶
func (r *MissingExamples) Link() string
func (*MissingExamples) Run ¶
func (r *MissingExamples) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 WithDisallowConfiguration ¶
func WithDisallowConfiguration() Option
func WithFilteredRules ¶
func WithParseValidOperations ¶
func WithParseValidOperations() Option
func WithRuleset ¶
func WithUniformSeverity ¶
func WithUniformSeverity() Option
func WithWorkingDir ¶
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 (*Pagination) Link ¶
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 (r *PaginationNullableRequestBody) ID() string
func (*PaginationNullableRequestBody) Link ¶ added in v2.932.12
func (r *PaginationNullableRequestBody) Link() string
func (*PaginationNullableRequestBody) Run ¶ added in v2.932.12
func (r *PaginationNullableRequestBody) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], _ *linter.RuleConfig) []error
func (*PaginationNullableRequestBody) Summary ¶ added in v2.932.12
func (r *PaginationNullableRequestBody) Summary() string
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 (*PathParams) Link ¶
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 (*Result) GenerateReport ¶
func (*Result) GetInvalidOperations ¶
func (*Result) GetValidOperations ¶
func (*Result) GetValidationErrors ¶
func (*Result) HasFatalErrors ¶
func (*Result) Insert ¶
func (r *Result) Insert(res *validation.Error)
type Retries ¶
type Retries struct{}
Retries checks if retry configuration is present
func (*Retries) DefaultSeverity ¶
func (r *Retries) DefaultSeverity() validation.Severity
func (*Retries) Description ¶
type Rule ¶
type Rule = baseLinter.RuleRunner[*openapi.OpenAPI]
func NewRuleset ¶
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 ¶
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 (*SuggestDiscriminator) Link ¶
func (r *SuggestDiscriminator) Link() string
func (*SuggestDiscriminator) Run ¶
func (r *SuggestDiscriminator) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*ValidateBase64InputMode) Link ¶
func (r *ValidateBase64InputMode) Link() string
func (*ValidateBase64InputMode) Run ¶
func (r *ValidateBase64InputMode) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], _ *linter.RuleConfig) []error
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 (*ValidateCasing) Link ¶
func (r *ValidateCasing) Link() string
func (*ValidateCasing) Run ¶
func (r *ValidateCasing) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*ValidateCompositeSchemas) Link ¶
func (r *ValidateCompositeSchemas) Link() string
func (*ValidateCompositeSchemas) Run ¶
func (r *ValidateCompositeSchemas) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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) ID() string
func (*ValidateConstsDefaults) Link ¶
func (r *ValidateConstsDefaults) Link() string
func (*ValidateConstsDefaults) Run ¶
func (r *ValidateConstsDefaults) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateContentType) Link ¶
func (r *ValidateContentType) Link() string
func (*ValidateContentType) Run ¶
func (r *ValidateContentType) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateDeprecation) Link ¶
func (r *ValidateDeprecation) Link() string
func (*ValidateDeprecation) Run ¶
func (r *ValidateDeprecation) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateDocument) Link ¶
func (r *ValidateDocument) Link() string
func (*ValidateDocument) Run ¶
func (r *ValidateDocument) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateEnums) Link ¶
func (r *ValidateEnums) Link() string
func (*ValidateEnums) Run ¶
func (r *ValidateEnums) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateExtensions) Link ¶
func (r *ValidateExtensions) Link() string
func (*ValidateExtensions) Run ¶
func (r *ValidateExtensions) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateNotSchemas) Link ¶
func (r *ValidateNotSchemas) Link() string
func (*ValidateNotSchemas) Run ¶
func (r *ValidateNotSchemas) Run(_ context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], _ *linter.RuleConfig) []error
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 (*ValidateParameters) Link ¶
func (r *ValidateParameters) Link() string
func (*ValidateParameters) Run ¶
func (r *ValidateParameters) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidatePaths) Link ¶
func (r *ValidatePaths) Link() string
func (*ValidatePaths) Run ¶
func (r *ValidatePaths) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateRequests) Link ¶
func (r *ValidateRequests) Link() string
func (*ValidateRequests) Run ¶
func (r *ValidateRequests) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateResponses) Link ¶
func (r *ValidateResponses) Link() string
func (*ValidateResponses) Run ¶
func (r *ValidateResponses) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateSecurity) Link ¶
func (r *ValidateSecurity) Link() string
func (*ValidateSecurity) Run ¶
func (r *ValidateSecurity) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateServers) Link ¶
func (r *ValidateServers) Link() string
func (*ValidateServers) Run ¶
func (r *ValidateServers) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*ValidateTypes) Link ¶
func (r *ValidateTypes) Link() string
func (*ValidateTypes) Run ¶
func (r *ValidateTypes) Run(ctx context.Context, docInfo *linter.DocumentInfo[*openapi.OpenAPI], config *linter.RuleConfig) []error
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 (*Validator) AreRulesUsed ¶
func (*Validator) FilterErrors ¶
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) GetRulesets ¶
func (*Validator) GetUsedRules ¶
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
Source Files
¶
- config_converter.go
- csharpoptionalnullabledecimal.go
- duplicatecomponentschemas.go
- duplicateerrors.go
- duplicateinlineschemas.go
- duplicatemodelnamespace.go
- duplicateoperationname.go
- duplicatepathparams.go
- duplicateproperties.go
- duplicateschemaname.go
- duplicatetag.go
- missingerrorresponse.go
- missingexamples.go
- operationfilenameconflictchecker.go
- operationmethodnameconflictchecker.go
- pagination.go
- paginationnullablerequestbody.go
- pathparams.go
- result.go
- retries.go
- rule_aliases.go
- rules.go
- ruleset_aliases.go
- suggestdiscriminator.go
- transform.go
- types.go
- utils.go
- validatebase64inputmode.go
- validatecasing.go
- validatecompositeschemas.go
- validateconstsdefaults.go
- validatecontenttype.go
- validatedeprecation.go
- validatedocument.go
- validateenums.go
- validateextensions.go
- validatenotschemas.go
- validateparameters.go
- validatepaths.go
- validaterequests.go
- validateresponses.go
- validatesecurity.go
- validateservers.go
- validatetypes.go
- validation.go