Documentation ¶
Index ¶
- Constants
- func IsValidPortNum(port int) error
- func IsValidProtocol(protocol string) error
- type Error
- func Duplicate(field string, value interface{}) *Error
- func Forbidden(field string, detail string) *Error
- func GeneralError(field string, err error) *Error
- func InternalError(field string, err error) *Error
- func Invalid(field string, value interface{}, detail string) *Error
- func NotFound(field string, value interface{}) *Error
- func NotSupported(field string, value interface{}, validValues []string) *Error
- func Required(field string, detail string) *Error
- func TooLong(field string, value interface{}, maxLength int) *Error
- type ErrorList
- func ValidateNonnegativeField(value int64, field string) ErrorList
- func ValidateNonnegativeFieldFloat(value float64, field string) ErrorList
- func ValidatePort(port string, field string) ErrorList
- func ValidatePortRange(portRange string, field string) (firstPort, lastPort int, allErrs ErrorList)
- func ValidateProtocol(protocol string, field string) ErrorList
- type ErrorType
Constants ¶
const ( // UDP protocol UDP = `UDP` // TCP protocol TCP = `TCP` )
Variables ¶
This section is empty.
Functions ¶
func IsValidPortNum ¶
IsValidPortNum tests that the argument is a valid, non-zero port number.
func IsValidProtocol ¶
IsValidProtocol tests that the argument is TCP or UDP.
Types ¶
type Error ¶
Error is an implementation of the 'error' interface, which represents a field-level validation error.
func Duplicate ¶
Duplicate returns a *Error indicating "duplicate value". This is used to report collisions of values that must be unique (e.g. names or IDs).
func Forbidden ¶
Forbidden returns a *Error indicating "forbidden". This is used to report valid (as per formatting rules) values which would be accepted under some conditions, but which are not permitted by current conditions (e.g. security policy).
func GeneralError ¶
GeneralError returns a *Error for a general failure. This is used to signal that an error was found that has no structured details. The err argument must be non-nil.
func InternalError ¶
InternalError returns a *Error indicating "internal error". This is used to signal that an error was found that was not directly related to user input. The err argument must be non-nil.
func Invalid ¶
Invalid returns a *Error indicating "invalid value". This is used to report malformed values (e.g. failed regex match, too long, out of bounds).
func NotFound ¶
NotFound returns a *Error indicating "value not found". This is used to report failure to find a requested value (e.g. looking up an ID).
func NotSupported ¶
NotSupported returns a *Error indicating "unsupported value". This is used to report unknown values for enumerated fields (e.g. a list of valid values).
func Required ¶
Required returns a *Error indicating "value required". This is used to report required values that are not provided (e.g. empty strings, null values, or empty arrays).
type ErrorList ¶
type ErrorList []*Error
ErrorList holds a set of Errors. It is plausible that we might one day have non-field errors in this same umbrella package, but for now we don't, so we can keep it simple and leave ErrorList here.
func ValidateNonnegativeField ¶
ValidateNonnegativeField validates that given value is not negative.
func ValidateNonnegativeFieldFloat ¶
ValidateNonnegativeFieldFloat validates that given value is not negative.
func ValidatePort ¶
ValidatePort validates that given value is valid and in range 0 - 65535.
func ValidatePortRange ¶
ValidatePortRange validates that the given value is a valid port range, with its elements in range 0 - 65535. It accepts singular ports P, and port ranges of the form N-M.
func ValidateProtocol ¶
ValidateProtocol validates that given value belongs to supported protocols
func (ErrorList) ErrorStrings ¶
ErrorStrings returns the underlying errors as a string slice, for testing
type ErrorType ¶
type ErrorType string
ErrorType is a machine readable value providing more detail about why a field is invalid.
const ( // ErrorTypeNotFound is used to report failure to find a requested value // (e.g. looking up an ID). See NotFound(). ErrorTypeNotFound ErrorType = "FieldValueNotFound" // ErrorTypeRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). See // Required(). ErrorTypeRequired ErrorType = "FieldValueRequired" // ErrorTypeDuplicate is used to report collisions of values that must be // unique (e.g. unique IDs). See Duplicate(). ErrorTypeDuplicate ErrorType = "FieldValueDuplicate" // ErrorTypeInvalid is used to report malformed values (e.g. failed regex // match, too long, out of bounds). See Invalid(). ErrorTypeInvalid ErrorType = "FieldValueInvalid" // ErrorTypeNotSupported is used to report unknown values for enumerated // fields (e.g. a list of valid values). See NotSupported(). ErrorTypeNotSupported ErrorType = "FieldValueNotSupported" // ErrorTypeForbidden is used to report valid (as per formatting rules) // values which would be accepted under some conditions, but which are not // permitted by the current conditions (such as security policy). See // Forbidden(). ErrorTypeForbidden ErrorType = "FieldValueForbidden" // ErrorTypeTooLong is used to report that the given value is too long. // This is similar to ErrorTypeInvalid, but the error will not include the // too-long value. See TooLong(). ErrorTypeTooLong ErrorType = "FieldValueTooLong" // ErrorTypeGeneral is used to report general errors without additional // details. ErrorTypeGeneral ErrorType = "GeneralError" // ErrorTypeInternal is used to report other errors that are not related // to user input. See InternalError(). ErrorTypeInternal ErrorType = "InternalError" )