package s3shared

import (
	
	

	awshttp 
)

// ResponseError provides the HTTP centric error type wrapping the underlying error
// with the HTTP response value and the deserialized RequestID.
type ResponseError struct {
	*awshttp.ResponseError

	// HostID associated with response error
	HostID string
}

// ServiceHostID returns the host id associated with Response Error
func ( *ResponseError) () string { return .HostID }

// Error returns the formatted error
func ( *ResponseError) () string {
	return fmt.Sprintf(
		"https response error StatusCode: %d, RequestID: %s, HostID: %s, %v",
		.Response.StatusCode, .RequestID, .HostID, .Err)
}

// As populates target and returns true if the type of target is a error type that
// the ResponseError embeds, (e.g.S3 HTTP ResponseError)
func ( *ResponseError) ( interface{}) bool {
	return errors.As(.ResponseError, )
}