| package gophercloud | 
 |  | 
 | import "fmt" | 
 |  | 
 | // BaseError is an error type that all other error types embed. | 
 | type BaseError struct { | 
 | 	OriginalError string | 
 | 	Function      string | 
 | } | 
 |  | 
 | func (e *BaseError) Error() string { | 
 | 	return "An error occurred while executing a Gophercloud request." | 
 | } | 
 |  | 
 | // ErrInvalidInput is an error type used for most non-HTTP Gophercloud errors. | 
 | type ErrInvalidInput struct { | 
 | 	BaseError | 
 | 	Argument string | 
 | 	Value    interface{} | 
 | } | 
 |  | 
 | func (e *ErrInvalidInput) Error() string { | 
 | 	return fmt.Sprintf("Invalid input provided for argument [%s]: [%+v]", e.Argument, e.Value) | 
 | } | 
 |  | 
 | // ErrUnexpectedResponseCode is returned by the Request method when a response code other than | 
 | // those listed in OkCodes is encountered. | 
 | type ErrUnexpectedResponseCode struct { | 
 | 	BaseError | 
 | 	URL      string | 
 | 	Method   string | 
 | 	Expected []int | 
 | 	Actual   int | 
 | 	Body     []byte | 
 | } | 
 |  | 
 | func (err *ErrUnexpectedResponseCode) Error() string { | 
 | 	return fmt.Sprintf( | 
 | 		"Expected HTTP response code %v when accessing [%s %s], but got %d instead\n%s", | 
 | 		err.Expected, err.Method, err.URL, err.Actual, err.Body, | 
 | 	) | 
 | } | 
 |  | 
 | type ErrDefault400 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault401 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault404 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault405 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault408 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault429 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault500 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 | type ErrDefault503 struct { | 
 | 	*ErrUnexpectedResponseCode | 
 | } | 
 |  | 
 | func (e ErrDefault400) Error() string { | 
 | 	return "Invalid request due to incorrect syntax or missing required parameters." | 
 | } | 
 | func (e ErrDefault401) Error() string { | 
 | 	return "Authentication failed" | 
 | } | 
 | func (e ErrDefault404) Error() string { | 
 | 	return "Resource not found" | 
 | } | 
 | func (e ErrDefault405) Error() string { | 
 | 	return "Method not allowed" | 
 | } | 
 | func (e ErrDefault408) Error() string { | 
 | 	return "The server timed out waiting for the request" | 
 | } | 
 | func (e ErrDefault429) Error() string { | 
 | 	return "Too many requests have been sent in a given amount of time. Pause requests, wait up to one minute, and try again." | 
 | } | 
 | func (e ErrDefault500) Error() string { | 
 | 	return "Internal Server Error" | 
 | } | 
 | func (e ErrDefault503) Error() string { | 
 | 	return "The service is currently unable to handle the request due to a temporary overloading or maintenance. This is a temporary condition. Try again later." | 
 | } | 
 |  | 
 | // Err400er is the interface resource error types implement to override the error message | 
 | // from a 400 error. | 
 | type Err400er interface { | 
 | 	Error400(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err401er is the interface resource error types implement to override the error message | 
 | // from a 401 error. | 
 | type Err401er interface { | 
 | 	Error401(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err404er is the interface resource error types implement to override the error message | 
 | // from a 404 error. | 
 | type Err404er interface { | 
 | 	Error404(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err405er is the interface resource error types implement to override the error message | 
 | // from a 405 error. | 
 | type Err405er interface { | 
 | 	Error405(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err408er is the interface resource error types implement to override the error message | 
 | // from a 408 error. | 
 | type Err408er interface { | 
 | 	Error408(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err429er is the interface resource error types implement to override the error message | 
 | // from a 429 error. | 
 | type Err429er interface { | 
 | 	Error429(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err500er is the interface resource error types implement to override the error message | 
 | // from a 500 error. | 
 | type Err500er interface { | 
 | 	Error500(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | // Err503er is the interface resource error types implement to override the error message | 
 | // from a 503 error. | 
 | type Err503er interface { | 
 | 	Error503(*ErrUnexpectedResponseCode) error | 
 | } | 
 |  | 
 | type ErrTimeOut struct { | 
 | 	*BaseError | 
 | } | 
 |  | 
 | func (e *ErrTimeOut) Error() string { | 
 | 	return "A time out occurred" | 
 | } | 
 |  | 
 | type ErrUnableToReauthenticate struct { | 
 | 	*BaseError | 
 | } | 
 |  | 
 | func (e *ErrUnableToReauthenticate) Error() string { | 
 | 	return fmt.Sprintf("Unable to re-authenticate: %s", e.OriginalError) | 
 | } | 
 |  | 
 | type ErrErrorAfterReauthentication struct { | 
 | 	*BaseError | 
 | } | 
 |  | 
 | func (e *ErrErrorAfterReauthentication) Error() string { | 
 | 	return fmt.Sprintf("Successfully re-authenticated, but got error executing request: %s", e.OriginalError) | 
 | } | 
 |  | 
 | // ErrServiceNotFound is returned when no service in a service catalog matches | 
 | // the provided EndpointOpts. This is generally returned by provider service | 
 | // factory methods like "NewComputeV2()" and can mean that a service is not | 
 | // enabled for your account. | 
 | type ErrServiceNotFound struct { | 
 | 	*BaseError | 
 | } | 
 |  | 
 | func (e *ErrServiceNotFound) Error() string { | 
 | 	return "No suitable service could be found in the service catalog." | 
 | } | 
 |  | 
 | // ErrEndpointNotFound is returned when no available endpoints match the | 
 | // provided EndpointOpts. This is also generally returned by provider service | 
 | // factory methods, and usually indicates that a region was specified | 
 | // incorrectly. | 
 | type ErrEndpointNotFound struct { | 
 | 	*BaseError | 
 | } | 
 |  | 
 | func (e *ErrEndpointNotFound) Error() string { | 
 | 	return "No suitable endpoint could be found in the service catalog." | 
 | } |