40 lines · 1.1 KB · Go
RawDownload
package auth const requestScopedErrorCode = "request_scoped" // Error describes an authentication related failure in a provider agnostic format.type Error struct {	// Code is a short machine readable identifier.	Code string `json:"code,omitempty"`	// Message is a human readable description of the failure.	Message string `json:"message"`	// Retryable indicates whether a retry might fix the issue automatically.	Retryable bool `json:"retryable"`	// HTTPStatus optionally records an HTTP-like status code for the error.	HTTPStatus int `json:"http_status,omitempty"`} // Error implements the error interface.func (e *Error) Error() string {	if e == nil {		return ""	}	if e.Code == "" {		return e.Message	}	return e.Code + ": " + e.Message} // StatusCode implements optional status accessor for manager decision making.func (e *Error) StatusCode() int {	if e == nil {		return 0	}	return e.HTTPStatus} // IsRequestScoped reports whether the failure is tied to the current request// rather than the selected credential.func (e *Error) IsRequestScoped() bool {	return e != nil && e.Code == requestScopedErrorCode}