Documentation ¶
Index ¶
- func GroupReferenceValidation(sl validator.StructLevel)
- func LabelReferenceValidation(sl validator.StructLevel)
- func UserReferenceValidation(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 Global
- type GlobalReference
- 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 Ticketer
- type TicketerReference
- type TicketerUUID
- type Topic
- type TopicReference
- type TopicUUID
- type TypedReference
- type UUIDReference
- type User
- type UserReference
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
func UserReferenceValidation ¶ added in v0.134.0
func UserReferenceValidation(sl validator.StructLevel)
UserReferenceValidation validates that the given user reference is either a concrete reference or an email 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() envs.Country MatchPrefixes() []string AllowInternational() bool }
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 a 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 name
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"` Revision int `json:"revision,omitempty"` }
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 NewFlowReferenceWithRevision ¶ added in v0.174.0
func NewFlowReferenceWithRevision(uuid FlowUUID, name string, revision int) *FlowReference
NewFlowReferenceWithRevision creates a new flow reference with the given UUID, name and revision number
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 Global ¶ added in v0.57.0
Global is a named constant.
{ "key": "organization_name", "name": "Organization Name", "value": "U-Report" }
@asset global
type GlobalReference ¶ added in v0.57.0
type GlobalReference struct { Key string `json:"key" validate:"required"` Name string `json:"name"` }
GlobalReference is a reference to a global
func NewGlobalReference ¶ added in v0.57.0
func NewGlobalReference(key string, name string) *GlobalReference
NewGlobalReference creates a new global reference with the given key and name
func (*GlobalReference) Identity ¶ added in v0.57.0
func (r *GlobalReference) Identity() string
Identity returns the unique identity of the asset
func (*GlobalReference) String ¶ added in v0.57.0
func (r *GlobalReference) String() string
func (*GlobalReference) Type ¶ added in v0.57.0
func (r *GlobalReference) Type() string
Type returns the name of the asset type
func (*GlobalReference) Variable ¶ added in v0.57.0
func (r *GlobalReference) 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 added to and removed from manually, or 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 envs.LocationPath) *envs.Location FindByName(name string, level envs.LocationLevel, parent *envs.Location) []*envs.Location }
LocationHierarchy is a searchable hierarchy 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) FlowByUUID(FlowUUID) (Flow, error) FlowByName(string) (Flow, error) Globals() ([]Global, error) Groups() ([]Group, error) Labels() ([]Label, error) Locations() ([]LocationHierarchy, error) Resthooks() ([]Resthook, error) Templates() ([]Template, error) Ticketers() ([]Ticketer, error) Topics() ([]Topic, error) Users() ([]User, 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": [ { "locale": "eng-US", "content": "Hi {{1}}, are you still experiencing your issue?", "channel": { "uuid": "cf26be4c-875f-4094-9e08-162c3c9dcb5b", "name": "Twilio Channel" } }, { "locale": "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 Locale() envs.Locale Namespace() string VariableCount() int Channel() ChannelReference }
TemplateTranslation represents a single translation for a specific template and channel
type TemplateUUID ¶ added in v0.32.0
TemplateUUID is the UUID of a template
type Ticketer ¶ added in v0.86.0
type Ticketer interface { UUID() TicketerUUID Name() string Type() string }
Ticketer is a system which can open or close tickets
{ "uuid": "37657cf7-5eab-4286-9cb0-bbf270587bad", "name": "Support Tickets", "type": "mailgun" }
@asset ticketer
type TicketerReference ¶ added in v0.86.0
type TicketerReference struct { UUID TicketerUUID `json:"uuid" validate:"required,uuid"` Name string `json:"name"` }
TicketerReference is used to reference a ticketer
func NewTicketerReference ¶ added in v0.86.0
func NewTicketerReference(uuid TicketerUUID, name string) *TicketerReference
NewTicketerReference creates a new classifier reference with the given UUID and name
func (*TicketerReference) GenericUUID ¶ added in v0.86.0
func (r *TicketerReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*TicketerReference) Identity ¶ added in v0.86.0
func (r *TicketerReference) Identity() string
Identity returns the unique identity of the asset
func (*TicketerReference) String ¶ added in v0.86.0
func (r *TicketerReference) String() string
func (*TicketerReference) Type ¶ added in v0.86.0
func (r *TicketerReference) Type() string
Type returns the name of the asset type
func (*TicketerReference) Variable ¶ added in v0.86.0
func (r *TicketerReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type TicketerUUID ¶ added in v0.86.0
TicketerUUID is the UUID of a ticketer
type Topic ¶ added in v0.132.0
Topic categorizes tickets
{ "uuid": "cd48bd11-08b9-44e3-9778-8e26adf08a7a", "name": "Weather" }
@asset topic
type TopicReference ¶ added in v0.132.0
type TopicReference struct { UUID TopicUUID `json:"uuid" validate:"required,uuid"` Name string `json:"name"` }
TopicReference is used to reference a topic
func NewTopicReference ¶ added in v0.132.0
func NewTopicReference(uuid TopicUUID, name string) *TopicReference
NewTopicReference creates a new topic reference with the given UUID and name
func (*TopicReference) GenericUUID ¶ added in v0.132.0
func (r *TopicReference) GenericUUID() uuids.UUID
GenericUUID returns the untyped UUID
func (*TopicReference) Identity ¶ added in v0.132.0
func (r *TopicReference) Identity() string
Identity returns the unique identity of the asset
func (*TopicReference) String ¶ added in v0.132.0
func (r *TopicReference) String() string
func (*TopicReference) Type ¶ added in v0.132.0
func (r *TopicReference) Type() string
Type returns the name of the asset type
func (*TopicReference) Variable ¶ added in v0.132.0
func (r *TopicReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference
type TypedReference ¶ added in v0.71.3
TypedReference is a utility struct for when we need to serialize a reference with a type
func NewTypedReference ¶ added in v0.71.3
func NewTypedReference(r Reference) TypedReference
NewTypedReference creates a new typed reference
func (TypedReference) MarshalJSON ¶ added in v0.71.3
func (r TypedReference) MarshalJSON() ([]byte, error)
type UUIDReference ¶ added in v0.39.4
UUIDReference is interface for all reference types that contain a UUID
type User ¶ added in v0.124.0
User is an person who can trigger flows or be assigned tickets etc.
{ "email": "bob@nyaruka.com", "name": "Bob" }
@asset user
type UserReference ¶ added in v0.124.0
type UserReference struct { Email string `json:"email,omitempty" validate:"omitempty,email"` Name string `json:"name,omitempty"` EmailMatch string `json:"email_match,omitempty" engine:"evaluated"` }
UserReference is used to reference a user
func NewUserReference ¶ added in v0.124.0
func NewUserReference(email, name string) *UserReference
NewUserReference creates a new user reference with the given key and name
func NewVariableUserReference ¶ added in v0.134.0
func NewVariableUserReference(emailMatch string) *UserReference
NewVariableUserReference creates a new user reference from the given templatized email match
func (*UserReference) Identity ¶ added in v0.124.0
func (r *UserReference) Identity() string
Identity returns the unique identity of the asset
func (*UserReference) String ¶ added in v0.124.0
func (r *UserReference) String() string
func (*UserReference) Type ¶ added in v0.124.0
func (r *UserReference) Type() string
Type returns the name of the asset type
func (*UserReference) UnmarshalJSON ¶ added in v0.124.0
func (r *UserReference) UnmarshalJSON(data []byte) error
UmarshalJSON unmarshals this object from JSON
func (*UserReference) Variable ¶ added in v0.124.0
func (r *UserReference) Variable() bool
Variable returns whether this a variable (vs concrete) reference