shared

package
v0.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2022 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ContentTypeAppJSON = "application/json"
	ContentTypeAppXML  = "application/xml"
)
View Source
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"
)
View Source
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"
)
View Source
const BearerTokenPrefix = "Bearer "
View Source
const (
	DefaultMaxRetries = 3
)

Variables

View Source
var ErrNoBody = errors.New("the response did not contain a body")

ErrNoBody is returned if the response didn't contain a body.

Functions

func Delay

func Delay(ctx context.Context, delay time.Duration) error

Delay waits for the duration to elapse or the context to be cancelled.

func EndpointToScope

func EndpointToScope(endpoint string) string

EndpointToScope converts the provided URL endpoint to its default scope.

func GetJSON

func GetJSON(resp *http.Response) (map[string]interface{}, error)

GetJSON reads the response body into a raw JSON object. It returns ErrNoBody if there was no content.

func HasStatusCode

func HasStatusCode(resp *http.Response, statusCodes ...int) bool

HasStatusCode returns true if the Response's status code is one of the specified values.

func NewResponseError

func NewResponseError(resp *http.Response) error

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.

func Payload added in v0.21.0

func Payload(resp *http.Response) ([]byte, error)

Payload reads and returns the response body or an error. On a successful read, the response body is cached. Subsequent reads will access the cached value.

func RetryAfter

func RetryAfter(resp *http.Response) time.Duration

RetryAfter returns non-zero if the response contains a Retry-After header value.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL