step

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2018 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package step provides functionality to work with AWS Step Functions

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