shared

package
v0.23.0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2022 License: MIT Imports: 13 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.23.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 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.

func TypeOfT added in v0.23.0

func TypeOfT[T any]() reflect.Type

TypeOfT returns the type of the generic type param.

Types

type AccessToken added in v0.21.1

type AccessToken struct {
	Token     string
	ExpiresOn time.Time
}

AccessToken represents an Azure service bearer access token with expiry information.

type AcquireResource added in v0.20.0

type AcquireResource[T, U any] func(state U) (newResource T, newExpiration time.Time, err error)

AcquireResource abstracts a method for refreshing an expiring resource.

type CtxIncludeResponseKey added in v0.22.0

type CtxIncludeResponseKey struct{}

CtxIncludeResponseKey is used as a context key for retrieving the raw response.

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[T, U any] 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[T, U any](ar AcquireResource[T, U]) *ExpiringResource[T, U]

NewExpiringResource creates a new ExpiringResource that uses the specified AcquireResource for refreshing.

func (*ExpiringResource[T, U]) GetResource added in v0.20.0

func (er *ExpiringResource[T, U]) GetResource(state U) (T, 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.

type TokenCredential added in v0.21.1

type TokenCredential interface {
	// GetToken requests an access token for the specified set of scopes.
	GetToken(ctx context.Context, options TokenRequestOptions) (*AccessToken, error)
}

TokenCredential represents a credential capable of providing an OAuth token.

type TokenRequestOptions added in v0.21.1

type TokenRequestOptions struct {
	// Scopes contains the list of permission scopes required for the token.
	Scopes []string
	// TenantID contains the tenant ID to use in a multi-tenant authentication scenario, if TenantID is set
	// it will override the tenant ID that was added at credential creation time.
	TenantID string
}

TokenRequestOptions contain specific parameter that may be used by credentials types when attempting to get a token.

Jump to

Keyboard shortcuts

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