Documentation
¶
Index ¶
Constants ¶
const ( InputTypeRequest = "request" InputTypeStream = "stream" InputSourceServer = "server" InputSourceNATS = "nats" InputSourceKafka = "kafka" )
InputTypeRequest and others represent consts for Directives
Variables ¶
var ( ErrQueryTypeUnknown = errors.New("unable to determine query type") ErrDBTypeUnknown = errors.New("unable to determine query's database type") )
Functions ¶
This section is empty.
Types ¶
type Authentication ¶ added in v0.3.1
type Authentication struct {
Domains map[string]rcap.AuthHeader `yaml:"domains,omitempty" json:"domains,omitempty"`
}
type CallableFn ¶
type CallableFn struct {
Fn string `yaml:"fn,omitempty" json:"fn,omitempty"`
As string `yaml:"as,omitempty" json:"as,omitempty"`
With map[string]string `yaml:"with,omitempty" json:"with,omitempty"`
OnErr *FnOnErr `yaml:"onErr,omitempty" json:"onErr,omitempty"`
FQFN string `yaml:"-" json:"fqfn"` // calculated during Validate
}
CallableFn is a fn along with its "variable name" and "args"
type Connections ¶ added in v0.3.1
type Connections struct {
NATS *NATSConnection `yaml:"nats,omitempty" json:"nats,omitempty"`
Kafka *KafkaConnection `yaml:"kafka,omitempty" json:"kafka,omitempty"`
Database *DBConnection `yaml:"database,omitempty" json:"database,omitempty"`
Redis *RedisConnection `yaml:"redis,omitempty" json:"redis,omitempty"`
}
Connections describes connections
type DBConnection ¶ added in v0.4.0
type DBConnection struct {
Type string `yaml:"type" json:"type"`
ConnectionString string `yaml:"connectionString" json:"connectionString"`
}
func (*DBConnection) ToRCAPConfig ¶ added in v0.4.0
func (d *DBConnection) ToRCAPConfig(queries []DBQuery) (*rcap.DatabaseConfig, error)
type Directive ¶
type Directive struct {
Identifier string `yaml:"identifier" json:"identifier"`
AppVersion string `yaml:"appVersion" json:"appVersion"`
AtmoVersion string `yaml:"atmoVersion" json:"atmoVersion"`
Headless bool `yaml:"headless,omitempty" json:"headless,omitempty"`
Connections *Connections `yaml:"connections,omitempty" json:"connections,omitempty"`
Authentication *Authentication `yaml:"authentication,omitempty" json:"authentication,omitempty"`
Capabilities *rcap.CapabilityConfig `yaml:"capabilities,omitempty" json:"capabilities,omitempty"`
Handlers []Handler `yaml:"handlers,omitempty" json:"handlers,omitempty"`
Schedules []Schedule `yaml:"schedules,omitempty" json:"schedules,omitempty"`
Queries []DBQuery `yaml:"queries,omitempty" json:"queries,omitempty"`
// Runnables is populated by subo, never by the user
Runnables []Runnable `yaml:"runnables" json:"runnables"`
}
Directive describes a set of functions and a set of handlers that take an input, and compose a set of functions to handle it
func (*Directive) FindRunnable ¶ added in v0.2.3
type Executable ¶
type Executable struct {
CallableFn `yaml:"callableFn,inline" json:"callableFn"`
Group []CallableFn `yaml:"group,omitempty" json:"group,omitempty"`
ForEach interface{} `yaml:"forEach,omitempty"`
}
Executable represents an executable step in a handler The 'ForEach' type has been disabled and removed as of Atmo v0.4.0
func (*Executable) IsFn ¶
func (e *Executable) IsFn() bool
IsFn returns true if the executable is a group
func (*Executable) IsGroup ¶
func (e *Executable) IsGroup() bool
IsGroup returns true if the executable is a group
type FnOnErr ¶
type FnOnErr struct {
Code map[int]string `yaml:"code,omitempty" json:"code,omitempty"`
Any string `yaml:"any,omitempty" json:"any,omitempty"`
Other string `yaml:"other,omitempty" json:"other,omitempty"`
}
FnOnErr describes how to handle an error from a function call
type ForEach ¶
type ForEach struct {
In string `yaml:"in" json:"in"`
Fn string `yaml:"fn" json:"fn"`
As string `yaml:"as" json:"as"`
OnErr *FnOnErr `yaml:"onErr,omitempty" json:"onErr,omitempty"`
CallableFn CallableFn `yaml:"-" json:"callableFn"` // calculated during Validate
}
ForEach describes a forEach operator
type Handler ¶
type Handler struct {
Input Input `yaml:"input,inline" json:"input"`
Steps []Executable `yaml:"steps" json:"steps"`
Response string `yaml:"response,omitempty" json:"response,omitempty"`
RespondTo string `yaml:"respondTo,omitempty" json:"respondTo,omitempty"`
}
Handler represents the mapping between an input and a composition of functions
type Input ¶
type Input struct {
Type string `yaml:"type" json:"type"`
Source string `yaml:"source,omitempty" json:"source,omitempty"`
Method string `yaml:"method" json:"method"`
Resource string `yaml:"resource" json:"resource"`
}
Input represents an input source
type KafkaConnection ¶ added in v0.4.0
type KafkaConnection struct {
BrokerAddress string `yaml:"brokerAddress" json:"brokerAddress"`
}
KafkaConnection describes a connection to a Kafka broker
type NATSConnection ¶ added in v0.3.1
type NATSConnection struct {
ServerAddress string `yaml:"serverAddress" json:"serverAddress"`
}
NATSConnection describes a connection to a NATS server
type RedisConnection ¶ added in v0.4.0
type RedisConnection struct {
ServerAddress string `yaml:"serverAddress" json:"serverAddress"`
Username string `yaml:"username" json:"username"`
Password string `yaml:"password" json:"password"`
}
RedisConnection describes a connection to a Redis cache
type Runnable ¶
type Runnable struct {
Name string `yaml:"name" json:"name"`
Namespace string `yaml:"namespace" json:"namespace"`
Lang string `yaml:"lang" json:"lang"`
Version string `yaml:"version" json:"version"`
DraftVersion string `yaml:"draftVersion,omitempty" json:"draftVersion,omitempty"`
APIVersion string `yaml:"apiVersion,omitempty" json:"apiVersion,omitempty"`
FQFN string `yaml:"fqfn,omitempty" json:"fqfn,omitempty"`
FQFNURI string `yaml:"fqfnUri" json:"fqfnURI,omitempty"`
ModuleRef *moduleref.WasmModuleRef `yaml:"-" json:"moduleRef,omitempty"`
TokenHash []byte `yaml:"-" json:"-"`
}
Runnable is the structure of a .runnable.yaml file
type Schedule ¶
type Schedule struct {
Name string `yaml:"name" json:"name"`
Every ScheduleEvery `yaml:"every" json:"every"`
State map[string]string `yaml:"state,omitempty" json:"state,omitempty"`
Steps []Executable `yaml:"steps" json:"steps"`
}
Schedule represents the mapping between an input and a composition of functions
func (*Schedule) NumberOfSeconds ¶
NumberOfSeconds calculates the total time in seconds for the schedule's 'every' value
type ScheduleEvery ¶
type ScheduleEvery struct {
Seconds int `yaml:"seconds,omitempty" json:"seconds,omitempty"`
Minutes int `yaml:"minutes,omitempty" json:"minutes,omitempty"`
Hours int `yaml:"hours,omitempty" json:"hours,omitempty"`
Days int `yaml:"days,omitempty" json:"days,omitempty"`
}
ScheduleEvery represents the 'every' value for a schedule