step

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2018 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type And

type And struct {
	ChoiceBranch
	Comparison []Comparison
	Next       MachineState
}

And operator

func (*And) MarshalJSON

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

MarshalJSON for custom marshalling

type BooleanEquals

type BooleanEquals struct {
	Comparison
	Variable string
	Value    interface{}
}

BooleanEquals comparison

func (*BooleanEquals) MarshalJSON

func (cmp *BooleanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type ChoiceBranch

type ChoiceBranch interface {
	// contains filtered or unexported methods
}

ChoiceBranch represents a type for a ChoiceState "Choices" entry

type ChoiceState

type ChoiceState struct {
	Choices []ChoiceBranch
	Default TransitionState
	// contains filtered or unexported fields
}

ChoiceState is a synthetic state that executes a lot of independent branches in parallel

func NewChoiceState

func NewChoiceState(choiceStateName string, choices ...ChoiceBranch) *ChoiceState

NewChoiceState returns a "ChoiceState" with the supplied information

func (*ChoiceState) MarshalJSON

func (cs *ChoiceState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*ChoiceState) Name

func (cs *ChoiceState) Name() string

Name returns the name of this Task state

func (*ChoiceState) WithComment

func (cs *ChoiceState) WithComment(comment string) *ChoiceState

WithComment returns the TaskState comment

func (*ChoiceState) WithDefault

func (cs *ChoiceState) WithDefault(defaultState TransitionState) *ChoiceState

WithDefault is the fluent builder for the default state

func (*ChoiceState) WithResultPath

func (cs *ChoiceState) WithResultPath(resultPath string) *ChoiceState

WithResultPath is the fluent builder for the result path

type Comparison

type Comparison interface {
	json.Marshaler
}

Comparison is the generic comparison operator interface

type FailState

type FailState struct {
	ErrorName string
	Cause     error
	// contains filtered or unexported fields
}

FailState represents the end of state machine

func NewFailState

func NewFailState(failStateName string, errorName string, cause error) *FailState

NewFailState returns a "FailState" with the supplied information

func (*FailState) MarshalJSON

func (fs *FailState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshaling

func (*FailState) Name

func (fs *FailState) Name() string

Name returns the WaitDelay name

func (*FailState) Next

func (fs *FailState) Next(nextState MachineState) MachineState

Next sets the step after the wait delay

func (*FailState) NextState

func (fs *FailState) NextState() MachineState

NextState returns the next State

func (*FailState) WithComment

func (fs *FailState) WithComment(comment string) TransitionState

WithComment returns the WaitDelay comment

func (*FailState) WithInputPath

func (fs *FailState) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*FailState) WithOutputPath

func (fs *FailState) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

type MachineState

type MachineState interface {
	Name() string
	// contains filtered or unexported methods
}

MachineState is the base state for all AWS Step function

type Not

type Not struct {
	ChoiceBranch
	Comparison Comparison
	Next       MachineState
}

Not operator

func (*Not) MarshalJSON

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

MarshalJSON for custom marshalling

type NumericEquals

type NumericEquals struct {
	Comparison
	Variable string
	Value    int64
}

NumericEquals comparison

func (*NumericEquals) MarshalJSON

func (cmp *NumericEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type NumericGreaterThan

type NumericGreaterThan struct {
	Comparison
	Variable string
	Value    int64
}

NumericGreaterThan comparison

func (*NumericGreaterThan) MarshalJSON

func (cmp *NumericGreaterThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type NumericGreaterThanEquals

type NumericGreaterThanEquals struct {
	Comparison
	Variable string
	Value    int64
}

NumericGreaterThanEquals comparison

func (*NumericGreaterThanEquals) MarshalJSON

func (cmp *NumericGreaterThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type NumericLessThan

type NumericLessThan struct {
	Comparison
	Variable string
	Value    int64
}

NumericLessThan comparison

func (*NumericLessThan) MarshalJSON

func (cmp *NumericLessThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type NumericLessThanEquals

type NumericLessThanEquals struct {
	Comparison
	Variable string
	Value    int64
}

NumericLessThanEquals comparison

func (*NumericLessThanEquals) MarshalJSON

func (cmp *NumericLessThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type Or

type Or struct {
	ChoiceBranch
	Comparison []Comparison
	Next       MachineState
}

Or operator

func (*Or) MarshalJSON

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

MarshalJSON for custom marshalling

type ParallelState

type ParallelState struct {
	States     StateMachine
	ResultPath string
	Retry      []*TaskRetry
	Catch      *TaskCatch
	// contains filtered or unexported fields
}

ParallelState is a synthetic state that executes a lot of independent branches in parallel

func NewParallelState

func NewParallelState(parallelStateName string, states StateMachine) *ParallelState

NewParallelState returns a "ParallelState" with the supplied information

func (*ParallelState) MarshalJSON

func (ps *ParallelState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*ParallelState) Name

func (ps *ParallelState) Name() string

Name returns the name of this Task state

func (*ParallelState) Next

func (ps *ParallelState) Next(nextState MachineState) MachineState

Next returns the next state

func (*ParallelState) NextState

func (ps *ParallelState) NextState() MachineState

NextState sets the next state

func (*ParallelState) WithCatch

func (ps *ParallelState) WithCatch(catch *TaskCatch) *ParallelState

WithCatch is the fluent builder for TaskState

func (*ParallelState) WithComment

func (ps *ParallelState) WithComment(comment string) TransitionState

WithComment returns the TaskState comment

func (*ParallelState) WithInputPath

func (ps *ParallelState) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*ParallelState) WithOutputPath

func (ps *ParallelState) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

func (*ParallelState) WithResultPath

func (ps *ParallelState) WithResultPath(resultPath string) *ParallelState

WithResultPath is the fluent builder for the result path

func (*ParallelState) WithRetry

func (ps *ParallelState) WithRetry(retries ...*TaskRetry) *ParallelState

WithRetry is the fluent builder for TaskState

type PassState

type PassState struct {
	ResultPath string
	Result     interface{}
	// contains filtered or unexported fields
}

PassState represents a NOP state

func NewPassState

func NewPassState(name string, resultData interface{}) *PassState

NewPassState returns a new PassState instance

func (*PassState) MarshalJSON

func (ps *PassState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*PassState) Name

func (ps *PassState) Name() string

Name returns the name of this Task state

func (*PassState) Next

func (ps *PassState) Next(nextState MachineState) MachineState

Next returns the next state

func (*PassState) NextState

func (ps *PassState) NextState() MachineState

NextState sets the next state

func (*PassState) WithComment

func (ps *PassState) WithComment(comment string) TransitionState

WithComment returns the TaskState comment

func (*PassState) WithInputPath

func (ps *PassState) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*PassState) WithOutputPath

func (ps *PassState) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

func (*PassState) WithResult

func (ps *PassState) WithResult(result interface{}) *PassState

WithResult is the fluent builder for the result data

func (*PassState) WithResultPath

func (ps *PassState) WithResultPath(resultPath string) *PassState

WithResultPath is the fluent builder for the result path

type StateError

type StateError string

StateError is the reserved type used for AWS Step function error names Ref: https://states-language.net/spec.html#appendix-a

const (
	// StatesAll is a wild-card which matches any Error Name.
	StatesAll StateError = "States.ALL"
	// StatesTimeout is a Task State either ran longer than the
	// “TimeoutSeconds” value, or failed to heartbeat for a time
	// longer than the “HeartbeatSeconds” value.
	StatesTimeout StateError = "States.Timeout"
	// StatesTaskFailed is a Task State failed during the execution
	StatesTaskFailed StateError = "States.TaskFailed"
	// StatesPermissions is a Task State failed because it had
	// insufficient privileges to execute the specified code.
	StatesPermissions StateError = "States.Permissions"
	// StatesResultPathMatchFailure is a Task State’s “ResultPath” field
	// cannot be applied to the input the state received
	StatesResultPathMatchFailure StateError = "States.ResultPathMatchFailure"
	// StatesBranchFailed is a branch of a Parallel state failed
	StatesBranchFailed StateError = "States.BranchFailed"
	// StatesNoChoiceMatched is a Choice state failed to find a match for the
	// condition field extracted from its input
	StatesNoChoiceMatched StateError = "States.NoChoiceMatched"
)

type StateMachine

type StateMachine struct {
	// contains filtered or unexported fields
}

StateMachine is the top level item

func NewStateMachine

func NewStateMachine(stateMachineName string, startState TransitionState) *StateMachine

NewStateMachine returns a new StateMachine instance

func (*StateMachine) Comment

func (sm *StateMachine) Comment(comment string) *StateMachine

Comment sets the StateMachine comment

func (*StateMachine) MarshalJSON

func (sm *StateMachine) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*StateMachine) StateMachineDecorator

func (sm *StateMachine) StateMachineDecorator() sparta.ServiceDecoratorHookFunc

StateMachineDecorator is the hook exposed by the StateMachine to insert the AWS Step function into the CloudFormation template

type StringEquals

type StringEquals struct {
	Comparison
	Variable string
	Value    string
}

StringEquals comparison

func (*StringEquals) MarshalJSON

func (cmp *StringEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type StringGreaterThan

type StringGreaterThan struct {
	Comparison
	Variable string
	Value    string
}

StringGreaterThan comparison

func (*StringGreaterThan) MarshalJSON

func (cmp *StringGreaterThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type StringGreaterThanEquals

type StringGreaterThanEquals struct {
	Comparison
	Variable string
	Value    string
}

StringGreaterThanEquals comparison

func (*StringGreaterThanEquals) MarshalJSON

func (cmp *StringGreaterThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type StringLessThan

type StringLessThan struct {
	Comparison
	Variable string
	Value    string
}

StringLessThan comparison

func (*StringLessThan) MarshalJSON

func (cmp *StringLessThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type StringLessThanEquals

type StringLessThanEquals struct {
	Variable string
	Value    string
}

StringLessThanEquals comparison

func (*StringLessThanEquals) MarshalJSON

func (cmp *StringLessThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type SuccessState

type SuccessState struct {
	// contains filtered or unexported fields
}

SuccessState represents the end of the state machine

func NewSuccessState

func NewSuccessState(name string) *SuccessState

NewSuccessState returns a "SuccessState" with the supplied name

func (*SuccessState) MarshalJSON

func (ss *SuccessState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*SuccessState) Name

func (ss *SuccessState) Name() string

Name returns the WaitDelay name

func (*SuccessState) Next

func (ss *SuccessState) Next(nextState MachineState) MachineState

Next sets the step after the wait delay

func (*SuccessState) NextState

func (ss *SuccessState) NextState() MachineState

NextState returns the next State

func (*SuccessState) WithComment

func (ss *SuccessState) WithComment(comment string) TransitionState

WithComment returns the WaitDelay comment

func (*SuccessState) WithInputPath

func (ss *SuccessState) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*SuccessState) WithOutputPath

func (ss *SuccessState) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

type TaskCatch

type TaskCatch struct {
	/*
		The reserved name “States.ALL” appearing in a Retrier’s “ErrorEquals” field is a wild-card and matches any Error Name. Such a value MUST appear alone in the “ErrorEquals” array and MUST appear in the last Catcher in the “Catch” array.
	*/
	ErrorEquals []StateError    `json:",omitempty"`
	NextState   TransitionState `json:"Next,omitempty"`
}

TaskCatch is an action to handle a failing operation

func NewTaskCatch

func NewTaskCatch(errors ...StateError) *TaskCatch

NewTaskCatch returns a new TaskCatch instance

func (*TaskCatch) Next

func (tc *TaskCatch) Next(nextState TransitionState) *TaskCatch

Next is the fluent builder

func (*TaskCatch) WithErrors

func (tc *TaskCatch) WithErrors(errors ...StateError) *TaskCatch

WithErrors is the fluent builder

type TaskRetry

type TaskRetry struct {
	ErrorEquals     []StateError  `json:",omitempty"`
	IntervalSeconds time.Duration `json:",omitempty"`
	MaxAttempts     int           `json:",omitempty"`
	BackoffRate     float32       `json:",omitempty"`
}

TaskRetry is an action to perform in response to a Task failure

func NewTaskRetry

func NewTaskRetry() *TaskRetry

NewTaskRetry returns a new TaskRetry instance

func (*TaskRetry) WithBackoffRate

func (tr *TaskRetry) WithBackoffRate(backoffRate float32) *TaskRetry

WithBackoffRate is the fluent builder

func (*TaskRetry) WithErrors

func (tr *TaskRetry) WithErrors(errors ...StateError) *TaskRetry

WithErrors is the fluent builder

func (*TaskRetry) WithInterval

func (tr *TaskRetry) WithInterval(interval time.Duration) *TaskRetry

WithInterval is the fluent builder

func (*TaskRetry) WithMaxAttempts

func (tr *TaskRetry) WithMaxAttempts(maxAttempts int) *TaskRetry

WithMaxAttempts is the fluent builder

type TaskState

type TaskState struct {
	ResultPath       string
	TimeoutSeconds   time.Duration
	HeartbeatSeconds time.Duration
	LambdaDecorator  sparta.TemplateDecorator

	Retry []*TaskRetry
	Catch *TaskCatch
	// contains filtered or unexported fields
}

TaskState is the core state, responsible for delegating to a Lambda function

func NewTaskState

func NewTaskState(stateName string, lambdaFn *sparta.LambdaAWSInfo) *TaskState

NewTaskState returns a TaskState instance properly initialized

func (*TaskState) MarshalJSON

func (ts *TaskState) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*TaskState) Name

func (ts *TaskState) Name() string

Name returns the name of this Task state

func (*TaskState) Next

func (ts *TaskState) Next(nextState MachineState) MachineState

Next returns the next state

func (*TaskState) NextState

func (ts *TaskState) NextState() MachineState

NextState sets the next state

func (*TaskState) WithCatch

func (ts *TaskState) WithCatch(catch *TaskCatch) *TaskState

WithCatch is the fluent builder for TaskState

func (*TaskState) WithComment

func (ts *TaskState) WithComment(comment string) TransitionState

WithComment returns the TaskState comment

func (*TaskState) WithHeartbeat

func (ts *TaskState) WithHeartbeat(pulse time.Duration) *TaskState

WithHeartbeat is the fluent builder for TaskState

func (*TaskState) WithInputPath

func (ts *TaskState) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*TaskState) WithOutputPath

func (ts *TaskState) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

func (*TaskState) WithResultPath

func (ts *TaskState) WithResultPath(resultPath string) *TaskState

WithResultPath is the fluent builder for the result path

func (*TaskState) WithRetry

func (ts *TaskState) WithRetry(retries ...*TaskRetry) *TaskState

WithRetry is the fluent builder for TaskState

func (*TaskState) WithTimeout

func (ts *TaskState) WithTimeout(timeout time.Duration) *TaskState

WithTimeout is the fluent builder for TaskState

type TimestampEquals

type TimestampEquals struct {
	Comparison
	Variable string
	Value    time.Time
}

TimestampEquals comparison

func (*TimestampEquals) MarshalJSON

func (cmp *TimestampEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type TimestampGreaterThan

type TimestampGreaterThan struct {
	Variable string
	Value    time.Time
}

TimestampGreaterThan comparison

func (*TimestampGreaterThan) MarshalJSON

func (cmp *TimestampGreaterThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type TimestampGreaterThanEquals

type TimestampGreaterThanEquals struct {
	Comparison
	Variable string
	Value    time.Time
}

TimestampGreaterThanEquals comparison

func (*TimestampGreaterThanEquals) MarshalJSON

func (cmp *TimestampGreaterThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type TimestampLessThan

type TimestampLessThan struct {
	Comparison
	Variable string
	Value    time.Time
}

TimestampLessThan comparison

func (*TimestampLessThan) MarshalJSON

func (cmp *TimestampLessThan) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type TimestampLessThanEquals

type TimestampLessThanEquals struct {
	Comparison
	Variable string
	Value    time.Time
}

TimestampLessThanEquals comparison

func (*TimestampLessThanEquals) MarshalJSON

func (cmp *TimestampLessThanEquals) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

type TransitionState

type TransitionState interface {
	MachineState
	Next(state MachineState) MachineState
	NextState() MachineState
	WithComment(string) TransitionState
	WithInputPath(string) TransitionState
	WithOutputPath(string) TransitionState
}

TransitionState is the generic state according to https://states-language.net/spec.html#state-type-table

type WaitDelay

type WaitDelay struct {
	// contains filtered or unexported fields
}

WaitDelay is a delay with an interval

func NewWaitDelayState

func NewWaitDelayState(stateName string, delayInSeconds time.Duration) *WaitDelay

NewWaitDelayState returns a new WaitDelay pointer instance

func (*WaitDelay) MarshalJSON

func (wd *WaitDelay) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*WaitDelay) Name

func (wd *WaitDelay) Name() string

Name returns the WaitDelay name

func (*WaitDelay) Next

func (wd *WaitDelay) Next(nextState MachineState) MachineState

Next sets the step after the wait delay

func (*WaitDelay) NextState

func (wd *WaitDelay) NextState() MachineState

NextState returns the next State

func (*WaitDelay) WithComment

func (wd *WaitDelay) WithComment(comment string) TransitionState

WithComment returns the WaitDelay comment

func (*WaitDelay) WithInputPath

func (wd *WaitDelay) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*WaitDelay) WithOutputPath

func (wd *WaitDelay) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

type WaitDynamicUntil

type WaitDynamicUntil struct {
	TimestampPath string
	// contains filtered or unexported fields
}

WaitDynamicUntil is a delay based on a previous response

func NewWaitDynamicUntilState

func NewWaitDynamicUntilState(stateName string, timestampPath string) *WaitDynamicUntil

NewWaitDynamicUntilState returns a new WaitDynamicUntil pointer instance

func (*WaitDynamicUntil) MarshalJSON

func (wdu *WaitDynamicUntil) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*WaitDynamicUntil) Name

func (wdu *WaitDynamicUntil) Name() string

Name returns the WaitDelay name

func (*WaitDynamicUntil) Next

func (wdu *WaitDynamicUntil) Next(nextState MachineState) MachineState

Next sets the step after the wait delay

func (*WaitDynamicUntil) NextState

func (wdu *WaitDynamicUntil) NextState() MachineState

NextState returns the next State

func (*WaitDynamicUntil) WithComment

func (wdu *WaitDynamicUntil) WithComment(comment string) TransitionState

WithComment returns the WaitDelay comment

func (*WaitDynamicUntil) WithInputPath

func (wdu *WaitDynamicUntil) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*WaitDynamicUntil) WithOutputPath

func (wdu *WaitDynamicUntil) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

type WaitUntil

type WaitUntil struct {
	Timestamp time.Time
	// contains filtered or unexported fields
}

WaitUntil is a delay with an absolute time gate

func NewWaitUntilState

func NewWaitUntilState(stateName string, waitUntil time.Time) *WaitUntil

NewWaitUntilState returns a new WaitDelay pointer instance

func (*WaitUntil) MarshalJSON

func (wu *WaitUntil) MarshalJSON() ([]byte, error)

MarshalJSON for custom marshalling

func (*WaitUntil) Name

func (wu *WaitUntil) Name() string

Name returns the WaitDelay name

func (*WaitUntil) Next

func (wu *WaitUntil) Next(nextState MachineState) MachineState

Next sets the step after the wait delay

func (*WaitUntil) NextState

func (wu *WaitUntil) NextState() MachineState

NextState returns the next State

func (*WaitUntil) WithComment

func (wu *WaitUntil) WithComment(comment string) TransitionState

WithComment returns the WaitDelay comment

func (*WaitUntil) WithInputPath

func (wu *WaitUntil) WithInputPath(inputPath string) TransitionState

WithInputPath returns the TaskState input data selector

func (*WaitUntil) WithOutputPath

func (wu *WaitUntil) WithOutputPath(outputPath string) TransitionState

WithOutputPath returns the TaskState output data selector

Jump to

Keyboard shortcuts

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