workflow

package
v1.24.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 8, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Code generated by mkunion. DO NOT EDIT.

Code generated by mkunion. DO NOT EDIT.

Code generated by mkunion. DO NOT EDIT.

Code generated by mkunion. DO NOT EDIT.

Code generated by mkunion. DO NOT EDIT.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrAlreadyStarted         = errors.New("already started")
	ErrCallbackNotMatch       = errors.New("callback not match")
	ErrInvalidStateTransition = errors.New("invalid state transition")
	ErrExpressionHasResult    = errors.New("expression has result")
	ErrStateReachEnd          = errors.New("cannot apply commands, when workflow is completed")
	ErrMaxRetriesReached      = errors.New("max retries reached")
	ErrFlowNotFound           = errors.New("flow not found")
	ErrFlowNotSet             = errors.New("flow not set")
	ErrIntervalParse          = errors.New("failed to parse interval")
	ErrRunIDNotMatch          = errors.New("run id not match")
)

Functions

func AndShape added in v1.21.1

func AndShape() shape.Shape

func AndToJSON added in v1.21.1

func AndToJSON(x *And) ([]byte, error)

func ApplyAwaitOptionsShape added in v1.21.1

func ApplyAwaitOptionsShape() shape.Shape

func ApplyShape added in v1.21.1

func ApplyShape() shape.Shape

func ApplyToJSON added in v1.21.1

func ApplyToJSON(x *Apply) ([]byte, error)

func AssignShape added in v1.21.1

func AssignShape() shape.Shape

func AssignToJSON added in v1.21.1

func AssignToJSON(x *Assign) ([]byte, error)

func AwaitShape added in v1.21.1

func AwaitShape() shape.Shape

func AwaitToJSON added in v1.21.1

func AwaitToJSON(x *Await) ([]byte, error)

func BaseStateShape added in v1.21.1

func BaseStateShape() shape.Shape

func CallbackShape added in v1.21.1

func CallbackShape() shape.Shape

func CallbackToJSON added in v1.21.1

func CallbackToJSON(x *Callback) ([]byte, error)

func ChooseShape added in v1.21.1

func ChooseShape() shape.Shape

func ChooseToJSON added in v1.21.1

func ChooseToJSON(x *Choose) ([]byte, error)

func CommandShape added in v1.21.1

func CommandShape() shape.Shape

func CommandToJSON added in v1.21.1

func CommandToJSON(x Command) ([]byte, error)

func CompareShape added in v1.21.1

func CompareShape() shape.Shape

func CompareToJSON added in v1.21.1

func CompareToJSON(x *Compare) ([]byte, error)

func DelayRunShape added in v1.21.1

func DelayRunShape() shape.Shape

func DelayRunToJSON added in v1.21.1

func DelayRunToJSON(x *DelayRun) ([]byte, error)

func DoneShape added in v1.21.1

func DoneShape() shape.Shape

func DoneToJSON added in v1.21.1

func DoneToJSON(x *Done) ([]byte, error)

func EndShape added in v1.21.1

func EndShape() shape.Shape

func EndToJSON added in v1.21.1

func EndToJSON(x *End) ([]byte, error)

func ErrorShape added in v1.21.1

func ErrorShape() shape.Shape

func ErrorToJSON added in v1.21.1

func ErrorToJSON(x *Error) ([]byte, error)

func ExecutePredicate

func ExecutePredicate(context BaseState, predicate Predicate, dep Dependency) (bool, error)

func ExecuteReshaper

func ExecuteReshaper(context BaseState, reshaper Reshaper) (schema.Schema, error)

func ExecutionShape added in v1.24.0

func ExecutionShape() shape.Shape

func ExprShape added in v1.21.1

func ExprShape() shape.Shape

func ExprToJSON added in v1.21.1

func ExprToJSON(x Expr) ([]byte, error)

func FlowRefShape added in v1.21.1

func FlowRefShape() shape.Shape

func FlowRefToJSON added in v1.21.1

func FlowRefToJSON(x *FlowRef) ([]byte, error)

func FlowShape added in v1.21.1

func FlowShape() shape.Shape

func FlowToJSON added in v1.21.1

func FlowToJSON(x *Flow) ([]byte, error)

func FunctionInputShape added in v1.21.1

func FunctionInputShape() shape.Shape

func FunctionOutputShape added in v1.21.1

func FunctionOutputShape() shape.Shape

func GetRunID

func GetRunID(state State) string

func GetValueShape added in v1.21.1

func GetValueShape() shape.Shape

func GetValueToJSON added in v1.21.1

func GetValueToJSON(x *GetValue) ([]byte, error)

func MatchCommandR0 added in v1.24.0

func MatchCommandR0(
	x Command,
	f1 func(x *Run),
	f2 func(x *Callback),
	f3 func(x *TryRecover),
	f4 func(x *StopSchedule),
	f5 func(x *ResumeSchedule),
)

func MatchCommandR1 added in v1.24.0

func MatchCommandR1[T0 any](
	x Command,
	f1 func(x *Run) T0,
	f2 func(x *Callback) T0,
	f3 func(x *TryRecover) T0,
	f4 func(x *StopSchedule) T0,
	f5 func(x *ResumeSchedule) T0,
) T0

func MatchCommandR2 added in v1.21.1

func MatchCommandR2[T0, T1 any](
	x Command,
	f1 func(x *Run) (T0, T1),
	f2 func(x *Callback) (T0, T1),
	f3 func(x *TryRecover) (T0, T1),
	f4 func(x *StopSchedule) (T0, T1),
	f5 func(x *ResumeSchedule) (T0, T1),
) (T0, T1)

func MatchCommandR3 added in v1.24.0

func MatchCommandR3[T0, T1, T2 any](
	x Command,
	f1 func(x *Run) (T0, T1, T2),
	f2 func(x *Callback) (T0, T1, T2),
	f3 func(x *TryRecover) (T0, T1, T2),
	f4 func(x *StopSchedule) (T0, T1, T2),
	f5 func(x *ResumeSchedule) (T0, T1, T2),
) (T0, T1, T2)

func MatchExprR0 added in v1.24.0

func MatchExprR0(
	x Expr,
	f1 func(x *End),
	f2 func(x *Assign),
	f3 func(x *Apply),
	f4 func(x *Choose),
)

func MatchExprR1 added in v1.24.0

func MatchExprR1[T0 any](
	x Expr,
	f1 func(x *End) T0,
	f2 func(x *Assign) T0,
	f3 func(x *Apply) T0,
	f4 func(x *Choose) T0,
) T0

func MatchExprR2 added in v1.21.1

func MatchExprR2[T0, T1 any](
	x Expr,
	f1 func(x *End) (T0, T1),
	f2 func(x *Assign) (T0, T1),
	f3 func(x *Apply) (T0, T1),
	f4 func(x *Choose) (T0, T1),
) (T0, T1)

func MatchExprR3 added in v1.24.0

func MatchExprR3[T0, T1, T2 any](
	x Expr,
	f1 func(x *End) (T0, T1, T2),
	f2 func(x *Assign) (T0, T1, T2),
	f3 func(x *Apply) (T0, T1, T2),
	f4 func(x *Choose) (T0, T1, T2),
) (T0, T1, T2)

func MatchPredicateR0 added in v1.24.0

func MatchPredicateR0(
	x Predicate,
	f1 func(x *And),
	f2 func(x *Or),
	f3 func(x *Not),
	f4 func(x *Compare),
)

func MatchPredicateR1 added in v1.24.0

func MatchPredicateR1[T0 any](
	x Predicate,
	f1 func(x *And) T0,
	f2 func(x *Or) T0,
	f3 func(x *Not) T0,
	f4 func(x *Compare) T0,
) T0

func MatchPredicateR2 added in v1.21.1

func MatchPredicateR2[T0, T1 any](
	x Predicate,
	f1 func(x *And) (T0, T1),
	f2 func(x *Or) (T0, T1),
	f3 func(x *Not) (T0, T1),
	f4 func(x *Compare) (T0, T1),
) (T0, T1)

func MatchPredicateR3 added in v1.24.0

func MatchPredicateR3[T0, T1, T2 any](
	x Predicate,
	f1 func(x *And) (T0, T1, T2),
	f2 func(x *Or) (T0, T1, T2),
	f3 func(x *Not) (T0, T1, T2),
	f4 func(x *Compare) (T0, T1, T2),
) (T0, T1, T2)

func MatchReshaperR0 added in v1.24.0

func MatchReshaperR0(
	x Reshaper,
	f1 func(x *GetValue),
	f2 func(x *SetValue),
)

func MatchReshaperR1 added in v1.24.0

func MatchReshaperR1[T0 any](
	x Reshaper,
	f1 func(x *GetValue) T0,
	f2 func(x *SetValue) T0,
) T0

func MatchReshaperR2 added in v1.21.1

func MatchReshaperR2[T0, T1 any](
	x Reshaper,
	f1 func(x *GetValue) (T0, T1),
	f2 func(x *SetValue) (T0, T1),
) (T0, T1)

func MatchReshaperR3 added in v1.24.0

func MatchReshaperR3[T0, T1, T2 any](
	x Reshaper,
	f1 func(x *GetValue) (T0, T1, T2),
	f2 func(x *SetValue) (T0, T1, T2),
) (T0, T1, T2)

func MatchRunOptionR0 added in v1.24.0

func MatchRunOptionR0(
	x RunOption,
	f1 func(x *ScheduleRun),
	f2 func(x *DelayRun),
)

func MatchRunOptionR1 added in v1.24.0

func MatchRunOptionR1[T0 any](
	x RunOption,
	f1 func(x *ScheduleRun) T0,
	f2 func(x *DelayRun) T0,
) T0

func MatchRunOptionR2 added in v1.21.1

func MatchRunOptionR2[T0, T1 any](
	x RunOption,
	f1 func(x *ScheduleRun) (T0, T1),
	f2 func(x *DelayRun) (T0, T1),
) (T0, T1)

func MatchRunOptionR3 added in v1.24.0

func MatchRunOptionR3[T0, T1, T2 any](
	x RunOption,
	f1 func(x *ScheduleRun) (T0, T1, T2),
	f2 func(x *DelayRun) (T0, T1, T2),
) (T0, T1, T2)

func MatchStateR0 added in v1.24.0

func MatchStateR0(
	x State,
	f1 func(x *NextOperation),
	f2 func(x *Done),
	f3 func(x *Error),
	f4 func(x *Await),
	f5 func(x *Scheduled),
	f6 func(x *ScheduleStopped),
)

func MatchStateR1 added in v1.24.0

func MatchStateR1[T0 any](
	x State,
	f1 func(x *NextOperation) T0,
	f2 func(x *Done) T0,
	f3 func(x *Error) T0,
	f4 func(x *Await) T0,
	f5 func(x *Scheduled) T0,
	f6 func(x *ScheduleStopped) T0,
) T0

func MatchStateR2 added in v1.21.1

func MatchStateR2[T0, T1 any](
	x State,
	f1 func(x *NextOperation) (T0, T1),
	f2 func(x *Done) (T0, T1),
	f3 func(x *Error) (T0, T1),
	f4 func(x *Await) (T0, T1),
	f5 func(x *Scheduled) (T0, T1),
	f6 func(x *ScheduleStopped) (T0, T1),
) (T0, T1)

func MatchStateR3 added in v1.24.0

func MatchStateR3[T0, T1, T2 any](
	x State,
	f1 func(x *NextOperation) (T0, T1, T2),
	f2 func(x *Done) (T0, T1, T2),
	f3 func(x *Error) (T0, T1, T2),
	f4 func(x *Await) (T0, T1, T2),
	f5 func(x *Scheduled) (T0, T1, T2),
	f6 func(x *ScheduleStopped) (T0, T1, T2),
) (T0, T1, T2)

func MatchWorkflowR0 added in v1.24.0

func MatchWorkflowR0(
	x Workflow,
	f1 func(x *Flow),
	f2 func(x *FlowRef),
)

func MatchWorkflowR1 added in v1.24.0

func MatchWorkflowR1[T0 any](
	x Workflow,
	f1 func(x *Flow) T0,
	f2 func(x *FlowRef) T0,
) T0

func MatchWorkflowR2 added in v1.21.1

func MatchWorkflowR2[T0, T1 any](
	x Workflow,
	f1 func(x *Flow) (T0, T1),
	f2 func(x *FlowRef) (T0, T1),
) (T0, T1)

func MatchWorkflowR3 added in v1.24.0

func MatchWorkflowR3[T0, T1, T2 any](
	x Workflow,
	f1 func(x *Flow) (T0, T1, T2),
	f2 func(x *FlowRef) (T0, T1, T2),
) (T0, T1, T2)

func NewMachine

func NewMachine(di Dependency, state State) *machine.Machine[Command, State]

func NextOperationShape added in v1.21.1

func NextOperationShape() shape.Shape

func NextOperationToJSON added in v1.21.1

func NextOperationToJSON(x *NextOperation) ([]byte, error)

func NotShape added in v1.21.1

func NotShape() shape.Shape

func NotToJSON added in v1.21.1

func NotToJSON(x *Not) ([]byte, error)

func OrShape added in v1.21.1

func OrShape() shape.Shape

func OrToJSON added in v1.21.1

func OrToJSON(x *Or) ([]byte, error)

func PredicateShape added in v1.21.1

func PredicateShape() shape.Shape

func PredicateToJSON added in v1.21.1

func PredicateToJSON(x Predicate) ([]byte, error)

func ReshaperShape added in v1.21.1

func ReshaperShape() shape.Shape

func ReshaperToJSON added in v1.21.1

func ReshaperToJSON(x Reshaper) ([]byte, error)

func ResumeOptionsShape added in v1.21.1

func ResumeOptionsShape() shape.Shape

func ResumeScheduleShape added in v1.21.1

func ResumeScheduleShape() shape.Shape

func ResumeScheduleToJSON added in v1.21.1

func ResumeScheduleToJSON(x *ResumeSchedule) ([]byte, error)

func RunOptionShape added in v1.21.1

func RunOptionShape() shape.Shape

func RunOptionToJSON added in v1.21.1

func RunOptionToJSON(x RunOption) ([]byte, error)

func RunShape added in v1.21.1

func RunShape() shape.Shape

func RunToJSON added in v1.21.1

func RunToJSON(x *Run) ([]byte, error)

func ScheduleRunShape added in v1.21.1

func ScheduleRunShape() shape.Shape

func ScheduleRunToJSON added in v1.21.1

func ScheduleRunToJSON(x *ScheduleRun) ([]byte, error)

func ScheduleStoppedShape added in v1.21.1

func ScheduleStoppedShape() shape.Shape

func ScheduleStoppedToJSON added in v1.21.1

func ScheduleStoppedToJSON(x *ScheduleStopped) ([]byte, error)

func ScheduledShape added in v1.21.1

func ScheduledShape() shape.Shape

func ScheduledToJSON added in v1.21.1

func ScheduledToJSON(x *Scheduled) ([]byte, error)

func SetValueShape added in v1.21.1

func SetValueShape() shape.Shape

func SetValueToJSON added in v1.21.1

func SetValueToJSON(x *SetValue) ([]byte, error)

func StateShape added in v1.21.1

func StateShape() shape.Shape

func StateToJSON added in v1.21.1

func StateToJSON(x State) ([]byte, error)

func StopScheduleShape added in v1.21.1

func StopScheduleShape() shape.Shape

func StopScheduleToJSON added in v1.21.1

func StopScheduleToJSON(x *StopSchedule) ([]byte, error)

func ToStrExpr

func ToStrExpr(expr Expr, depth int) string

func ToStrPredicate

func ToStrPredicate(predicate Predicate, depth int) string

func ToStrReshaper

func ToStrReshaper(reshaper Reshaper, depth int) string

func ToStrSchema

func ToStrSchema(x schema.Schema, depth int) string

func ToStrWorkflow

func ToStrWorkflow(workflow Workflow, depth int) string

ToStrWorkflow returns string representation of workflow AST, a string is a meta program code, similar to go code, just declarative. Example:

func FlowHelloWorld(input string) string {
	var res string
	res = concat("hello ", input)
	return res
}

func TryRecoverShape added in v1.21.1

func TryRecoverShape() shape.Shape

func TryRecoverToJSON added in v1.21.1

func TryRecoverToJSON(x *TryRecover) ([]byte, error)

func WorkflowShape added in v1.21.1

func WorkflowShape() shape.Shape

func WorkflowToJSON added in v1.21.1

func WorkflowToJSON(x Workflow) ([]byte, error)

Types

type And

type And struct {
	L []Predicate
}

func AndFromJSON added in v1.21.1

func AndFromJSON(x []byte) (*And, error)

func (*And) AcceptPredicate added in v1.21.1

func (r *And) AcceptPredicate(v PredicateVisitor) any

func (*And) MarshalJSON added in v1.21.1

func (r *And) MarshalJSON() ([]byte, error)

func (*And) UnmarshalJSON added in v1.21.1

func (r *And) UnmarshalJSON(data []byte) error

type Apply

type Apply struct {
	ID    string
	Name  string
	Args  []Reshaper
	Await *ApplyAwaitOptions
}

func ApplyFromJSON added in v1.21.1

func ApplyFromJSON(x []byte) (*Apply, error)

func (*Apply) AcceptExpr added in v1.21.1

func (r *Apply) AcceptExpr(v ExprVisitor) any

func (*Apply) MarshalJSON added in v1.21.1

func (r *Apply) MarshalJSON() ([]byte, error)

func (*Apply) UnmarshalJSON added in v1.21.1

func (r *Apply) UnmarshalJSON(data []byte) error

type ApplyAwaitOptions

type ApplyAwaitOptions struct {
	Timeout int64
}

func (*ApplyAwaitOptions) MarshalJSON added in v1.21.1

func (r *ApplyAwaitOptions) MarshalJSON() ([]byte, error)

func (*ApplyAwaitOptions) UnmarshalJSON added in v1.21.1

func (r *ApplyAwaitOptions) UnmarshalJSON(data []byte) error

type Assign

type Assign struct {
	ID    string
	VarOk string
	// if VarErr is not empty, then error will be assigned to this variable
	// to give chance to handle it, before it will be returned to the caller
	// otherwise, any error will stop execution of the program
	VarErr string
	Val    Expr
}

func AssignFromJSON added in v1.21.1

func AssignFromJSON(x []byte) (*Assign, error)

func (*Assign) AcceptExpr added in v1.21.1

func (r *Assign) AcceptExpr(v ExprVisitor) any

func (*Assign) MarshalJSON added in v1.21.1

func (r *Assign) MarshalJSON() ([]byte, error)

func (*Assign) UnmarshalJSON added in v1.21.1

func (r *Assign) UnmarshalJSON(data []byte) error

type Await

type Await struct {
	CallbackID string
	Timeout    int64
	BaseState  BaseState
}

func AwaitFromJSON added in v1.21.1

func AwaitFromJSON(x []byte) (*Await, error)

func (*Await) AcceptState added in v1.21.1

func (r *Await) AcceptState(v StateVisitor) any

func (*Await) MarshalJSON added in v1.21.1

func (r *Await) MarshalJSON() ([]byte, error)

func (*Await) UnmarshalJSON added in v1.21.1

func (r *Await) UnmarshalJSON(data []byte) error

type BaseState

type BaseState struct {
	Flow       Workflow // Flow is a reference to the flow that describes execution
	RunID      string   // RunID is a unique identifier of the execution
	StepID     string   // StepID is a unique identifier of the step in the execution
	Variables  map[string]schema.Schema
	ExprResult map[string]schema.Schema

	// Default values
	DefaultMaxRetries int64

	RunOption RunOption
}

func GetBaseState

func GetBaseState(status State) BaseState

func (*BaseState) MarshalJSON added in v1.21.1

func (r *BaseState) MarshalJSON() ([]byte, error)

func (*BaseState) UnmarshalJSON added in v1.21.1

func (r *BaseState) UnmarshalJSON(data []byte) error

type Callback

type Callback struct {
	CallbackID string
	Result     schema.Schema
}

func CallbackFromJSON added in v1.21.1

func CallbackFromJSON(x []byte) (*Callback, error)

func (*Callback) AcceptCommand added in v1.21.1

func (r *Callback) AcceptCommand(v CommandVisitor) any

func (*Callback) MarshalJSON added in v1.21.1

func (r *Callback) MarshalJSON() ([]byte, error)

func (*Callback) UnmarshalJSON added in v1.21.1

func (r *Callback) UnmarshalJSON(data []byte) error

type Choose

type Choose struct {
	ID   string
	If   Predicate
	Then []Expr
	Else []Expr
}

func ChooseFromJSON added in v1.21.1

func ChooseFromJSON(x []byte) (*Choose, error)

func (*Choose) AcceptExpr added in v1.21.1

func (r *Choose) AcceptExpr(v ExprVisitor) any

func (*Choose) MarshalJSON added in v1.21.1

func (r *Choose) MarshalJSON() ([]byte, error)

func (*Choose) UnmarshalJSON added in v1.21.1

func (r *Choose) UnmarshalJSON(data []byte) error

type Command added in v1.21.1

type Command interface {
	AcceptCommand(g CommandVisitor) any
}

func CommandFromJSON added in v1.21.1

func CommandFromJSON(x []byte) (Command, error)

type CommandUnionJSON added in v1.21.1

type CommandUnionJSON struct {
	Type           string          `json:"$type,omitempty"`
	Run            json.RawMessage `json:"workflow.Run,omitempty"`
	Callback       json.RawMessage `json:"workflow.Callback,omitempty"`
	TryRecover     json.RawMessage `json:"workflow.TryRecover,omitempty"`
	StopSchedule   json.RawMessage `json:"workflow.StopSchedule,omitempty"`
	ResumeSchedule json.RawMessage `json:"workflow.ResumeSchedule,omitempty"`
}

type CommandVisitor added in v1.21.1

type CommandVisitor interface {
	VisitRun(v *Run) any
	VisitCallback(v *Callback) any
	VisitTryRecover(v *TryRecover) any
	VisitStopSchedule(v *StopSchedule) any
	VisitResumeSchedule(v *ResumeSchedule) any
}

type Compare

type Compare struct {
	Operation string
	Left      Reshaper
	Right     Reshaper
}

func CompareFromJSON added in v1.21.1

func CompareFromJSON(x []byte) (*Compare, error)

func (*Compare) AcceptPredicate added in v1.21.1

func (r *Compare) AcceptPredicate(v PredicateVisitor) any

func (*Compare) MarshalJSON added in v1.21.1

func (r *Compare) MarshalJSON() ([]byte, error)

func (*Compare) UnmarshalJSON added in v1.21.1

func (r *Compare) UnmarshalJSON(data []byte) error

type DI

type DI struct {
	FindFunctionF       func(funcID string) (Function, error)
	FindWorkflowF       func(flowID string) (*Flow, error)
	GenerateCallbackIDF func() string
	GenerateRunIDF      func() string

	// Defaults
	DefaultMaxRetries int64
	MockTimeNow       *time.Time
}

func (*DI) FindFunction

func (di *DI) FindFunction(funcID string) (Function, error)

func (*DI) FindWorkflow

func (di *DI) FindWorkflow(flowID string) (*Flow, error)

func (*DI) GenerateCallbackID

func (di *DI) GenerateCallbackID() string

func (*DI) GenerateRunID

func (di *DI) GenerateRunID() string

func (*DI) MaxRetries

func (di *DI) MaxRetries() int64

func (*DI) TimeNow

func (di *DI) TimeNow() time.Time

type DelayRun

type DelayRun struct {
	// DelayBySeconds
	DelayBySeconds int64
}

func DelayRunFromJSON added in v1.21.1

func DelayRunFromJSON(x []byte) (*DelayRun, error)

func (*DelayRun) AcceptRunOption added in v1.21.1

func (r *DelayRun) AcceptRunOption(v RunOptionVisitor) any

func (*DelayRun) MarshalJSON added in v1.21.1

func (r *DelayRun) MarshalJSON() ([]byte, error)

func (*DelayRun) UnmarshalJSON added in v1.21.1

func (r *DelayRun) UnmarshalJSON(data []byte) error

type Dependency

type Dependency interface {
	FindWorkflow(flowID string) (*Flow, error)
	FindFunction(funcID string) (Function, error)
	GenerateCallbackID() string
	GenerateRunID() string
	MaxRetries() int64
	TimeNow() time.Time
}

type Done

type Done struct {
	Result    schema.Schema
	BaseState BaseState
}

func DoneFromJSON added in v1.21.1

func DoneFromJSON(x []byte) (*Done, error)

func (*Done) AcceptState added in v1.21.1

func (r *Done) AcceptState(v StateVisitor) any

func (*Done) MarshalJSON added in v1.21.1

func (r *Done) MarshalJSON() ([]byte, error)

func (*Done) UnmarshalJSON added in v1.21.1

func (r *Done) UnmarshalJSON(data []byte) error

type End

type End struct {
	ID     string
	Result Reshaper
}

func EndFromJSON added in v1.21.1

func EndFromJSON(x []byte) (*End, error)

func (*End) AcceptExpr added in v1.21.1

func (r *End) AcceptExpr(v ExprVisitor) any

func (*End) MarshalJSON added in v1.21.1

func (r *End) MarshalJSON() ([]byte, error)

func (*End) UnmarshalJSON added in v1.21.1

func (r *End) UnmarshalJSON(data []byte) error

type Error

type Error struct {
	Code    string
	Reason  string
	Retried int64
	//MaxRetries int64
	BaseState BaseState
}

func ErrorFromJSON added in v1.21.1

func ErrorFromJSON(x []byte) (*Error, error)

func (*Error) AcceptState added in v1.21.1

func (r *Error) AcceptState(v StateVisitor) any

func (*Error) MarshalJSON added in v1.21.1

func (r *Error) MarshalJSON() ([]byte, error)

func (*Error) UnmarshalJSON added in v1.21.1

func (r *Error) UnmarshalJSON(data []byte) error

type Execution

type Execution struct {
	FlowID    string
	Status    State
	Location  string
	StartTime int64
	EndTime   int64
	Variables map[string]schema.Schema
}

type Expr added in v1.21.1

type Expr interface {
	AcceptExpr(g ExprVisitor) any
}

func ExprFromJSON added in v1.21.1

func ExprFromJSON(x []byte) (Expr, error)

type ExprUnionJSON added in v1.21.1

type ExprUnionJSON struct {
	Type   string          `json:"$type,omitempty"`
	End    json.RawMessage `json:"workflow.End,omitempty"`
	Assign json.RawMessage `json:"workflow.Assign,omitempty"`
	Apply  json.RawMessage `json:"workflow.Apply,omitempty"`
	Choose json.RawMessage `json:"workflow.Choose,omitempty"`
}

type ExprVisitor added in v1.21.1

type ExprVisitor interface {
	VisitEnd(v *End) any
	VisitAssign(v *Assign) any
	VisitApply(v *Apply) any
	VisitChoose(v *Choose) any
}

type Flow

type Flow struct {
	Name string // name of the flow
	Arg  string // name of the argument, which will hold the input to the flow
	Body []Expr
}

func FlowFromJSON added in v1.21.1

func FlowFromJSON(x []byte) (*Flow, error)

func (*Flow) AcceptWorkflow added in v1.21.1

func (r *Flow) AcceptWorkflow(v WorkflowVisitor) any

func (*Flow) MarshalJSON added in v1.21.1

func (r *Flow) MarshalJSON() ([]byte, error)

func (*Flow) UnmarshalJSON added in v1.21.1

func (r *Flow) UnmarshalJSON(data []byte) error

type FlowRef

type FlowRef struct {
	FlowID string
}

func FlowRefFromJSON added in v1.21.1

func FlowRefFromJSON(x []byte) (*FlowRef, error)

func (*FlowRef) AcceptWorkflow added in v1.21.1

func (r *FlowRef) AcceptWorkflow(v WorkflowVisitor) any

func (*FlowRef) MarshalJSON added in v1.21.1

func (r *FlowRef) MarshalJSON() ([]byte, error)

func (*FlowRef) UnmarshalJSON added in v1.21.1

func (r *FlowRef) UnmarshalJSON(data []byte) error

type Function

type Function func(args *FunctionInput) (*FunctionOutput, error)

type FunctionInput

type FunctionInput struct {
	// Name acts as unique function ID
	Name string
	// CallbackID is used to identify callback function, and when its set
	// it means that function is async, and should return result by calling callback endpoint with CallbackID
	CallbackID string
	Args       []schema.Schema
}

func (*FunctionInput) MarshalJSON added in v1.21.1

func (r *FunctionInput) MarshalJSON() ([]byte, error)

func (*FunctionInput) UnmarshalJSON added in v1.21.1

func (r *FunctionInput) UnmarshalJSON(data []byte) error

type FunctionOutput

type FunctionOutput struct {
	Result schema.Schema
}

func (*FunctionOutput) MarshalJSON added in v1.21.1

func (r *FunctionOutput) MarshalJSON() ([]byte, error)

func (*FunctionOutput) UnmarshalJSON added in v1.21.1

func (r *FunctionOutput) UnmarshalJSON(data []byte) error

type GetValue

type GetValue struct {
	Path string
}

func GetValueFromJSON added in v1.21.1

func GetValueFromJSON(x []byte) (*GetValue, error)

func (*GetValue) AcceptReshaper added in v1.21.1

func (r *GetValue) AcceptReshaper(v ReshaperVisitor) any

func (*GetValue) MarshalJSON added in v1.21.1

func (r *GetValue) MarshalJSON() ([]byte, error)

func (*GetValue) UnmarshalJSON added in v1.21.1

func (r *GetValue) UnmarshalJSON(data []byte) error

type NextOperation

type NextOperation struct {
	Result    schema.Schema
	BaseState BaseState
}

func NextOperationFromJSON added in v1.21.1

func NextOperationFromJSON(x []byte) (*NextOperation, error)

func (*NextOperation) AcceptState added in v1.21.1

func (r *NextOperation) AcceptState(v StateVisitor) any

func (*NextOperation) MarshalJSON added in v1.21.1

func (r *NextOperation) MarshalJSON() ([]byte, error)

func (*NextOperation) UnmarshalJSON added in v1.21.1

func (r *NextOperation) UnmarshalJSON(data []byte) error

type Not

type Not struct {
	P Predicate
}

func NotFromJSON added in v1.21.1

func NotFromJSON(x []byte) (*Not, error)

func (*Not) AcceptPredicate added in v1.21.1

func (r *Not) AcceptPredicate(v PredicateVisitor) any

func (*Not) MarshalJSON added in v1.21.1

func (r *Not) MarshalJSON() ([]byte, error)

func (*Not) UnmarshalJSON added in v1.21.1

func (r *Not) UnmarshalJSON(data []byte) error

type Or

type Or struct {
	L []Predicate
}

func OrFromJSON added in v1.21.1

func OrFromJSON(x []byte) (*Or, error)

func (*Or) AcceptPredicate added in v1.21.1

func (r *Or) AcceptPredicate(v PredicateVisitor) any

func (*Or) MarshalJSON added in v1.21.1

func (r *Or) MarshalJSON() ([]byte, error)

func (*Or) UnmarshalJSON added in v1.21.1

func (r *Or) UnmarshalJSON(data []byte) error

type Predicate added in v1.21.1

type Predicate interface {
	AcceptPredicate(g PredicateVisitor) any
}

func PredicateFromJSON added in v1.21.1

func PredicateFromJSON(x []byte) (Predicate, error)

type PredicateUnionJSON added in v1.21.1

type PredicateUnionJSON struct {
	Type    string          `json:"$type,omitempty"`
	And     json.RawMessage `json:"workflow.And,omitempty"`
	Or      json.RawMessage `json:"workflow.Or,omitempty"`
	Not     json.RawMessage `json:"workflow.Not,omitempty"`
	Compare json.RawMessage `json:"workflow.Compare,omitempty"`
}

type PredicateVisitor added in v1.21.1

type PredicateVisitor interface {
	VisitAnd(v *And) any
	VisitOr(v *Or) any
	VisitNot(v *Not) any
	VisitCompare(v *Compare) any
}

type Reshaper added in v1.21.1

type Reshaper interface {
	AcceptReshaper(g ReshaperVisitor) any
}

func ReshaperFromJSON added in v1.21.1

func ReshaperFromJSON(x []byte) (Reshaper, error)

type ReshaperUnionJSON added in v1.21.1

type ReshaperUnionJSON struct {
	Type     string          `json:"$type,omitempty"`
	GetValue json.RawMessage `json:"workflow.GetValue,omitempty"`
	SetValue json.RawMessage `json:"workflow.SetValue,omitempty"`
}

type ReshaperVisitor added in v1.21.1

type ReshaperVisitor interface {
	VisitGetValue(v *GetValue) any
	VisitSetValue(v *SetValue) any
}

type ResumeOptions

type ResumeOptions struct {
	Timeout int64
}

func (*ResumeOptions) MarshalJSON added in v1.21.1

func (r *ResumeOptions) MarshalJSON() ([]byte, error)

func (*ResumeOptions) UnmarshalJSON added in v1.21.1

func (r *ResumeOptions) UnmarshalJSON(data []byte) error

type ResumeSchedule

type ResumeSchedule struct {
	ParentRunID string
}

func ResumeScheduleFromJSON added in v1.21.1

func ResumeScheduleFromJSON(x []byte) (*ResumeSchedule, error)

func (*ResumeSchedule) AcceptCommand added in v1.21.1

func (r *ResumeSchedule) AcceptCommand(v CommandVisitor) any

func (*ResumeSchedule) MarshalJSON added in v1.21.1

func (r *ResumeSchedule) MarshalJSON() ([]byte, error)

func (*ResumeSchedule) UnmarshalJSON added in v1.21.1

func (r *ResumeSchedule) UnmarshalJSON(data []byte) error

type Run

type Run struct {
	Flow  Workflow
	Input schema.Schema
	// Schedule run
	RunOption RunOption
}

func RunFromJSON added in v1.21.1

func RunFromJSON(x []byte) (*Run, error)

func ScheduleNext

func ScheduleNext(x State, dep Dependency) *Run

func (*Run) AcceptCommand added in v1.21.1

func (r *Run) AcceptCommand(v CommandVisitor) any

func (*Run) MarshalJSON added in v1.21.1

func (r *Run) MarshalJSON() ([]byte, error)

func (*Run) UnmarshalJSON added in v1.21.1

func (r *Run) UnmarshalJSON(data []byte) error

type RunOption added in v1.21.1

type RunOption interface {
	AcceptRunOption(g RunOptionVisitor) any
}

func RunOptionFromJSON added in v1.21.1

func RunOptionFromJSON(x []byte) (RunOption, error)

type RunOptionUnionJSON added in v1.21.1

type RunOptionUnionJSON struct {
	Type        string          `json:"$type,omitempty"`
	ScheduleRun json.RawMessage `json:"workflow.ScheduleRun,omitempty"`
	DelayRun    json.RawMessage `json:"workflow.DelayRun,omitempty"`
}

type RunOptionVisitor added in v1.21.1

type RunOptionVisitor interface {
	VisitScheduleRun(v *ScheduleRun) any
	VisitDelayRun(v *DelayRun) any
}

type ScheduleRun

type ScheduleRun struct {
	// CRON like definition
	Interval string
	// ParentRunID is a reference to the original run, that scheduled this run and any between
	// ParentRunID is used to track history of the execution, and is stable reference to the original run
	ParentRunID string
}

func ScheduleRunFromJSON added in v1.21.1

func ScheduleRunFromJSON(x []byte) (*ScheduleRun, error)

func (*ScheduleRun) AcceptRunOption added in v1.21.1

func (r *ScheduleRun) AcceptRunOption(v RunOptionVisitor) any

func (*ScheduleRun) MarshalJSON added in v1.21.1

func (r *ScheduleRun) MarshalJSON() ([]byte, error)

func (*ScheduleRun) UnmarshalJSON added in v1.21.1

func (r *ScheduleRun) UnmarshalJSON(data []byte) error

type ScheduleStopped

type ScheduleStopped struct {
	BaseState BaseState
}

func ScheduleStoppedFromJSON added in v1.21.1

func ScheduleStoppedFromJSON(x []byte) (*ScheduleStopped, error)

func (*ScheduleStopped) AcceptState added in v1.21.1

func (r *ScheduleStopped) AcceptState(v StateVisitor) any

func (*ScheduleStopped) MarshalJSON added in v1.21.1

func (r *ScheduleStopped) MarshalJSON() ([]byte, error)

func (*ScheduleStopped) UnmarshalJSON added in v1.21.1

func (r *ScheduleStopped) UnmarshalJSON(data []byte) error

type Scheduled

type Scheduled struct {
	// ExpectedRunTimestamp is server timestamp + DelayBySeconds
	ExpectedRunTimestamp int64

	BaseState BaseState
}

Scheduled is a state that is used to schedule execution of the flow, once or periodically

func ScheduledFromJSON added in v1.21.1

func ScheduledFromJSON(x []byte) (*Scheduled, error)

func (*Scheduled) AcceptState added in v1.21.1

func (r *Scheduled) AcceptState(v StateVisitor) any

func (*Scheduled) MarshalJSON added in v1.21.1

func (r *Scheduled) MarshalJSON() ([]byte, error)

func (*Scheduled) UnmarshalJSON added in v1.21.1

func (r *Scheduled) UnmarshalJSON(data []byte) error

type SetValue

type SetValue struct {
	Value schema.Schema
}

func SetValueFromJSON added in v1.21.1

func SetValueFromJSON(x []byte) (*SetValue, error)

func (*SetValue) AcceptReshaper added in v1.21.1

func (r *SetValue) AcceptReshaper(v ReshaperVisitor) any

func (*SetValue) MarshalJSON added in v1.21.1

func (r *SetValue) MarshalJSON() ([]byte, error)

func (*SetValue) UnmarshalJSON added in v1.21.1

func (r *SetValue) UnmarshalJSON(data []byte) error

type State added in v1.21.1

type State interface {
	AcceptState(g StateVisitor) any
}

func ExecuteAll added in v1.21.1

func ExecuteAll(context BaseState, x *Flow, dep Dependency) State

func ExecuteExpr added in v1.21.1

func ExecuteExpr(context BaseState, expr Expr, dep Dependency) State

func StateFromJSON added in v1.21.1

func StateFromJSON(x []byte) (State, error)

func Transition added in v1.21.1

func Transition(cmd Command, state State, dep Dependency) (State, error)

type StateUnionJSON added in v1.21.1

type StateUnionJSON struct {
	Type            string          `json:"$type,omitempty"`
	NextOperation   json.RawMessage `json:"workflow.NextOperation,omitempty"`
	Done            json.RawMessage `json:"workflow.Done,omitempty"`
	Error           json.RawMessage `json:"workflow.Error,omitempty"`
	Await           json.RawMessage `json:"workflow.Await,omitempty"`
	Scheduled       json.RawMessage `json:"workflow.Scheduled,omitempty"`
	ScheduleStopped json.RawMessage `json:"workflow.ScheduleStopped,omitempty"`
}

type StateVisitor added in v1.21.1

type StateVisitor interface {
	VisitNextOperation(v *NextOperation) any
	VisitDone(v *Done) any
	VisitError(v *Error) any
	VisitAwait(v *Await) any
	VisitScheduled(v *Scheduled) any
	VisitScheduleStopped(v *ScheduleStopped) any
}

type StopSchedule

type StopSchedule struct {
	// ParentRunID can be stopped by user, or by system
	ParentRunID string
}

func StopScheduleFromJSON added in v1.21.1

func StopScheduleFromJSON(x []byte) (*StopSchedule, error)

func (*StopSchedule) AcceptCommand added in v1.21.1

func (r *StopSchedule) AcceptCommand(v CommandVisitor) any

func (*StopSchedule) MarshalJSON added in v1.21.1

func (r *StopSchedule) MarshalJSON() ([]byte, error)

func (*StopSchedule) UnmarshalJSON added in v1.21.1

func (r *StopSchedule) UnmarshalJSON(data []byte) error

type TryRecover

type TryRecover struct {
	RunID string
}

func TryRecoverFromJSON added in v1.21.1

func TryRecoverFromJSON(x []byte) (*TryRecover, error)

func (*TryRecover) AcceptCommand added in v1.21.1

func (r *TryRecover) AcceptCommand(v CommandVisitor) any

func (*TryRecover) MarshalJSON added in v1.21.1

func (r *TryRecover) MarshalJSON() ([]byte, error)

func (*TryRecover) UnmarshalJSON added in v1.21.1

func (r *TryRecover) UnmarshalJSON(data []byte) error

type Workflow added in v1.21.1

type Workflow interface {
	AcceptWorkflow(g WorkflowVisitor) any
}

func WorkflowFromJSON added in v1.21.1

func WorkflowFromJSON(x []byte) (Workflow, error)

type WorkflowUnionJSON added in v1.21.1

type WorkflowUnionJSON struct {
	Type    string          `json:"$type,omitempty"`
	Flow    json.RawMessage `json:"workflow.Flow,omitempty"`
	FlowRef json.RawMessage `json:"workflow.FlowRef,omitempty"`
}

type WorkflowVisitor added in v1.21.1

type WorkflowVisitor interface {
	VisitFlow(v *Flow) any
	VisitFlowRef(v *FlowRef) any
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL