Documentation
¶
Index ¶
- Constants
- Variables
- func Delay(ctx context.Context, delay time.Duration) error
- func EndpointToScope(endpoint string) string
- func GetJSON(resp *http.Response) (map[string]interface{}, error)
- func HasStatusCode(resp *http.Response, statusCodes ...int) bool
- func NewResponseError(resp *http.Response) error
- func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser
- func Payload(resp *http.Response) ([]byte, error)
- func RetryAfter(resp *http.Response) time.Duration
- type AcquireResource
- type CtxWithHTTPHeaderKey
- type CtxWithRetryOptionsKey
- type ExpiringResource
- type NopClosingBytesReader
- type ResponseError
Constants ¶
const ( ContentTypeAppJSON = "application/json" ContentTypeAppXML = "application/xml" )
const ( HeaderAuthorization = "Authorization" HeaderAuxiliaryAuthorization = "x-ms-authorization-auxiliary" HeaderAzureAsync = "Azure-AsyncOperation" HeaderContentLength = "Content-Length" HeaderContentType = "Content-Type" HeaderLocation = "Location" HeaderOperationLocation = "Operation-Location" HeaderRetryAfter = "Retry-After" HeaderUserAgent = "User-Agent" HeaderXmsDate = "x-ms-date" )
const ( // Module is the name of the calling module used in telemetry data. Module = "azcore" // Version is the semantic version (see http://semver.org) of this module. Version = "v0.21.0" )
const BearerTokenPrefix = "Bearer "
const (
DefaultMaxRetries = 3
)
Variables ¶
var ErrNoBody = errors.New("the response did not contain a body")
ErrNoBody is returned if the response didn't contain a body.
Functions ¶
func EndpointToScope ¶
EndpointToScope converts the provided URL endpoint to its default scope.
func GetJSON ¶
GetJSON reads the response body into a raw JSON object. It returns ErrNoBody if there was no content.
func HasStatusCode ¶
HasStatusCode returns true if the Response's status code is one of the specified values.
func NewResponseError ¶
NewResponseError creates a new *ResponseError from the provided HTTP response.
func NopCloser ¶
func NopCloser(rs io.ReadSeeker) io.ReadSeekCloser
NopCloser returns a ReadSeekCloser with a no-op close method wrapping the provided io.ReadSeeker.
Types ¶
type AcquireResource ¶ added in v0.20.0
type AcquireResource func(state interface{}) (newResource interface{}, newExpiration time.Time, err error)
AcquireResource abstracts a method for refreshing an expiring resource.
type CtxWithHTTPHeaderKey ¶
type CtxWithHTTPHeaderKey struct{}
CtxWithHTTPHeaderKey is used as a context key for adding/retrieving http.Header.
type CtxWithRetryOptionsKey ¶
type CtxWithRetryOptionsKey struct{}
CtxWithRetryOptionsKey is used as a context key for adding/retrieving RetryOptions.
type ExpiringResource ¶ added in v0.20.0
type ExpiringResource struct {
// contains filtered or unexported fields
}
ExpiringResource is a temporal resource (usually a credential), that requires periodic refreshing.
func NewExpiringResource ¶ added in v0.20.0
func NewExpiringResource(ar AcquireResource) *ExpiringResource
NewExpiringResource creates a new ExpiringResource that uses the specified AcquireResource for refreshing.
func (*ExpiringResource) GetResource ¶ added in v0.20.0
func (er *ExpiringResource) GetResource(state interface{}) (interface{}, error)
GetResource returns the underlying resource. If the resource is fresh, no refresh is performed.
type NopClosingBytesReader ¶ added in v0.21.0
type NopClosingBytesReader struct {
// contains filtered or unexported fields
}
NopClosingBytesReader is an io.ReadSeekCloser around a byte slice. It also provides direct access to the byte slice to avoid rereading.
func NewNopClosingBytesReader ¶ added in v0.21.0
func NewNopClosingBytesReader(data []byte) *NopClosingBytesReader
NewNopClosingBytesReader creates a new NopClosingBytesReader around the specified byte slice.
func (*NopClosingBytesReader) Bytes ¶ added in v0.21.0
func (r *NopClosingBytesReader) Bytes() []byte
Bytes returns the underlying byte slice.
func (*NopClosingBytesReader) Close ¶ added in v0.21.0
func (*NopClosingBytesReader) Close() error
Close implements the io.Closer interface.
func (*NopClosingBytesReader) Read ¶ added in v0.21.0
func (r *NopClosingBytesReader) Read(b []byte) (n int, err error)
Read implements the io.Reader interface.
func (*NopClosingBytesReader) Seek ¶ added in v0.21.0
func (r *NopClosingBytesReader) Seek(offset int64, whence int) (int64, error)
Seek implements the io.Seeker interface.
func (*NopClosingBytesReader) Set ¶ added in v0.21.0
func (r *NopClosingBytesReader) Set(b []byte)
Set replaces the existing byte slice with the specified byte slice and resets the reader.
type ResponseError ¶
type ResponseError struct { // ErrorCode is the error code returned by the resource provider if available. ErrorCode string // StatusCode is the HTTP status code as defined in https://pkg.go.dev/net/http#pkg-constants. StatusCode int // RawResponse is the underlying HTTP response. RawResponse *http.Response }
ResponseError is returned when a request is made to a service and the service returns a non-success HTTP status code. Use errors.As() to access this type in the error chain.
func (*ResponseError) Error ¶
func (e *ResponseError) Error() string
Error implements the error interface for type ResponseError. Note that the message contents are not contractual and can change over time.