Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrApiDisabled = errors.New("the API call is not enabled for this client")
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
io.Closer
// ReadUsage returns the current usage counts by the requested subject.
ReadUsage(ctx context.Context, userId string, subj usage.Subject) (u usage.Usage, err error)
// ReadUsageLimit returns the usage limit by the requested subject.
ReadUsageLimit(ctx context.Context, userId string, subj usage.Subject) (l usage.Limit, err error)
// OpenMessagesWriter opens the batch message writer. A client should close it once done.
OpenMessagesWriter(ctx context.Context, userId string) (w model.Writer[*pb.CloudEvent], err error)
// OpenMessagesReader opens batch message reader. A client should close it once done.
OpenMessagesReader(ctx context.Context, userId, subId string, batchSize uint32) (r model.Reader[[]*pb.CloudEvent], err error)
// OpenMessagesAckReader opens batch message reader that requires an explicit ack. A client should close it once done.
OpenMessagesAckReader(ctx context.Context, userId, subId string, batchSize uint32) (r model.AckReader[[]*pb.CloudEvent], err error)
// CreateSubscription with the specified fields.
CreateSubscription(ctx context.Context, userId string, subData subscription.Data) (id string, err error)
// ReadSubscription specified by the id. Returns ErrNotFound if subscription is missing.
ReadSubscription(ctx context.Context, userId, subId string) (subData subscription.Data, err error)
// UpdateSubscription replaces the existing subscription.Data fields.
UpdateSubscription(ctx context.Context, userId, subId string, subData subscription.Data) (err error)
// DeleteSubscription and all associated conditions those not in use by any other subscription.
// Returns ErrNotFound if a subscription with the specified id is missing.
DeleteSubscription(ctx context.Context, userId, subId string) (err error)
// SearchSubscriptions returns all subscription ids those have the requested user id.
SearchSubscriptions(ctx context.Context, userId string, q subscription.Query, cursor subscription.Cursor) (ids []string, err error)
}
type ClientBuilder ¶
type ClientBuilder interface {
// CertAuthority sets the CA to authenticate the Awakari service.
// Should be used together with ClientKeyPair and ApiUri.
CertAuthority(caCrt []byte) ClientBuilder
// ClientKeyPair sets the client certificate key pair to allow Awakari service to authenticate the client.
// Should be used together with ServerPublicKey and ApiUri.
ClientKeyPair(clientCrt, clientKey []byte) ClientBuilder
// ApiUri sets the Awakari public API URI. Should be used together with ServerPublicKey and ClientKeyPair.
// Useful when a client needs every available public API method.
// Enables additionally the API methods to read the usage limits and permits.
ApiUri(apiUri string) ClientBuilder
// ReaderUri sets the Awakari messages reading API URI. Overrides any value set by ApiUri.
// Useful when the specific message reading API is needed by the client.
ReaderUri(readerUri string) ClientBuilder
// SubscriptionsUri sets the Awakari subscriptions-proxy API URI. Overrides any value set by ApiUri.
// Useful when the specific subscriptions management API is needed by the client.
SubscriptionsUri(subsUri string) ClientBuilder
// WriterUri sets the Awakari messages publishing API URI. Overrides any value set by ApiUri.
// Useful when the specific message publishing API is needed by the client.
WriterUri(writerUri string) ClientBuilder
Connections(countMax int, idleTimeout time.Duration, maxLifeDuration ...time.Duration) ClientBuilder
// Build instantiates the Client instance and returns it.
Build() (c Client, err error)
}
func NewClientBuilder ¶
func NewClientBuilder() ClientBuilder
Click to show internal directories.
Click to hide internal directories.