|
- // Copyright 2015 go-swagger maintainers
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
-
- package validate
-
- import (
- "net/http"
-
- "github.com/go-openapi/errors"
- )
-
- // Error messages related to spec validation and returned as results.
- const (
- // ArrayRequiresItemsError ...
- ArrayRequiresItemsError = "%s for %q is a collection without an element type (array requires items definition)"
-
- // ArrayInParamRequiresItemsError ...
- ArrayInParamRequiresItemsError = "param %q for %q is a collection without an element type (array requires item definition)"
-
- // ArrayInHeaderRequiresItemsError ...
- ArrayInHeaderRequiresItemsError = "header %q for %q is a collection without an element type (array requires items definition)"
-
- // BothFormDataAndBodyError indicates that an operation specifies both a body and a formData parameter, which is forbidden
- BothFormDataAndBodyError = "operation %q has both formData and body parameters. Only one such In: type may be used for a given operation"
-
- // CannotResolveRefError when a $ref could not be resolved
- CannotResolveReferenceError = "could not resolve reference in %s to $ref %s: %v"
-
- // CircularAncestryDefinitionError ...
- CircularAncestryDefinitionError = "definition %q has circular ancestry: %v"
-
- // DefaultValueDoesNotValidateError results from an invalid default value provided
- DefaultValueDoesNotValidateError = "default value for %s in %s does not validate its schema"
-
- // DefaultValueItemsDoesNotValidateError results from an invalid default value provided for Items
- DefaultValueItemsDoesNotValidateError = "default value for %s.items in %s does not validate its schema"
-
- // DefaultValueHeaderDoesNotValidateError results from an invalid default value provided in header
- DefaultValueHeaderDoesNotValidateError = "in operation %q, default value in header %s for %s does not validate its schema"
-
- // DefaultValueHeaderItemsDoesNotValidateError results from an invalid default value provided in header.items
- DefaultValueHeaderItemsDoesNotValidateError = "in operation %q, default value in header.items %s for %s does not validate its schema"
-
- // DefaultValueInDoesNotValidateError ...
- DefaultValueInDoesNotValidateError = "in operation %q, default value in %s does not validate its schema"
-
- // DuplicateParamNameError ...
- DuplicateParamNameError = "duplicate parameter name %q for %q in operation %q"
-
- // DuplicatePropertiesError ...
- DuplicatePropertiesError = "definition %q contains duplicate properties: %v"
-
- // ExampleValueDoesNotValidateError results from an invalid example value provided
- ExampleValueDoesNotValidateError = "example value for %s in %s does not validate its schema"
-
- // ExampleValueItemsDoesNotValidateError results from an invalid example value provided for Items
- ExampleValueItemsDoesNotValidateError = "example value for %s.items in %s does not validate its schema"
-
- // ExampleValueHeaderDoesNotValidateError results from an invalid example value provided in header
- ExampleValueHeaderDoesNotValidateError = "in operation %q, example value in header %s for %s does not validate its schema"
-
- // ExampleValueHeaderItemsDoesNotValidateError results from an invalid example value provided in header.items
- ExampleValueHeaderItemsDoesNotValidateError = "in operation %q, example value in header.items %s for %s does not validate its schema"
-
- // ExampleValueInDoesNotValidateError ...
- ExampleValueInDoesNotValidateError = "in operation %q, example value in %s does not validate its schema"
-
- // EmptyPathParameterError means that a path parameter was found empty (e.g. "{}")
- EmptyPathParameterError = "%q contains an empty path parameter"
-
- // InvalidDocumentError states that spec validation only processes spec.Document objects
- InvalidDocumentError = "spec validator can only validate spec.Document objects"
-
- // InvalidItemsPatternError indicates an Items definition with invalid pattern
- InvalidItemsPatternError = "%s for %q has invalid items pattern: %q"
-
- // InvalidParameterDefinitionError indicates an error detected on a parameter definition
- InvalidParameterDefinitionError = "invalid definition for parameter %s in %s in operation %q"
-
- // InvalidParameterDefinitionAsSchemaError indicates an error detected on a parameter definition, which was mistaken with a schema definition.
- // Most likely, this situation is encountered whenever a $ref has been added as a sibling of the parameter definition.
- InvalidParameterDefinitionAsSchemaError = "invalid definition as Schema for parameter %s in %s in operation %q"
-
- // InvalidPatternError ...
- InvalidPatternError = "pattern %q is invalid in %s"
-
- // InvalidPatternInError indicates an invalid pattern in a schema or items definition
- InvalidPatternInError = "%s in %s has invalid pattern: %q"
-
- // InvalidPatternInHeaderError indicates a header definition with an invalid pattern
- InvalidPatternInHeaderError = "in operation %q, header %s for %s has invalid pattern %q: %v"
-
- // InvalidPatternInParamError ...
- InvalidPatternInParamError = "operation %q has invalid pattern in param %q: %q"
-
- // InvalidReferenceError indicates that a $ref property could not be resolved
- InvalidReferenceError = "invalid ref %q"
-
- // InvalidResponseDefinitionAsSchemaError indicates an error detected on a response definition, which was mistaken with a schema definition.
- // Most likely, this situation is encountered whenever a $ref has been added as a sibling of the response definition.
- InvalidResponseDefinitionAsSchemaError = "invalid definition as Schema for response %s in %s"
-
- // MultipleBodyParamError indicates that an operation specifies multiple parameter with in: body
- MultipleBodyParamError = "operation %q has more than 1 body param: %v"
-
- // NonUniqueOperationIDError indicates that the same operationId has been specified several times
- NonUniqueOperationIDError = "%q is defined %d times"
-
- // NoParameterInPathError indicates that a path was found without any parameter
- NoParameterInPathError = "path param %q has no parameter definition"
-
- // NoValidPathErrorOrWarning indicates that no single path could be validated. If Paths is empty, this message is only a warning.
- NoValidPathErrorOrWarning = "spec has no valid path defined"
-
- // NoValidResponseError indicates that no valid response description could be found for an operation
- NoValidResponseError = "operation %q has no valid response"
-
- // PathOverlapError ...
- PathOverlapError = "path %s overlaps with %s"
-
- // PathParamNotInPathError indicates that a parameter specified with in: path was not found in the path specification
- PathParamNotInPathError = "path param %q is not present in path %q"
-
- // PathParamNotUniqueError ...
- PathParamNotUniqueError = "params in path %q must be unique: %q conflicts with %q"
-
- // PathParamNotRequiredError ...
- PathParamRequiredError = "in operation %q,path param %q must be declared as required"
-
- // RefNotAllowedInHeaderError indicates a $ref was found in a header definition, which is not allowed by Swagger
- RefNotAllowedInHeaderError = "IMPORTANT!in %q: $ref are not allowed in headers. In context for header %q%s"
-
- // RequiredButNotDefinedError ...
- RequiredButNotDefinedError = "%q is present in required but not defined as property in definition %q"
-
- // SomeParametersBrokenError indicates that some parameters could not be resolved, which might result in partial checks to be carried on
- SomeParametersBrokenError = "some parameters definitions are broken in %q.%s. Cannot carry on full checks on parameters for operation %s"
-
- // UnresolvedReferencesError indicates that at least one $ref could not be resolved
- UnresolvedReferencesError = "some references could not be resolved in spec. First found: %v"
- )
-
- // Warning messages related to spec validation and returned as results
- const (
- // ExamplesWithoutSchemaWarning indicates that examples are provided for a response,but not schema to validate the example against
- ExamplesWithoutSchemaWarning = "Examples provided without schema in operation %q, %s"
-
- // ExamplesMimeNotSupportedWarning indicates that examples are provided with a mime type different than application/json, which
- // the validator dos not support yetl
- ExamplesMimeNotSupportedWarning = "No validation attempt for examples for media types other than application/json, in operation %q, %s"
-
- // PathParamGarbledWarning ...
- PathParamGarbledWarning = "in path %q, param %q contains {,} or white space. Albeit not stricly illegal, this is probably no what you want"
-
- // PathStrippedParamGarbledWarning ...
- PathStrippedParamGarbledWarning = "path stripped from path parameters %s contains {,} or white space. This is probably no what you want."
-
- // ReadOnlyAndRequiredWarning ...
- ReadOnlyAndRequiredWarning = "Required property %s in %q should not be marked as both required and readOnly"
-
- // RefShouldNotHaveSiblingsWarning indicates that a $ref was found with a sibling definition. This results in the $ref taking over its siblings,
- // which is most likely not wanted.
- RefShouldNotHaveSiblingsWarning = "$ref property should have no sibling in %q.%s"
-
- // RequiredHasDefaultWarning indicates that a required parameter property should not have a default
- RequiredHasDefaultWarning = "%s in %s has a default value and is required as parameter"
-
- // UnusedDefinitionWarning ...
- UnusedDefinitionWarning = "definition %q is not used anywhere"
-
- // UnusedParamWarning ...
- UnusedParamWarning = "parameter %q is not used anywhere"
-
- // UnusedResponseWarning ...
- UnusedResponseWarning = "response %q is not used anywhere"
- )
-
- // Additional error codes
- const (
- // InternalErrorCode reports an internal technical error
- InternalErrorCode = http.StatusInternalServerError
- // NotFoundErrorCode indicates that a resource (e.g. a $ref) could not be found
- NotFoundErrorCode = http.StatusNotFound
- )
-
- func invalidDocumentMsg() errors.Error {
- return errors.New(InternalErrorCode, InvalidDocumentError)
- }
- func invalidRefMsg(path string) errors.Error {
- return errors.New(NotFoundErrorCode, InvalidReferenceError, path)
- }
- func unresolvedReferencesMsg(err error) errors.Error {
- return errors.New(errors.CompositeErrorCode, UnresolvedReferencesError, err)
- }
- func noValidPathMsg() errors.Error {
- return errors.New(errors.CompositeErrorCode, NoValidPathErrorOrWarning)
- }
- func emptyPathParameterMsg(path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, EmptyPathParameterError, path)
- }
- func nonUniqueOperationIDMsg(path string, i int) errors.Error {
- return errors.New(errors.CompositeErrorCode, NonUniqueOperationIDError, path, i)
- }
- func circularAncestryDefinitionMsg(path string, args interface{}) errors.Error {
- return errors.New(errors.CompositeErrorCode, CircularAncestryDefinitionError, path, args)
- }
- func duplicatePropertiesMsg(path string, args interface{}) errors.Error {
- return errors.New(errors.CompositeErrorCode, DuplicatePropertiesError, path, args)
- }
- func pathParamNotInPathMsg(path, param string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathParamNotInPathError, param, path)
- }
- func arrayRequiresItemsMsg(path, operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ArrayRequiresItemsError, path, operation)
- }
- func arrayInParamRequiresItemsMsg(path, operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ArrayInParamRequiresItemsError, path, operation)
- }
- func arrayInHeaderRequiresItemsMsg(path, operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ArrayInHeaderRequiresItemsError, path, operation)
- }
- func invalidItemsPatternMsg(path, operation, pattern string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidItemsPatternError, path, operation, pattern)
- }
- func invalidPatternMsg(pattern, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidPatternError, pattern, path)
- }
- func requiredButNotDefinedMsg(path, definition string) errors.Error {
- return errors.New(errors.CompositeErrorCode, RequiredButNotDefinedError, path, definition)
- }
- func pathParamGarbledMsg(path, param string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathParamGarbledWarning, path, param)
- }
- func pathStrippedParamGarbledMsg(path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathStrippedParamGarbledWarning, path)
- }
- func pathOverlapMsg(path, arg string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathOverlapError, path, arg)
- }
- func invalidPatternInParamMsg(operation, param, pattern string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidPatternInParamError, operation, param, pattern)
- }
- func pathParamRequiredMsg(operation, param string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathParamRequiredError, operation, param)
- }
- func bothFormDataAndBodyMsg(operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, BothFormDataAndBodyError, operation)
- }
- func multipleBodyParamMsg(operation string, args interface{}) errors.Error {
- return errors.New(errors.CompositeErrorCode, MultipleBodyParamError, operation, args)
- }
- func pathParamNotUniqueMsg(path, param, arg string) errors.Error {
- return errors.New(errors.CompositeErrorCode, PathParamNotUniqueError, path, param, arg)
- }
- func duplicateParamNameMsg(path, param, operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DuplicateParamNameError, param, path, operation)
- }
- func unusedParamMsg(arg string) errors.Error {
- return errors.New(errors.CompositeErrorCode, UnusedParamWarning, arg)
- }
- func unusedDefinitionMsg(arg string) errors.Error {
- return errors.New(errors.CompositeErrorCode, UnusedDefinitionWarning, arg)
- }
- func unusedResponseMsg(arg string) errors.Error {
- return errors.New(errors.CompositeErrorCode, UnusedResponseWarning, arg)
- }
- func readOnlyAndRequiredMsg(path, param string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ReadOnlyAndRequiredWarning, param, path)
- }
- func noParameterInPathMsg(param string) errors.Error {
- return errors.New(errors.CompositeErrorCode, NoParameterInPathError, param)
- }
- func requiredHasDefaultMsg(param, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, RequiredHasDefaultWarning, param, path)
- }
- func defaultValueDoesNotValidateMsg(param, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DefaultValueDoesNotValidateError, param, path)
- }
- func defaultValueItemsDoesNotValidateMsg(param, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DefaultValueItemsDoesNotValidateError, param, path)
- }
- func noValidResponseMsg(operation string) errors.Error {
- return errors.New(errors.CompositeErrorCode, NoValidResponseError, operation)
- }
- func defaultValueHeaderDoesNotValidateMsg(operation, header, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DefaultValueHeaderDoesNotValidateError, operation, header, path)
- }
- func defaultValueHeaderItemsDoesNotValidateMsg(operation, header, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DefaultValueHeaderItemsDoesNotValidateError, operation, header, path)
- }
- func invalidPatternInHeaderMsg(operation, header, path, pattern string, args interface{}) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidPatternInHeaderError, operation, header, path, pattern, args)
- }
- func invalidPatternInMsg(path, in, pattern string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidPatternInError, path, in, pattern)
- }
- func defaultValueInDoesNotValidateMsg(operation, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, DefaultValueInDoesNotValidateError, operation, path)
- }
- func exampleValueDoesNotValidateMsg(param, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExampleValueDoesNotValidateError, param, path)
- }
- func exampleValueItemsDoesNotValidateMsg(param, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExampleValueItemsDoesNotValidateError, param, path)
- }
- func exampleValueHeaderDoesNotValidateMsg(operation, header, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExampleValueHeaderDoesNotValidateError, operation, header, path)
- }
- func exampleValueHeaderItemsDoesNotValidateMsg(operation, header, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExampleValueHeaderItemsDoesNotValidateError, operation, header, path)
- }
- func exampleValueInDoesNotValidateMsg(operation, path string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExampleValueInDoesNotValidateError, operation, path)
- }
- func examplesWithoutSchemaMsg(operation, response string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExamplesWithoutSchemaWarning, operation, response)
- }
- func examplesMimeNotSupportedMsg(operation, response string) errors.Error {
- return errors.New(errors.CompositeErrorCode, ExamplesMimeNotSupportedWarning, operation, response)
- }
- func refNotAllowedInHeaderMsg(path, header, ref string) errors.Error {
- return errors.New(errors.CompositeErrorCode, RefNotAllowedInHeaderError, path, header, ref)
- }
- func cannotResolveRefMsg(path, ref string, err error) errors.Error {
- return errors.New(errors.CompositeErrorCode, CannotResolveReferenceError, path, ref, err)
- }
- func invalidParameterDefinitionMsg(path, method, operationID string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidParameterDefinitionError, path, method, operationID)
- }
- func invalidParameterDefinitionAsSchemaMsg(path, method, operationID string) errors.Error {
- return errors.New(errors.CompositeErrorCode, InvalidParameterDefinitionAsSchemaError, path, method, operationID)
- }
-
- // disabled
- //func invalidResponseDefinitionAsSchemaMsg(path, method string) errors.Error {
- // return errors.New(errors.CompositeErrorCode, InvalidResponseDefinitionAsSchemaError, path, method)
- //}
- func someParametersBrokenMsg(path, method, operationID string) errors.Error {
- return errors.New(errors.CompositeErrorCode, SomeParametersBrokenError, path, method, operationID)
- }
- func refShouldNotHaveSiblingsMsg(path, operationID string) errors.Error {
- return errors.New(errors.CompositeErrorCode, RefShouldNotHaveSiblingsWarning, operationID, path)
- }
|