Documentation
¶
Index ¶
- func GroupReferenceValidation(sl validator.StructLevel)
- func LabelReferenceValidation(sl validator.StructLevel)
- type Channel
- type ChannelReference
- type ChannelRole
- type ChannelUUID
- type Classifier
- type ClassifierReference
- type ClassifierUUID
- type Field
- type FieldReference
- type FieldType
- type FieldUUID
- type Flow
- type FlowReference
- type FlowUUID
- type Group
- type GroupReference
- type GroupUUID
- type Label
- type LabelReference
- type LabelUUID
- type LocationHierarchy
- type MissingCallback
- type Reference
- type Resthook
- type Source
- type Template
- type TemplateReference
- type TemplateTranslation
- type TemplateUUID
- type UUIDReference
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GroupReferenceValidation ¶ added in v0.15.1
func GroupReferenceValidation(sl validator.StructLevel)
GroupReferenceValidation validates that the given group reference is either a concrete reference or a name matcher
func LabelReferenceValidation ¶ added in v0.15.1
func LabelReferenceValidation(sl validator.StructLevel)
LabelReferenceValidation validates that the given label reference is either a concrete reference or a name matcher
Types ¶
type Channel ¶ added in v0.15.0
type Channel interface {
UUID() ChannelUUID
Name() string
Address() string
Schemes() []string
Roles() []ChannelRole
Parent() *ChannelReference
Country() string
MatchPrefixes() []string
}
Channel is something that can send/receive messages.
{
"uuid": "14782905-81a6-4910-bc9f-93ad287b23c3",
"name": "My Android",
"address": "+593979011111",
"schemes": ["tel"],
"roles": ["send", "receive"],
"country": "EC"
}
@asset channel
type ChannelReference ¶ added in v0.15.1
type ChannelReference struct {
UUID ChannelUUID `json:"uuid" validate:"required,uuid"`
Name string `json:"name"`
}
ChannelReference is used to reference a channel
func NewChannelReference ¶ added in v0.15.1
func NewChannelReference(uuid ChannelUUID, name string) *ChannelReference
NewChannelReference creates a new channel reference with the given UUID and name
func (*ChannelReference) GenericUUID ¶ added in v0.39.4
func (r *ChannelReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*ChannelReference) Identity ¶ added in v0.26.0
func (r *ChannelReference) Identity() string
Identity returns the unique identity of the asset
func (*ChannelReference) String ¶ added in v0.26.0
func (r *ChannelReference) String() string
func (*ChannelReference) Type ¶ added in v0.26.0
func (r *ChannelReference) Type() string
Type returns the name of the asset type
func (*ChannelReference) Variable ¶ added in v0.29.0
func (r *ChannelReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type ChannelRole ¶ added in v0.15.0
type ChannelRole string
ChannelRole is a role that a channel can perform
const ( ChannelRoleSend ChannelRole = "send" ChannelRoleReceive ChannelRole = "receive" ChannelRoleCall ChannelRole = "call" ChannelRoleAnswer ChannelRole = "answer" ChannelRoleUSSD ChannelRole = "ussd" )
different roles that channels can perform
type ChannelUUID ¶ added in v0.15.0
ChannelUUID is the UUID of a channel
type Classifier ¶ added in v0.51.0
type Classifier interface {
UUID() ClassifierUUID
Name() string
Type() string
Intents() []string
}
Classifier is an NLU classifier.
{
"uuid": "37657cf7-5eab-4286-9cb0-bbf270587bad",
"name": "Booking",
"type": "wit",
"intents": ["book_flight", "book_hotel"]
}
@asset classifier
type ClassifierReference ¶ added in v0.51.0
type ClassifierReference struct {
UUID ClassifierUUID `json:"uuid" validate:"required,uuid"`
Name string `json:"name"`
}
ClassifierReference is used to reference a classifier
func NewClassifierReference ¶ added in v0.51.0
func NewClassifierReference(uuid ClassifierUUID, name string) *ClassifierReference
NewClassifierReference creates a new classifier reference with the given UUID and name
func (*ClassifierReference) GenericUUID ¶ added in v0.51.0
func (r *ClassifierReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*ClassifierReference) Identity ¶ added in v0.51.0
func (r *ClassifierReference) Identity() string
Identity returns the unique identity of the asset
func (*ClassifierReference) String ¶ added in v0.51.0
func (r *ClassifierReference) String() string
func (*ClassifierReference) Type ¶ added in v0.51.0
func (r *ClassifierReference) Type() string
Type returns the name of the asset type
func (*ClassifierReference) Variable ¶ added in v0.51.0
func (r *ClassifierReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type ClassifierUUID ¶ added in v0.51.0
ClassifierUUID is the UUID of an NLU classifier
type Field ¶ added in v0.15.0
Field is a custom contact property.
{
"uuid": "d66a7823-eada-40e5-9a3a-57239d4690bf",
"key": "gender",
"name": "Gender",
"type": "text"
}
@asset field
type FieldReference ¶ added in v0.15.1
type FieldReference struct {
Key string `json:"key" validate:"required"`
Name string `json:"name"`
}
FieldReference is a reference to field
func NewFieldReference ¶ added in v0.15.1
func NewFieldReference(key string, name string) *FieldReference
NewFieldReference creates a new field reference with the given key and label
func (*FieldReference) Identity ¶ added in v0.26.0
func (r *FieldReference) Identity() string
Identity returns the unique identity of the asset
func (*FieldReference) String ¶ added in v0.26.0
func (r *FieldReference) String() string
func (*FieldReference) Type ¶ added in v0.26.0
func (r *FieldReference) Type() string
Type returns the name of the asset type
func (*FieldReference) Variable ¶ added in v0.29.0
func (r *FieldReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type FieldType ¶ added in v0.15.0
type FieldType string
FieldType is the data type of values for each field
type Flow ¶ added in v0.15.0
type Flow interface {
UUID() FlowUUID
Name() string
Definition() json.RawMessage
}
Flow is graph of nodes with actions and routers.
{
"uuid": "14782905-81a6-4910-bc9f-93ad287b23c3",
"name": "Registration",
"definition": {
"nodes": []
}
}
@asset flow
type FlowReference ¶ added in v0.15.1
type FlowReference struct {
UUID FlowUUID `json:"uuid" validate:"required,uuid4"`
Name string `json:"name"`
}
FlowReference is used to reference a flow from another flow
func NewFlowReference ¶ added in v0.15.1
func NewFlowReference(uuid FlowUUID, name string) *FlowReference
NewFlowReference creates a new flow reference with the given UUID and name
func (*FlowReference) GenericUUID ¶ added in v0.39.4
func (r *FlowReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*FlowReference) Identity ¶ added in v0.26.0
func (r *FlowReference) Identity() string
Identity returns the unique identity of the asset
func (*FlowReference) String ¶ added in v0.26.0
func (r *FlowReference) String() string
func (*FlowReference) Type ¶ added in v0.26.0
func (r *FlowReference) Type() string
Type returns the name of the asset type
func (*FlowReference) Variable ¶ added in v0.29.0
func (r *FlowReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type Group ¶ added in v0.15.0
Group is a set of contacts which can be static or dynamic (i.e. based on a query).
{
"uuid": "14782905-81a6-4910-bc9f-93ad287b23c3",
"name": "Youth",
"query": "age <= 18"
}
@asset group
type GroupReference ¶ added in v0.15.1
type GroupReference struct {
UUID GroupUUID `json:"uuid,omitempty" validate:"omitempty,uuid4"`
Name string `json:"name,omitempty"`
NameMatch string `json:"name_match,omitempty" engine:"evaluated"`
}
GroupReference is used to reference a group
func NewGroupReference ¶ added in v0.15.1
func NewGroupReference(uuid GroupUUID, name string) *GroupReference
NewGroupReference creates a new group reference with the given UUID and name
func NewVariableGroupReference ¶ added in v0.15.1
func NewVariableGroupReference(nameMatch string) *GroupReference
NewVariableGroupReference creates a new group reference from the given templatized name match
func (*GroupReference) GenericUUID ¶ added in v0.39.4
func (r *GroupReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*GroupReference) Identity ¶ added in v0.26.0
func (r *GroupReference) Identity() string
Identity returns the unique identity of the asset
func (*GroupReference) String ¶ added in v0.26.0
func (r *GroupReference) String() string
func (*GroupReference) Type ¶ added in v0.26.0
func (r *GroupReference) Type() string
Type returns the name of the asset type
func (*GroupReference) Variable ¶ added in v0.29.0
func (r *GroupReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type Label ¶ added in v0.15.0
Label is an organizational tag that can be applied to a message.
{
"uuid": "14782905-81a6-4910-bc9f-93ad287b23c3",
"name": "Spam"
}
@asset label
type LabelReference ¶ added in v0.15.1
type LabelReference struct {
UUID LabelUUID `json:"uuid,omitempty" validate:"omitempty,uuid4"`
Name string `json:"name,omitempty"`
NameMatch string `json:"name_match,omitempty" engine:"evaluated"`
}
LabelReference is used to reference a label
func NewLabelReference ¶ added in v0.15.1
func NewLabelReference(uuid LabelUUID, name string) *LabelReference
NewLabelReference creates a new label reference with the given UUID and name
func NewVariableLabelReference ¶ added in v0.15.1
func NewVariableLabelReference(nameMatch string) *LabelReference
NewVariableLabelReference creates a new label reference from the given templatized name match
func (*LabelReference) GenericUUID ¶ added in v0.39.4
func (r *LabelReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*LabelReference) Identity ¶ added in v0.26.0
func (r *LabelReference) Identity() string
Identity returns the unique identity of the asset
func (*LabelReference) String ¶ added in v0.26.0
func (r *LabelReference) String() string
func (*LabelReference) Type ¶ added in v0.26.0
func (r *LabelReference) Type() string
Type returns the name of the asset type
func (*LabelReference) Variable ¶ added in v0.29.0
func (r *LabelReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type LocationHierarchy ¶ added in v0.15.0
type LocationHierarchy interface {
FindByPath(path utils.LocationPath) *utils.Location
FindByName(name string, level utils.LocationLevel, parent *utils.Location) []*utils.Location
}
LocationHierarchy is a searchable hierachy of locations.
{
"name": "Rwanda",
"aliases": ["Ruanda"],
"children": [
{
"name": "Kigali City",
"aliases": ["Kigali", "Kigari"],
"children": [
{
"name": "Gasabo",
"children": [
{
"id": "575743222",
"name": "Gisozi"
},
{
"id": "457378732",
"name": "Ndera"
}
]
},
{
"name": "Nyarugenge",
"children": []
}
]
},
{
"name": "Eastern Province"
}
]
}
@asset location
type MissingCallback ¶ added in v0.26.0
MissingCallback is callback to be invoked when an asset is missing
var IgnoreMissing MissingCallback = func(Reference, error) {}
IgnoreMissing does nothing if an asset is reported missing
type Resthook ¶ added in v0.15.0
Resthook is a set of URLs which are subscribed to the named event.
{
"slug": "new-registration",
"subscribers": [
"http://example.com/record.php?@contact.uuid"
]
}
@asset resthook
type Source ¶ added in v0.48.1
type Source interface {
Channels() ([]Channel, error)
Classifiers() ([]Classifier, error)
Fields() ([]Field, error)
Flow(FlowUUID) (Flow, error)
Groups() ([]Group, error)
Labels() ([]Label, error)
Locations() ([]LocationHierarchy, error)
Resthooks() ([]Resthook, error)
Templates() ([]Template, error)
}
Source is a source of assets
type Template ¶ added in v0.32.0
type Template interface {
UUID() TemplateUUID
Name() string
Translations() []TemplateTranslation
}
Template is a message template, currently only used by WhatsApp channels
{
"name": "revive-issue",
"uuid": "14782905-81a6-4910-bc9f-93ad287b23c3",
"translations": [
{
"language": "eng",
"content": "Hi {{1}}, are you still experiencing your issue?",
"channel": {
"uuid": "cf26be4c-875f-4094-9e08-162c3c9dcb5b",
"name": "Twilio Channel"
}
},
{
"language": "fra",
"content": "Bonjour {{1}}",
"channel": {
"uuid": "cf26be4c-875f-4094-9e08-162c3c9dcb5b",
"name": "Twilio Channel"
}
}
]
}
@asset template
type TemplateReference ¶ added in v0.32.0
type TemplateReference struct {
UUID TemplateUUID `json:"uuid" validate:"required,uuid"`
Name string `json:"name"`
}
TemplateReference is used to reference a Template
func NewTemplateReference ¶ added in v0.38.1
func NewTemplateReference(uuid TemplateUUID, name string) *TemplateReference
NewTemplateReference creates a new template reference with the given UUID and name
func (*TemplateReference) GenericUUID ¶ added in v0.39.4
func (r *TemplateReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*TemplateReference) Identity ¶ added in v0.32.0
func (r *TemplateReference) Identity() string
Identity returns the unique identity of the asset
func (*TemplateReference) String ¶ added in v0.32.0
func (r *TemplateReference) String() string
func (*TemplateReference) Type ¶ added in v0.32.0
func (r *TemplateReference) Type() string
Type returns the name of the asset type
func (*TemplateReference) Variable ¶ added in v0.32.0
func (r *TemplateReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type TemplateTranslation ¶ added in v0.32.0
type TemplateTranslation interface {
Content() string
Language() envs.Language
VariableCount() int
Channel() ChannelReference
}
TemplateTranslation represents a single translation for a specific template and channel
type TemplateUUID ¶ added in v0.32.0
type UUIDReference ¶ added in v0.39.4
UUIDReference is interface for all reference types that contain a UUID