Documentation
¶
Index ¶
- Constants
- Variables
- func NewTool(c Client, opts contract.ToolOptions[Client]) *defaultTool
- type Client
- type ClientOption
- func WithAuthenticationTimeout(d time.Duration) ClientOption
- func WithAuthorizationTimeout(d time.Duration) ClientOption
- func WithAuthorizationURL(u *url.URL) ClientOption
- func WithFirebaseIDTokenAuthenticationURL(u *url.URL) ClientOption
- func WithIdempotencyHeaderKey(key string) ClientOption
- func WithIdempotencyKeyTTL(d time.Duration) ClientOption
- func WithIdempotencyTimeout(d time.Duration) ClientOption
- func WithOIDCAuthenticationURL(u *url.URL) ClientOption
- func WithUserIDHeaderKey(key string) ClientOption
- type ClientOptions
- type Dependencies
Constants ¶
View Source
const ( NA = iota Reader Writer Owner )
Variables ¶
View Source
var ( ErrMissingUserIDHeaderKey = errors.New("missing user id header key") ErrMissingIdempotencyHeaderKey = errors.New("missing idempotency header key") ErrMissingIdempotencyTimeout = errors.New("missing idempotency timeout") ErrMissingIdempotencyKeyTTL = errors.New("missing idempotency key ttl") ErrMissingAuthorizationTimeout = errors.New("missing authorization timeout") ErrMissingAuthorizationURL = errors.New("missing authorization url") ErrMissingAuthenticationTimeout = errors.New("missing authentication timeout") ErrMissingFirebaseIDTokenAuthenticationURL = errors.New("missing firebase id token authentication url") ErrMissingOIDCAuthenticationURL = errors.New("missing oidc authentication url") )
Functions ¶
Types ¶
type Client ¶
type Client interface {
contract.MiddlewareOperator
}
func NewClient ¶
func NewClient(d Dependencies, opts ClientOptions) (Client, error)
type ClientOption ¶
type ClientOption func(*ClientOptions)
func WithAuthenticationTimeout ¶
func WithAuthenticationTimeout(d time.Duration) ClientOption
func WithAuthorizationTimeout ¶
func WithAuthorizationTimeout(d time.Duration) ClientOption
func WithAuthorizationURL ¶
func WithAuthorizationURL(u *url.URL) ClientOption
func WithFirebaseIDTokenAuthenticationURL ¶
func WithFirebaseIDTokenAuthenticationURL(u *url.URL) ClientOption
func WithIdempotencyHeaderKey ¶
func WithIdempotencyHeaderKey(key string) ClientOption
func WithIdempotencyKeyTTL ¶
func WithIdempotencyKeyTTL(d time.Duration) ClientOption
func WithIdempotencyTimeout ¶
func WithIdempotencyTimeout(d time.Duration) ClientOption
func WithOIDCAuthenticationURL ¶
func WithOIDCAuthenticationURL(u *url.URL) ClientOption
func WithUserIDHeaderKey ¶
func WithUserIDHeaderKey(key string) ClientOption
type ClientOptions ¶
type ClientOptions struct {
UserIDKeaderKey string
IdempotencyHeaderKey string
IdempotencyTimeout time.Duration
IdempotencyKeyTTL time.Duration
AuthorizationTimeout time.Duration
AuthenticationTimeout time.Duration
AuthorizationURL *url.URL
FirebaseIDTokenAuthenticationURL *url.URL
OIDCAuthenticationURL *url.URL
}
func ApplyClientOptions ¶
func ApplyClientOptions(opts *ClientOptions, modifiers ...ClientOption) ClientOptions
type Dependencies ¶
type Dependencies struct {
C contract.CacheOperator
RS contract.HTTPResponder
HR contract.HTTPRequester
HU contract.HTTPUtil
HD contract.HTTPDoer
}
Click to show internal directories.
Click to hide internal directories.