| package auth | |
| // 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 | |
| } | |