Documentation
¶
Index ¶
- Constants
- type ServiceError
- func BadRequest(reason string, values ...interface{}) *ServiceError
- func Conflict(reason string, values ...interface{}) *ServiceError
- func DatabaseAdvisoryLock(err error) *ServiceError
- func FailedToParseSearch(reason string, values ...interface{}) *ServiceError
- func Find(code string) (bool, *ServiceError)
- func Forbidden(reason string, values ...interface{}) *ServiceError
- func GeneralError(reason string, values ...interface{}) *ServiceError
- func InvalidToken(reason string, values ...interface{}) *ServiceError
- func MalformedRequest(reason string, values ...interface{}) *ServiceError
- func New(code string, reason string, values ...interface{}) *ServiceError
- func NotFound(reason string, values ...interface{}) *ServiceError
- func NotImplemented(reason string, values ...interface{}) *ServiceError
- func Unauthenticated(reason string, values ...interface{}) *ServiceError
- func Unauthorized(reason string, values ...interface{}) *ServiceError
- func Validation(reason string, values ...interface{}) *ServiceError
- func ValidationWithDetails(reason string, details []ValidationDetail) *ServiceError
- type ServiceErrors
- type ValidationDetail
Constants ¶
View Source
const ( ErrorTypeBase = "https://api.hyperfleet.io/errors/" ErrorTypeValidation = ErrorTypeBase + "validation-error" ErrorTypeAuth = ErrorTypeBase + "authentication-error" ErrorTypeAuthz = ErrorTypeBase + "authorization-error" ErrorTypeNotFound = ErrorTypeBase + "not-found" ErrorTypeConflict = ErrorTypeBase + "conflict" ErrorTypeRateLimit = ErrorTypeBase + "rate-limit" ErrorTypeInternal = ErrorTypeBase + "internal-error" ErrorTypeService = ErrorTypeBase + "service-unavailable" ErrorTypeBadRequest = ErrorTypeBase + "bad-request" ErrorTypeMalformed = ErrorTypeBase + "malformed-request" ErrorTypeNotImpl = ErrorTypeBase + "not-implemented" )
Error type URIs for RFC 9457
View Source
const ( // Validation errors (VAL) - 400/422 CodeValidationMultiple = "HYPERFLEET-VAL-000" CodeValidationRequired = "HYPERFLEET-VAL-001" CodeValidationInvalid = "HYPERFLEET-VAL-002" CodeValidationFormat = "HYPERFLEET-VAL-003" CodeValidationRange = "HYPERFLEET-VAL-004" // Authentication errors (AUT) - 401 CodeAuthNoCredentials = "HYPERFLEET-AUT-001" CodeAuthInvalidCredentials = "HYPERFLEET-AUT-002" CodeAuthExpiredToken = "HYPERFLEET-AUT-003" // Authorization errors (AUZ) - 403 CodeAuthzInsufficient = "HYPERFLEET-AUZ-001" CodeAuthzForbidden = "HYPERFLEET-AUZ-002" // Not Found errors (NTF) - 404 CodeNotFoundGeneric = "HYPERFLEET-NTF-001" CodeNotFoundCluster = "HYPERFLEET-NTF-002" CodeNotFoundNodePool = "HYPERFLEET-NTF-003" // Conflict errors (CNF) - 409 CodeConflictExists = "HYPERFLEET-CNF-001" CodeConflictVersion = "HYPERFLEET-CNF-002" // Rate Limit errors (LMT) - 429 CodeRateLimitExceeded = "HYPERFLEET-LMT-001" // Internal errors (INT) - 500 CodeInternalGeneral = "HYPERFLEET-INT-001" CodeInternalDatabase = "HYPERFLEET-INT-002" // Service errors (SVC) - 502/503/504 CodeServiceTimeout = "HYPERFLEET-SVC-002" // Bad Request errors CodeBadRequest = "HYPERFLEET-VAL-005" CodeMalformedBody = "HYPERFLEET-VAL-006" CodeSearchParseFail = "HYPERFLEET-VAL-007" CodeNotImplemented = "HYPERFLEET-INT-003" )
Error codes in HYPERFLEET-CAT-NUM format
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ServiceError ¶
type ServiceError struct {
// RFC9457Code is the HYPERFLEET-CAT-NUM format code
RFC9457Code string
// Type is the RFC 9457 type URI
Type string
// Title is a short human-readable summary
Title string
// Reason is the context-specific reason (maps to detail in RFC 9457)
Reason string
// HttpCode is the HTTP status code
HttpCode int
// Details contains field-level validation errors
Details []ValidationDetail
}
ServiceError represents an API error with RFC 9457 Problem Details support
func BadRequest ¶
func BadRequest(reason string, values ...interface{}) *ServiceError
func Conflict ¶
func Conflict(reason string, values ...interface{}) *ServiceError
func DatabaseAdvisoryLock ¶
func DatabaseAdvisoryLock(err error) *ServiceError
func FailedToParseSearch ¶
func FailedToParseSearch(reason string, values ...interface{}) *ServiceError
func Find ¶
func Find(code string) (bool, *ServiceError)
Find looks up an error definition by its RFC 9457 code
func Forbidden ¶
func Forbidden(reason string, values ...interface{}) *ServiceError
func GeneralError ¶
func GeneralError(reason string, values ...interface{}) *ServiceError
func InvalidToken ¶
func InvalidToken(reason string, values ...interface{}) *ServiceError
func MalformedRequest ¶
func MalformedRequest(reason string, values ...interface{}) *ServiceError
func New ¶
func New(code string, reason string, values ...interface{}) *ServiceError
New creates a new ServiceError with optional custom reason
func NotFound ¶
func NotFound(reason string, values ...interface{}) *ServiceError
func NotImplemented ¶
func NotImplemented(reason string, values ...interface{}) *ServiceError
func Unauthenticated ¶
func Unauthenticated(reason string, values ...interface{}) *ServiceError
func Unauthorized ¶
func Unauthorized(reason string, values ...interface{}) *ServiceError
func Validation ¶
func Validation(reason string, values ...interface{}) *ServiceError
func ValidationWithDetails ¶
func ValidationWithDetails(reason string, details []ValidationDetail) *ServiceError
ValidationWithDetails creates a validation error with field-level details
func (*ServiceError) AsError ¶
func (e *ServiceError) AsError() error
func (*ServiceError) AsProblemDetails ¶
func (e *ServiceError) AsProblemDetails(instance string, traceID string) openapi.Error
AsProblemDetails converts the ServiceError to RFC 9457 Problem Details format
func (*ServiceError) Error ¶
func (e *ServiceError) Error() string
func (*ServiceError) Is404 ¶
func (e *ServiceError) Is404() bool
func (*ServiceError) IsConflict ¶
func (e *ServiceError) IsConflict() bool
func (*ServiceError) IsForbidden ¶
func (e *ServiceError) IsForbidden() bool
type ServiceErrors ¶
type ServiceErrors []ServiceError
Click to show internal directories.
Click to hide internal directories.