Documentation
¶
Index ¶
- Constants
- Variables
- func DecryptBinary(key string, payload []byte) ([]byte, error)
- func DecryptFromJSON(key string, raw string) (string, error)
- func DefaultConfigPath() (string, error)
- func EncodeHiveBinaryFrame(message HiveMessage) ([]byte, error)
- func EncryptAsBinary(key string, plaintext []byte) ([]byte, error)
- func EncryptAsJSON(key string, plaintext string) (string, error)
- func EndpointFromDomain(domain string, protocol HubProtocol) string
- func EventMatchesContext(event Event, expected Context) bool
- func NewRequestID() string
- func NewSessionID() string
- func RequestIDFromContext(context Context) string
- func RichMediaFromData(data Data) map[string]any
- func RuntimeCryptoKey(raw string) []byte
- func SessionIDFromContext(context Context) string
- func StripSSML(text string) string
- type ActionOptions
- type AnalyticsOverviewOptions
- type BootstrapIdentityOptions
- type BootstrapIdentityResult
- type Client
- func (c *Client) Ask(ctx context.Context, text string, opts RequestOptions) (Reply, error)
- func (c *Client) Close(ctx context.Context) error
- func (c *Client) Connect(ctx context.Context) error
- func (c *Client) ConnectWithInfo(ctx context.Context) (TransportConnectionInfo, error)
- func (c *Client) ConnectionInfo() TransportConnectionInfo
- func (c *Client) Conversation(opts ConversationOptions) Conversation
- func (c *Client) Emit(ctx context.Context, eventType string, data Data, eventContext Context) error
- func (c *Client) Healthcheck() TransportHealth
- func (c *Client) Query(ctx context.Context, text string, opts QueryOptions) (Reply, error)
- func (c *Client) SendAction(ctx context.Context, payload string, opts ActionOptions) error
- func (c *Client) SendCode(ctx context.Context, value string, opts CodeOptions) error
- func (c *Client) SendUtterance(ctx context.Context, text string, opts RequestOptions) error
- type ClientContextOptions
- type ClientOptions
- type CodeOptions
- type Context
- type ControlPlane
- func (c *ControlPlane) CreateClient(ctx context.Context, payload map[string]any, idempotencyKey string) (map[string]any, error)
- func (c *ControlPlane) CreateClientIdentity(ctx context.Context, hub map[string]any, opts BootstrapIdentityOptions) (BootstrapIdentityResult, error)
- func (c *ControlPlane) CreateClientIdentityForHubID(ctx context.Context, hubID string, opts BootstrapIdentityOptions) (BootstrapIdentityResult, error)
- func (c *ControlPlane) CreateMemoryItem(ctx context.Context, payload map[string]any) (map[string]any, error)
- func (c *ControlPlane) DeleteMemoryItem(ctx context.Context, memoryID string) error
- func (c *ControlPlane) GetAnalyticsOverview(ctx context.Context, opts AnalyticsOverviewOptions) (map[string]any, error)
- func (c *ControlPlane) GetHub(ctx context.Context, hubID string) (map[string]any, error)
- func (c *ControlPlane) GetMemoryItem(ctx context.Context, memoryID string) (map[string]any, error)
- func (c *ControlPlane) GetMemorySummary(ctx context.Context, ownerID string) (map[string]any, error)
- func (c *ControlPlane) GetOperation(ctx context.Context, operationID string) (OperationResource, error)
- func (c *ControlPlane) GetPublicHub(ctx context.Context, hubRef string) (map[string]any, error)
- func (c *ControlPlane) ListHubs(ctx context.Context, limit int, cursor string, ownerID string) (map[string]any, error)
- func (c *ControlPlane) ListMemoryItems(ctx context.Context, opts MemoryListOptions) (map[string]any, error)
- func (c *ControlPlane) ListPublicHubs(ctx context.Context, limit int, cursor string) (map[string]any, error)
- func (c *ControlPlane) Login(ctx context.Context, email string, password string, scope string) (map[string]any, error)
- func (c *ControlPlane) LoginWithBrowser(ctx context.Context, opts DeviceLoginOptions) (map[string]any, error)
- func (c *ControlPlane) LoginWithOptions(ctx context.Context, email string, password string, opts LoginOptions) (map[string]any, error)
- func (c *ControlPlane) RequireRuntimeProtocol(result BootstrapIdentityResult, protocol HubProtocol) (*SelectedHubEndpoint, error)
- func (c *ControlPlane) UpdateMemoryItem(ctx context.Context, memoryID string, payload map[string]any) (map[string]any, error)
- type Conversation
- func (c Conversation) Ask(ctx context.Context, text string, opts RequestOptions) (Reply, error)
- func (c Conversation) Query(ctx context.Context, text string, opts QueryOptions) (Reply, error)
- func (c Conversation) SendAction(ctx context.Context, payload string, opts ActionOptions) error
- func (c Conversation) SendCode(ctx context.Context, value string, opts CodeOptions) error
- func (c Conversation) SendUtterance(ctx context.Context, text string, opts RequestOptions) error
- type ConversationOptions
- type Data
- type DeviceLoginOptions
- type DisplayItem
- type Event
- func (e Event) DisplayItems(maxTextChars int) []DisplayItem
- func (e Event) DisplayText() string
- func (e Event) IsFailure() bool
- func (e Event) RequestID() string
- func (e Event) RichMedia() map[string]any
- func (e Event) SessionID() string
- func (e Event) Text() string
- func (e Event) Utterances() []string
- type HTTPTransport
- func (t *HTTPTransport) Authorization() string
- func (t *HTTPTransport) BaseURL() string
- func (t *HTTPTransport) Connect(ctx context.Context) error
- func (t *HTTPTransport) ConnectionInfo() TransportConnectionInfo
- func (t *HTTPTransport) Disconnect(ctx context.Context) error
- func (t *HTTPTransport) EmitBus(ctx context.Context, eventType string, data Data, eventContext Context) error
- func (t *HTTPTransport) Events() <-chan Event
- func (t *HTTPTransport) Healthcheck() TransportHealth
- func (t *HTTPTransport) HiveMessages() <-chan HiveMessage
- func (t *HTTPTransport) IsHandshakeComplete() bool
- func (t *HTTPTransport) PollOnce(ctx context.Context) error
- func (t *HTTPTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error
- type HiveMessage
- type HubDataPlaneEndpoints
- type HubProtocol
- type HubProtocolSettings
- type Identity
- type LoginOptions
- type MQTTTransport
- func (t *MQTTTransport) Connect(ctx context.Context) error
- func (t *MQTTTransport) ConnectionInfo() TransportConnectionInfo
- func (t *MQTTTransport) Disconnect(ctx context.Context) error
- func (t *MQTTTransport) EmitBus(ctx context.Context, eventType string, data Data, eventContext Context) error
- func (t *MQTTTransport) Events() <-chan Event
- func (t *MQTTTransport) Healthcheck() TransportHealth
- func (t *MQTTTransport) HiveMessages() <-chan HiveMessage
- func (t *MQTTTransport) IsHandshakeComplete() bool
- func (t *MQTTTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error
- type MemoryListOptions
- type MqttBrokerCredentials
- type MqttTopicSet
- type OperationResource
- type OperationStatus
- type QueryOptions
- type Reply
- type RequestOptions
- type RuntimeTransport
- type SelectedHubEndpoint
- type TransportConnectionInfo
- type TransportConnectionPhase
- type TransportHealth
- type WSSTransport
- func (t *WSSTransport) Authorization() string
- func (t *WSSTransport) Connect(ctx context.Context) error
- func (t *WSSTransport) ConnectionInfo() TransportConnectionInfo
- func (t *WSSTransport) Disconnect(_ context.Context) error
- func (t *WSSTransport) EmitBus(ctx context.Context, eventType string, data Data, eventContext Context) error
- func (t *WSSTransport) Events() <-chan Event
- func (t *WSSTransport) Healthcheck() TransportHealth
- func (t *WSSTransport) HiveMessages() <-chan HiveMessage
- func (t *WSSTransport) IsHandshakeComplete() bool
- func (t *WSSTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error
Constants ¶
const ( EventRecognizerLoopUtterance = "recognizer_loop:utterance" EventSpeak = "speak" EventOvosUtteranceSpeak = "ovos.utterance.speak" EventUtteranceHandled = "ovos.utterance.handled" EventIntentFailure = "complete_intent_failure" EventPolicyDenied = "hive.policy.denied" EventQueryTimeout = "hive.query.timeout" DefaultUserAgent = "ThalovantGoSDK/0.3.4" )
const ( DefaultControlAPIURL = "https://api.thalovant.com" DefaultControlUserAgent = "ThalovantGoSDK/0.3.4" // DefaultDeviceLoginTimeout bounds how long LoginWithBrowser waits for the // user to approve the sign-in request in the browser. DefaultDeviceLoginTimeout = 15 * time.Minute )
const DefaultConfigFilename = "config.yaml"
Variables ¶
var ( ErrIdentity = errors.New("thalovant identity error") ErrConnection = errors.New("thalovant connection error") ErrTimeout = errors.New("thalovant timeout") ErrRuntime = errors.New("thalovant runtime error") ErrAPI = errors.New("thalovant api error") ErrProtocol = errors.New("thalovant unsupported protocol") // ErrDeviceAccessDenied reports that the browser device sign-in request // was denied by the user. ErrDeviceAccessDenied = errors.New("thalovant device sign-in denied") // ErrDeviceCodeExpired reports that the device sign-in code expired // before it was approved. ErrDeviceCodeExpired = errors.New("thalovant device sign-in code expired") )
var DefaultProtocolPreference = []HubProtocol{ProtocolWSS, ProtocolHTTPS, ProtocolMQTT}
Functions ¶
func DefaultConfigPath ¶ added in v0.2.11
func EncodeHiveBinaryFrame ¶ added in v0.2.5
func EncodeHiveBinaryFrame(message HiveMessage) ([]byte, error)
func EncryptAsBinary ¶ added in v0.2.5
func EndpointFromDomain ¶ added in v0.2.1
func EndpointFromDomain(domain string, protocol HubProtocol) string
func EventMatchesContext ¶
func NewRequestID ¶
func NewRequestID() string
func NewSessionID ¶
func NewSessionID() string
func RequestIDFromContext ¶
func RichMediaFromData ¶
func RuntimeCryptoKey ¶
func SessionIDFromContext ¶
Types ¶
type ActionOptions ¶
type AnalyticsOverviewOptions ¶ added in v0.2.13
type BootstrapIdentityOptions ¶ added in v0.2.2
type BootstrapIdentityResult ¶ added in v0.2.2
type BootstrapIdentityResult struct {
Identity Identity
Hub map[string]any
Client map[string]any
Endpoint *SelectedHubEndpoint
}
func (BootstrapIdentityResult) SelectedProtocol ¶ added in v0.2.2
func (r BootstrapIdentityResult) SelectedProtocol() HubProtocol
type Client ¶
type Client struct {
Identity Identity
Transport RuntimeTransport
ConnectTimeout time.Duration
}
func NewClientFromConfig ¶ added in v0.2.11
func NewClientFromEnv ¶
func NewClientFromFile ¶
func NewClientWithOptions ¶ added in v0.2.2
func NewClientWithOptions(identity Identity, opts ClientOptions) (*Client, error)
func (*Client) ConnectWithInfo ¶ added in v0.2.14
func (c *Client) ConnectWithInfo(ctx context.Context) (TransportConnectionInfo, error)
func (*Client) ConnectionInfo ¶ added in v0.2.14
func (c *Client) ConnectionInfo() TransportConnectionInfo
func (*Client) Conversation ¶
func (c *Client) Conversation(opts ConversationOptions) Conversation
func (*Client) Healthcheck ¶
func (c *Client) Healthcheck() TransportHealth
func (*Client) SendAction ¶
func (*Client) SendUtterance ¶
type ClientContextOptions ¶
type ClientOptions ¶ added in v0.2.2
type ClientOptions struct {
Protocol HubProtocol
ConnectTimeout time.Duration
}
type CodeOptions ¶
type Context ¶
func BuildClientContext ¶
func BuildClientContext(base Context, opts ClientContextOptions) Context
func ContextWithCorrelation ¶
func MergeContext ¶
type ControlPlane ¶ added in v0.2.2
type ControlPlane struct {
APIURL string
AccessToken string
UserAgent string
HTTPClient *http.Client
}
func NewControlPlane ¶ added in v0.2.2
func NewControlPlane(apiURL string, accessToken string) *ControlPlane
func NewDefaultControlPlane ¶ added in v0.2.8
func NewDefaultControlPlane(accessToken string) *ControlPlane
func (*ControlPlane) CreateClient ¶ added in v0.2.2
func (*ControlPlane) CreateClientIdentity ¶ added in v0.2.2
func (c *ControlPlane) CreateClientIdentity(ctx context.Context, hub map[string]any, opts BootstrapIdentityOptions) (BootstrapIdentityResult, error)
func (*ControlPlane) CreateClientIdentityForHubID ¶ added in v0.2.2
func (c *ControlPlane) CreateClientIdentityForHubID(ctx context.Context, hubID string, opts BootstrapIdentityOptions) (BootstrapIdentityResult, error)
func (*ControlPlane) CreateMemoryItem ¶ added in v0.2.13
func (*ControlPlane) DeleteMemoryItem ¶ added in v0.2.13
func (c *ControlPlane) DeleteMemoryItem(ctx context.Context, memoryID string) error
func (*ControlPlane) GetAnalyticsOverview ¶ added in v0.2.13
func (c *ControlPlane) GetAnalyticsOverview(ctx context.Context, opts AnalyticsOverviewOptions) (map[string]any, error)
func (*ControlPlane) GetMemoryItem ¶ added in v0.2.13
func (*ControlPlane) GetMemorySummary ¶ added in v0.2.13
func (*ControlPlane) GetOperation ¶ added in v0.2.16
func (c *ControlPlane) GetOperation(ctx context.Context, operationID string) (OperationResource, error)
func (*ControlPlane) GetPublicHub ¶ added in v0.2.6
func (*ControlPlane) ListMemoryItems ¶ added in v0.2.13
func (c *ControlPlane) ListMemoryItems(ctx context.Context, opts MemoryListOptions) (map[string]any, error)
func (*ControlPlane) ListPublicHubs ¶ added in v0.2.6
func (*ControlPlane) LoginWithBrowser ¶ added in v0.3.3
func (c *ControlPlane) LoginWithBrowser(ctx context.Context, opts DeviceLoginOptions) (map[string]any, error)
LoginWithBrowser signs in through the browser device flow and stores the returned API token. This is the sign-in path for accounts without a password (for example Google sign-in). It requests a device authorization, tells the user to visit verification_uri and enter the short user_code (set DeviceLoginOptions.Prompt to present it yourself), opens the browser at verification_uri_complete on a best-effort basis unless DeviceLoginOptions.OpenBrowser is false, and polls until the request is approved, denied, expired, the timeout elapses, or ctx is cancelled.
On approval the returned access_token is a durable scoped API token and is stored on ControlPlane.AccessToken exactly like Login. Denial, expiry, and timeout are reported as ErrDeviceAccessDenied, ErrDeviceCodeExpired, and ErrTimeout respectively.
func (*ControlPlane) LoginWithOptions ¶ added in v0.3.2
func (c *ControlPlane) LoginWithOptions(ctx context.Context, email string, password string, opts LoginOptions) (map[string]any, error)
func (*ControlPlane) RequireRuntimeProtocol ¶ added in v0.2.2
func (c *ControlPlane) RequireRuntimeProtocol(result BootstrapIdentityResult, protocol HubProtocol) (*SelectedHubEndpoint, error)
type Conversation ¶
type Conversation struct {
Client *Client
Options ConversationOptions
}
func (Conversation) Ask ¶
func (c Conversation) Ask(ctx context.Context, text string, opts RequestOptions) (Reply, error)
func (Conversation) Query ¶ added in v0.2.15
func (c Conversation) Query(ctx context.Context, text string, opts QueryOptions) (Reply, error)
func (Conversation) SendAction ¶
func (c Conversation) SendAction(ctx context.Context, payload string, opts ActionOptions) error
func (Conversation) SendCode ¶
func (c Conversation) SendCode(ctx context.Context, value string, opts CodeOptions) error
func (Conversation) SendUtterance ¶
func (c Conversation) SendUtterance(ctx context.Context, text string, opts RequestOptions) error
type ConversationOptions ¶
type Data ¶
func UtterancePayload ¶
type DeviceLoginOptions ¶ added in v0.3.3
type DeviceLoginOptions struct {
Scopes []string
ClientName string
OpenBrowser *bool
Prompt func(grant map[string]any)
Timeout time.Duration
}
DeviceLoginOptions carries optional device-flow sign-in inputs for LoginWithBrowser. Scopes and ClientName are forwarded to the device authorization request when set; the server may expand the echoed scopes during normalization. OpenBrowser defaults to true when nil. Prompt, when set, receives the device authorization payload instead of the default message printed to stdout. Timeout bounds the whole approval wait and defaults to DefaultDeviceLoginTimeout when zero.
type DisplayItem ¶
type DisplayItem struct {
Kind string
Text string
Data any
Title string
Payload string
URL string
Silent bool
}
func DisplayItemsFromEventData ¶
func DisplayItemsFromEventData(data Data, eventName string, maxTextChars int) []DisplayItem
type Event ¶
func (Event) DisplayItems ¶
func (e Event) DisplayItems(maxTextChars int) []DisplayItem
func (Event) DisplayText ¶
func (Event) Utterances ¶
type HTTPTransport ¶
type HTTPTransport struct {
Identity Identity
UserAgent string
PollInterval time.Duration
HTTPClient *http.Client
BusEvents chan Event
HiveEvents chan HiveMessage
// contains filtered or unexported fields
}
func NewHTTPTransport ¶
func NewHTTPTransport(identity Identity) *HTTPTransport
func (*HTTPTransport) Authorization ¶
func (t *HTTPTransport) Authorization() string
func (*HTTPTransport) BaseURL ¶
func (t *HTTPTransport) BaseURL() string
func (*HTTPTransport) ConnectionInfo ¶ added in v0.2.14
func (t *HTTPTransport) ConnectionInfo() TransportConnectionInfo
func (*HTTPTransport) Disconnect ¶
func (t *HTTPTransport) Disconnect(ctx context.Context) error
func (*HTTPTransport) Events ¶ added in v0.2.4
func (t *HTTPTransport) Events() <-chan Event
func (*HTTPTransport) Healthcheck ¶
func (t *HTTPTransport) Healthcheck() TransportHealth
func (*HTTPTransport) HiveMessages ¶ added in v0.2.15
func (t *HTTPTransport) HiveMessages() <-chan HiveMessage
func (*HTTPTransport) IsHandshakeComplete ¶
func (t *HTTPTransport) IsHandshakeComplete() bool
func (*HTTPTransport) SendHiveMessage ¶ added in v0.2.15
func (t *HTTPTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error
type HiveMessage ¶
type HiveMessage struct {
MsgType string `json:"msg_type"`
Payload map[string]any `json:"payload"`
Metadata map[string]any `json:"metadata"`
Route []any `json:"route"`
Node any `json:"node"`
TargetSiteID any `json:"target_site_id"`
TargetPubKey any `json:"target_pubkey"`
SourcePeer any `json:"source_peer"`
}
func DecodeHiveBinaryFrame ¶ added in v0.2.5
func DecodeHiveBinaryFrame(payload []byte) (HiveMessage, error)
type HubDataPlaneEndpoints ¶ added in v0.2.1
type HubDataPlaneEndpoints struct {
HTTPS string `json:"https,omitempty"`
WSS string `json:"wss,omitempty"`
MQTT string `json:"mqtt,omitempty"`
}
func DataPlaneEndpointsFromHub ¶ added in v0.2.1
func DataPlaneEndpointsFromHub(hub map[string]any) HubDataPlaneEndpoints
func DataPlaneEndpointsFromMap ¶ added in v0.2.1
func DataPlaneEndpointsFromMap(values map[string]any) HubDataPlaneEndpoints
func (HubDataPlaneEndpoints) EndpointFor ¶ added in v0.2.1
func (e HubDataPlaneEndpoints) EndpointFor(protocol HubProtocol) string
type HubProtocol ¶ added in v0.2.1
type HubProtocol string
const ( ProtocolWSS HubProtocol = "wss" ProtocolHTTPS HubProtocol = "https" ProtocolMQTT HubProtocol = "mqtt" )
type HubProtocolSettings ¶ added in v0.2.1
type HubProtocolSettings struct {
WSS bool `json:"wss"`
HTTP bool `json:"http"`
MQTT bool `json:"mqtt"`
}
func DefaultHubProtocolSettings ¶ added in v0.2.1
func DefaultHubProtocolSettings() HubProtocolSettings
func ProtocolSettingsFromMap ¶ added in v0.2.1
func ProtocolSettingsFromMap(values map[string]any) HubProtocolSettings
func (HubProtocolSettings) EnabledProtocols ¶ added in v0.2.1
func (s HubProtocolSettings) EnabledProtocols() []HubProtocol
func (HubProtocolSettings) IsEnabled ¶ added in v0.2.1
func (s HubProtocolSettings) IsEnabled(protocol HubProtocol) bool
func (HubProtocolSettings) SpecMap ¶ added in v0.2.1
func (s HubProtocolSettings) SpecMap() map[string]any
type Identity ¶
type Identity struct {
AccessKey string `json:"access_key"`
Password string `json:"password"`
CryptoKey string `json:"crypto_key,omitempty"`
SiteID string `json:"site_id"`
DefaultMaster string `json:"default_master"`
DefaultPort int `json:"default_port"`
DefaultPath string `json:"default_path,omitempty"`
PublicKey string `json:"public_key,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
DataPlaneEndpoints HubDataPlaneEndpoints `json:"data_plane_endpoints,omitempty"`
Protocols HubProtocolSettings `json:"protocols,omitempty"`
MQTT *MqttBrokerCredentials `json:"mqtt,omitempty"`
}
func IdentityFromConfig ¶ added in v0.2.11
func IdentityFromEnv ¶
func IdentityFromFile ¶
func (Identity) EnabledProtocols ¶ added in v0.2.1
func (i Identity) EnabledProtocols() []HubProtocol
func (Identity) EndpointBase ¶
func (Identity) EndpointFor ¶ added in v0.2.1
func (i Identity) EndpointFor(protocol HubProtocol) string
func (Identity) SupportsProtocol ¶ added in v0.2.1
func (i Identity) SupportsProtocol(protocol HubProtocol) bool
type LoginOptions ¶ added in v0.3.2
LoginOptions carries optional login inputs. Scope overrides the default token scopes. OTPCode and RecoveryCode satisfy an MFA challenge; the API rejects MFA-enabled accounts with HTTP 401 {"code": "mfa_required"} when neither is provided.
type MQTTTransport ¶ added in v0.2.4
type MQTTTransport struct {
Identity Identity
UserAgent string
Topics MqttTopicSet
BusEvents chan Event
HiveEvents chan HiveMessage
// contains filtered or unexported fields
}
func NewMQTTTransport ¶ added in v0.2.4
func NewMQTTTransport(identity Identity) (*MQTTTransport, error)
func (*MQTTTransport) Connect ¶ added in v0.2.4
func (t *MQTTTransport) Connect(ctx context.Context) error
func (*MQTTTransport) ConnectionInfo ¶ added in v0.2.14
func (t *MQTTTransport) ConnectionInfo() TransportConnectionInfo
func (*MQTTTransport) Disconnect ¶ added in v0.2.4
func (t *MQTTTransport) Disconnect(ctx context.Context) error
func (*MQTTTransport) Events ¶ added in v0.2.4
func (t *MQTTTransport) Events() <-chan Event
func (*MQTTTransport) Healthcheck ¶ added in v0.2.4
func (t *MQTTTransport) Healthcheck() TransportHealth
func (*MQTTTransport) HiveMessages ¶ added in v0.2.15
func (t *MQTTTransport) HiveMessages() <-chan HiveMessage
func (*MQTTTransport) IsHandshakeComplete ¶ added in v0.2.4
func (t *MQTTTransport) IsHandshakeComplete() bool
func (*MQTTTransport) SendHiveMessage ¶ added in v0.2.15
func (t *MQTTTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error
type MemoryListOptions ¶ added in v0.2.13
type MqttBrokerCredentials ¶ added in v0.2.3
type MqttBrokerCredentials struct {
Endpoint string `json:"endpoint"`
Username string `json:"username"`
Password string `json:"password"`
TopicPrefix string `json:"topic_prefix,omitempty"`
HubID string `json:"hub_id,omitempty"`
C2STopic string `json:"c2s_topic,omitempty"`
S2CTopic string `json:"s2c_topic,omitempty"`
StatusTopic string `json:"status_topic,omitempty"`
HashTopics bool `json:"hash_topics,omitempty"`
QOS byte `json:"qos,omitempty"`
TLS bool `json:"tls"`
}
func MqttBrokerCredentialsFromMap ¶ added in v0.2.3
func MqttBrokerCredentialsFromMap(raw any) *MqttBrokerCredentials
type MqttTopicSet ¶ added in v0.2.4
func MQTTTopicsForIdentity ¶ added in v0.2.4
func MQTTTopicsForIdentity(identity Identity) (MqttTopicSet, error)
type OperationResource ¶ added in v0.2.16
type OperationResource struct {
ID string `json:"id"`
Kind string `json:"kind"`
AggregateType string `json:"aggregate_type"`
AggregateID *string `json:"aggregate_id"`
Status OperationStatus `json:"status"`
Details map[string]any `json:"details"`
GitCommitSHA *string `json:"git_commit_sha"`
ErrorCode *string `json:"error_code"`
ErrorMessage *string `json:"error_message"`
CreatedAt string `json:"created_at"`
UpdatedAt string `json:"updated_at"`
CommittedAt *string `json:"committed_at"`
AppliedAt *string `json:"applied_at"`
ReadyAt *string `json:"ready_at"`
TerminalAt *string `json:"terminal_at"`
Links map[string]*string `json:"links"`
}
type OperationStatus ¶ added in v0.2.16
type OperationStatus string
const ( OperationRequested OperationStatus = "requested" OperationCommitted OperationStatus = "committed" OperationApplied OperationStatus = "applied" OperationReady OperationStatus = "ready" OperationFailed OperationStatus = "failed" OperationTimedOut OperationStatus = "timed_out" )
type QueryOptions ¶ added in v0.2.15
type Reply ¶
type Reply struct {
Text string
Utterances []string
Handled bool
OK bool
SessionID string
RequestID string
Events []Event
FailureEvent *Event
}
func (Reply) DisplayItems ¶
func (r Reply) DisplayItems(maxTextChars int) []DisplayItem
func (Reply) DisplayText ¶
type RequestOptions ¶
type RuntimeTransport ¶ added in v0.2.4
type SelectedHubEndpoint ¶ added in v0.2.2
type SelectedHubEndpoint struct {
Protocol HubProtocol `json:"protocol"`
Endpoint string `json:"endpoint"`
}
func SelectDataPlaneEndpoint ¶ added in v0.2.2
func SelectDataPlaneEndpoint(endpoints HubDataPlaneEndpoints, protocols HubProtocolSettings, preferred []HubProtocol) *SelectedHubEndpoint
type TransportConnectionInfo ¶ added in v0.2.14
type TransportConnectionInfo struct {
Phase TransportConnectionPhase `json:"phase"`
StartedAt time.Time `json:"started_at,omitempty"`
ConnectedAt time.Time `json:"connected_at,omitempty"`
TransportOpenMS float64 `json:"transport_open_ms,omitempty"`
SocketOpenMS float64 `json:"socket_open_ms,omitempty"`
HandshakeMS float64 `json:"handshake_ms,omitempty"`
ConnectMS float64 `json:"connect_ms,omitempty"`
LastError string `json:"last_error,omitempty"`
}
type TransportConnectionPhase ¶ added in v0.2.14
type TransportConnectionPhase string
const ( ConnectionIdle TransportConnectionPhase = "idle" ConnectionConnecting TransportConnectionPhase = "connecting" ConnectionHandshake TransportConnectionPhase = "handshake" ConnectionReady TransportConnectionPhase = "ready" ConnectionClosed TransportConnectionPhase = "closed" ConnectionError TransportConnectionPhase = "error" )
type TransportHealth ¶
type TransportHealth struct {
Connected bool
HandshakeComplete bool
TransportAlive bool
LastError string
Connection TransportConnectionInfo
}
type WSSTransport ¶ added in v0.2.4
type WSSTransport struct {
Identity Identity
UserAgent string
BusEvents chan Event
HiveEvents chan HiveMessage
// contains filtered or unexported fields
}
func NewWSSTransport ¶ added in v0.2.4
func NewWSSTransport(identity Identity) *WSSTransport
func (*WSSTransport) Authorization ¶ added in v0.2.4
func (t *WSSTransport) Authorization() string
func (*WSSTransport) Connect ¶ added in v0.2.4
func (t *WSSTransport) Connect(ctx context.Context) error
func (*WSSTransport) ConnectionInfo ¶ added in v0.2.14
func (t *WSSTransport) ConnectionInfo() TransportConnectionInfo
func (*WSSTransport) Disconnect ¶ added in v0.2.4
func (t *WSSTransport) Disconnect(_ context.Context) error
func (*WSSTransport) Events ¶ added in v0.2.4
func (t *WSSTransport) Events() <-chan Event
func (*WSSTransport) Healthcheck ¶ added in v0.2.4
func (t *WSSTransport) Healthcheck() TransportHealth
func (*WSSTransport) HiveMessages ¶ added in v0.2.15
func (t *WSSTransport) HiveMessages() <-chan HiveMessage
func (*WSSTransport) IsHandshakeComplete ¶ added in v0.2.4
func (t *WSSTransport) IsHandshakeComplete() bool
func (*WSSTransport) SendHiveMessage ¶ added in v0.2.15
func (t *WSSTransport) SendHiveMessage(ctx context.Context, message HiveMessage, encrypt bool) error