Documentation ¶
Overview ¶
Package errors provides detailed error types for api field validation.
Index ¶
- Constants
- func FromObject(obj runtime.Object) error
- func IsAlreadyExists(err error) bool
- func IsBadRequest(err error) bool
- func IsConflict(err error) bool
- func IsForbidden(err error) bool
- func IsInvalid(err error) bool
- func IsMethodNotSupported(err error) bool
- func IsNotFound(err error) bool
- func IsServerTimeout(err error) bool
- func IsStatusError(err error) bool
- func IsUnexpectedObjectError(err error) bool
- func NewAlreadyExists(kind, name string) error
- func NewBadRequest(reason string) error
- func NewConflict(kind, name string, err error) error
- func NewForbidden(kind, name string, err error) error
- func NewInternalError(err error) error
- func NewInvalid(kind, name string, errs ValidationErrorList) error
- func NewMethodNotSupported(kind, action string) error
- func NewNotFound(kind, name string) error
- func NewServerTimeout(kind, operation string) error
- func NewTimeoutError(message string) error
- func NewValidationErrorFieldPrefixMatcher(prefix string) errors.Matcher
- func NewValidationErrorTypeMatcher(t ValidationErrorType) errors.Matcher
- type StatusError
- type UnexpectedObjectError
- type ValidationError
- func NewFieldDuplicate(field string, value interface{}) *ValidationError
- func NewFieldForbidden(field string, value interface{}) *ValidationError
- func NewFieldInvalid(field string, value interface{}, detail string) *ValidationError
- func NewFieldNotFound(field string, value interface{}) *ValidationError
- func NewFieldNotSupported(field string, value interface{}) *ValidationError
- func NewFieldRequired(field string, value interface{}) *ValidationError
- func NewFieldTooLong(field string, value interface{}) *ValidationError
- type ValidationErrorList
- type ValidationErrorType
Constants ¶
const ( StatusUnprocessableEntity = 422 StatusTooManyRequests = 429 // HTTP recommendations are for servers to define 5xx error codes // for scenarios not covered by behavior. In this case, ServerTimeout // is an indication that a transient server error has occured and the // client *should* retry, with an optional Retry-After header to specify // the back off window. StatusServerTimeout = 504 )
HTTP Status codes not in the golang http package.
Variables ¶
This section is empty.
Functions ¶
func FromObject ¶
FromObject generates an StatusError from an api.Status, if that is the type of obj; otherwise, returns an UnexpecteObjectError.
func IsAlreadyExists ¶
IsAlreadyExists determines if the err is an error which indicates that a specified resource already exists.
func IsBadRequest ¶ added in v0.5.1
IsBadRequest determines if err is an error which indicates that the request is invalid.
func IsConflict ¶
IsConflict determines if the err is an error which indicates the provided update conflicts.
func IsForbidden ¶ added in v0.10.0
IsForbidden determines if err is an error which indicates that the request is forbidden and cannot be completed as requested.
func IsInvalid ¶
IsInvalid determines if the err is an error which indicates the provided resource is not valid.
func IsMethodNotSupported ¶ added in v0.9.0
IsMethodNotSupported determines if the err is an error which indicates the provided action could not be performed because it is not supported by the server.
func IsNotFound ¶
IsNotFound returns true if the specified error was created by NewNotFoundErr.
func IsServerTimeout ¶ added in v0.11.0
IsServerTimeout determines if err is an error which indicates that the request needs to be retried by the client.
func IsStatusError ¶ added in v0.13.0
IsStatusError determines if err is an API Status error received from the master.
func IsUnexpectedObjectError ¶ added in v0.13.0
IsUnexpectedObjectError determines if err is due to an unexpected object from the master.
func NewAlreadyExists ¶
NewAlreadyExists returns an error indicating the item requested exists by that identifier.
func NewBadRequest ¶ added in v0.5.1
NewBadRequest creates an error that indicates that the request is invalid and can not be processed.
func NewConflict ¶
NewConflict returns an error indicating the item can't be updated as provided.
func NewForbidden ¶ added in v0.9.0
NewForbidden returns an error indicating the requested action was forbidden
func NewInternalError ¶ added in v0.5.1
NewInternalError returns an error indicating the item is invalid and cannot be processed.
func NewInvalid ¶
func NewInvalid(kind, name string, errs ValidationErrorList) error
NewInvalid returns an error indicating the item is invalid and cannot be processed.
func NewMethodNotSupported ¶ added in v0.9.0
NewMethodNotSupported returns an error indicating the requested action is not supported on this kind.
func NewNotFound ¶
NewNotFound returns a new error which indicates that the resource of the kind and the name was not found.
func NewServerTimeout ¶ added in v0.11.0
NewServerTimeout returns an error indicating the requested action could not be completed due to a transient error, and the client should try again.
func NewTimeoutError ¶ added in v0.11.0
NewTimeoutError returns an error indicating that a timeout occurred before the request could be completed. Clients may retry, but the operation may still complete.
func NewValidationErrorFieldPrefixMatcher ¶ added in v0.11.0
NewValidationErrorFieldPrefixMatcher returns an errors.Matcher that returns true if the provided error is a ValidationError and has a field with the provided prefix.
func NewValidationErrorTypeMatcher ¶ added in v0.11.0
func NewValidationErrorTypeMatcher(t ValidationErrorType) errors.Matcher
NewValidationErrorFieldPrefixMatcher returns an errors.Matcher that returns true if the provided error is a ValidationError and has the provided ValidationErrorType.
Types ¶
type StatusError ¶ added in v0.6.0
StatusError is an error intended for consumption by a REST API server; it can also be reconstructed by clients from a REST response. Public to allow easy type switches.
func (*StatusError) Error ¶ added in v0.6.0
func (e *StatusError) Error() string
Error implements the Error interface.
func (*StatusError) Status ¶ added in v0.6.0
func (e *StatusError) Status() api.Status
Status allows access to e's status without having to know the detailed workings of StatusError. Used by pkg/apiserver.
type UnexpectedObjectError ¶ added in v0.6.0
UnexpectedObjectError can be returned by FromObject if it's passed a non-status object.
func (*UnexpectedObjectError) Error ¶ added in v0.6.0
func (u *UnexpectedObjectError) Error() string
Error returns an error message describing 'u'.
type ValidationError ¶
type ValidationError struct { Type ValidationErrorType Field string BadValue interface{} Detail string }
ValidationError is an implementation of the 'error' interface, which represents an error of validation.
func NewFieldDuplicate ¶
func NewFieldDuplicate(field string, value interface{}) *ValidationError
NewFieldDuplicate returns a *ValidationError indicating "duplicate value"
func NewFieldForbidden ¶ added in v0.5.1
func NewFieldForbidden(field string, value interface{}) *ValidationError
NewFieldForbidden returns a *ValidationError indicating "forbidden"
func NewFieldInvalid ¶
func NewFieldInvalid(field string, value interface{}, detail string) *ValidationError
NewFieldInvalid returns a *ValidationError indicating "invalid value"
func NewFieldNotFound ¶
func NewFieldNotFound(field string, value interface{}) *ValidationError
NewFieldNotFound returns a *ValidationError indicating "value not found"
func NewFieldNotSupported ¶
func NewFieldNotSupported(field string, value interface{}) *ValidationError
NewFieldNotSupported returns a *ValidationError indicating "unsupported value"
func NewFieldRequired ¶
func NewFieldRequired(field string, value interface{}) *ValidationError
NewFieldRequired returns a *ValidationError indicating "value required" TODO: remove "value"
func NewFieldTooLong ¶ added in v0.13.0
func NewFieldTooLong(field string, value interface{}) *ValidationError
func (*ValidationError) Error ¶
func (v *ValidationError) Error() string
type ValidationErrorList ¶ added in v0.5.1
type ValidationErrorList []error
func (ValidationErrorList) Filter ¶ added in v0.11.0
func (list ValidationErrorList) Filter(fns ...errors.Matcher) ValidationErrorList
Filter removes items from the ValidationErrorList that match the provided fns.
func (ValidationErrorList) Prefix ¶ added in v0.5.1
func (list ValidationErrorList) Prefix(prefix string) ValidationErrorList
Prefix adds a prefix to the Field of every ValidationError in the list. Returns the list for convenience.
func (ValidationErrorList) PrefixIndex ¶ added in v0.5.1
func (list ValidationErrorList) PrefixIndex(index int) ValidationErrorList
PrefixIndex adds an index to the Field of every ValidationError in the list. Returns the list for convenience.
type ValidationErrorType ¶
type ValidationErrorType string
ValidationErrorType is a machine readable value providing more detail about why a field is invalid. These values are expected to match 1-1 with CauseType in api/types.go.
const ( // ValidationErrorTypeNotFound is used to report failure to find a requested value // (e.g. looking up an ID). ValidationErrorTypeNotFound ValidationErrorType = "FieldValueNotFound" // ValidationErrorTypeRequired is used to report required values that are not // provided (e.g. empty strings, null values, or empty arrays). ValidationErrorTypeRequired ValidationErrorType = "FieldValueRequired" // ValidationErrorTypeDuplicate is used to report collisions of values that must be // unique (e.g. unique IDs). ValidationErrorTypeDuplicate ValidationErrorType = "FieldValueDuplicate" // ValidationErrorTypeInvalid is used to report malformed values (e.g. failed regex // match). ValidationErrorTypeInvalid ValidationErrorType = "FieldValueInvalid" // ValidationErrorTypeNotSupported is used to report valid (as per formatting rules) // values that can not be handled (e.g. an enumerated string). ValidationErrorTypeNotSupported ValidationErrorType = "FieldValueNotSupported" // ValidationErrorTypeForbidden is used to report valid (as per formatting rules) // values which would be accepted by some api instances, but which would invoke behavior // not permitted by this api instance (such as due to stricter security policy). ValidationErrorTypeForbidden ValidationErrorType = "FieldValueForbidden" // ValidationErrorTypeTooLong is used to report that given value is too long. ValidationErrorTypeTooLong ValidationErrorType = "FieldValueTooLong" )
TODO: These values are duplicated in api/types.go, but there's a circular dep. Fix it.
func (ValidationErrorType) String ¶ added in v0.9.0
func (t ValidationErrorType) String() string
String converts a ValidationErrorType into its corresponding error message.