Sparta: github.com/mweagle/Sparta/aws/step Index | Files

package step

import "github.com/mweagle/Sparta/aws/step"

Index

Package Files

step.go

type And Uses

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

And operator

func (*And) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type BooleanEquals Uses

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

BooleanEquals comparison

func (*BooleanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type ChoiceBranch Uses

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

ChoiceBranch represents a type for a ChoiceState "Choices" entry

type ChoiceState Uses

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 Uses

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

NewChoiceState returns a "ChoiceState" with the supplied information

func (*ChoiceState) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*ChoiceState) Name Uses

func (cs *ChoiceState) Name() string

Name returns the name of this Task state

func (*ChoiceState) WithComment Uses

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

WithComment returns the TaskState comment

func (*ChoiceState) WithDefault Uses

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

WithDefault is the fluent builder for the default state

func (*ChoiceState) WithResultPath Uses

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

WithResultPath is the fluent builder for the result path

type Comparison Uses

type Comparison interface {
    json.Marshaler
}

Comparison is the generic comparison operator interface

type FailState Uses

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

FailState represents the end of state machine

func NewFailState Uses

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

NewFailState returns a "FailState" with the supplied information

func (*FailState) MarshalJSON Uses

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

MarshalJSON for custom marshaling

func (*FailState) Name Uses

func (fs *FailState) Name() string

Name returns the WaitDelay name

func (*FailState) Next Uses

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

Next sets the step after the wait delay

func (*FailState) NextState Uses

func (fs *FailState) NextState() MachineState

NextState returns the next State

func (*FailState) WithComment Uses

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

WithComment returns the WaitDelay comment

func (*FailState) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*FailState) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

type MachineState Uses

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

MachineState is the base state for all AWS Step function

type Not Uses

type Not struct {
    ChoiceBranch
    Comparison Comparison
    Next       MachineState
}

Not operator

func (*Not) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type NumericEquals Uses

type NumericEquals struct {
    Comparison
    Variable string
    Value    int64
}

NumericEquals comparision

func (*NumericEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type NumericGreaterThan Uses

type NumericGreaterThan struct {
    Comparison
    Variable string
    Value    int64
}

NumericGreaterThan comparison

func (*NumericGreaterThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type NumericGreaterThanEquals Uses

type NumericGreaterThanEquals struct {
    Comparison
    Variable string
    Value    int64
}

NumericGreaterThanEquals comparison

func (*NumericGreaterThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type NumericLessThan Uses

type NumericLessThan struct {
    Comparison
    Variable string
    Value    int64
}

NumericLessThan comparison

func (*NumericLessThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type NumericLessThanEquals Uses

type NumericLessThanEquals struct {
    Comparison
    Variable string
    Value    int64
}

NumericLessThanEquals comparison

func (*NumericLessThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type Or Uses

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

Or operator

func (*Or) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type ParallelState Uses

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 Uses

func NewParallelState(parallelStateName string, states StateMachine) *ParallelState

NewParallelState returns a "ParallelState" with the supplied information

func (*ParallelState) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*ParallelState) Name Uses

func (ps *ParallelState) Name() string

Name returns the name of this Task state

func (*ParallelState) Next Uses

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

Next returns the next state

func (*ParallelState) NextState Uses

func (ps *ParallelState) NextState() MachineState

NextState sets the next state

func (*ParallelState) WithCatch Uses

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

WithCatch is the fluent builder for TaskState

func (*ParallelState) WithComment Uses

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

WithComment returns the TaskState comment

func (*ParallelState) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*ParallelState) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

func (*ParallelState) WithResultPath Uses

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

WithResultPath is the fluent builder for the result path

func (*ParallelState) WithRetry Uses

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

WithRetry is the fluent builder for TaskState

type PassState Uses

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

PassState represents a NOP state

func NewPassState Uses

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

NewPassState returns a new PassState instance

func (*PassState) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*PassState) Name Uses

func (ps *PassState) Name() string

Name returns the name of this Task state

func (*PassState) Next Uses

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

Next returns the next state

func (*PassState) NextState Uses

func (ps *PassState) NextState() MachineState

NextState sets the next state

func (*PassState) WithComment Uses

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

WithComment returns the TaskState comment

func (*PassState) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*PassState) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

func (*PassState) WithResult Uses

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

WithResult is the fluent builder for the result data

func (*PassState) WithResultPath Uses

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

WithResultPath is the fluent builder for the result path

type StateError Uses

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 Uses

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

StateMachine is the top level item

func NewStateMachine Uses

func NewStateMachine(startState TransitionState) *StateMachine

NewStateMachine returns a new StateMachine instance

func (*StateMachine) Comment Uses

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

Comment sets the StateMachine comment

func (*StateMachine) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*StateMachine) StateMachineDecorator Uses

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

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

type StringEquals Uses

type StringEquals struct {
    Comparison
    Variable string
    Value    string
}

StringEquals comparison

func (*StringEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type StringGreaterThan Uses

type StringGreaterThan struct {
    Comparison
    Variable string
    Value    string
}

StringGreaterThan comparison

func (*StringGreaterThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type StringGreaterThanEquals Uses

type StringGreaterThanEquals struct {
    Comparison
    Variable string
    Value    string
}

StringGreaterThanEquals comparison

func (*StringGreaterThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type StringLessThan Uses

type StringLessThan struct {
    Comparison
    Variable string
    Value    string
}

StringLessThan comparison

func (*StringLessThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type StringLessThanEquals Uses

type StringLessThanEquals struct {
    Variable string
    Value    string
}

StringLessThanEquals comparison

func (*StringLessThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type SuccessState Uses

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

SuccessState represents the end of the state machine

func NewSuccessState Uses

func NewSuccessState(name string) *SuccessState

NewSuccessState returns a "SuccessState" with the supplied name

func (*SuccessState) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*SuccessState) Name Uses

func (ss *SuccessState) Name() string

Name returns the WaitDelay name

func (*SuccessState) Next Uses

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

Next sets the step after the wait delay

func (*SuccessState) NextState Uses

func (ss *SuccessState) NextState() MachineState

NextState returns the next State

func (*SuccessState) WithComment Uses

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

WithComment returns the WaitDelay comment

func (*SuccessState) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*SuccessState) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

type TaskCatch Uses

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 Uses

func NewTaskCatch(errors ...StateError) *TaskCatch

NewTaskCatch returns a new TaskCatch instance

func (*TaskCatch) Next Uses

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

Next is the fluent builder

func (*TaskCatch) WithErrors Uses

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

WithErrors is the fluent builder

type TaskRetry Uses

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 Uses

func NewTaskRetry() *TaskRetry

NewTaskRetry returns a new TaskRetry instance

func (*TaskRetry) WithBackoffRate Uses

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

WithBackoffRate is the fluent builder

func (*TaskRetry) WithErrors Uses

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

WithErrors is the fluent builder

func (*TaskRetry) WithInterval Uses

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

WithInterval is the fluent builder

func (*TaskRetry) WithMaxAttempts Uses

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

WithMaxAttempts is the fluent builder

type TaskState Uses

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 Uses

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

NewTaskState returns a TaskState instance properly initialized

func (*TaskState) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*TaskState) Name Uses

func (ts *TaskState) Name() string

Name returns the name of this Task state

func (*TaskState) Next Uses

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

Next returns the next state

func (*TaskState) NextState Uses

func (ts *TaskState) NextState() MachineState

NextState sets the next state

func (*TaskState) WithCatch Uses

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

WithCatch is the fluent builder for TaskState

func (*TaskState) WithComment Uses

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

WithComment returns the TaskState comment

func (*TaskState) WithHeartbeat Uses

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

WithHeartbeat is the fluent builder for TaskState

func (*TaskState) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*TaskState) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

func (*TaskState) WithResultPath Uses

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

WithResultPath is the fluent builder for the result path

func (*TaskState) WithRetry Uses

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

WithRetry is the fluent builder for TaskState

func (*TaskState) WithTimeout Uses

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

WithTimeout is the fluent builder for TaskState

type TimestampEquals Uses

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

TimestampEquals comparison

func (*TimestampEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type TimestampGreaterThan Uses

type TimestampGreaterThan struct {
    Variable string
    Value    time.Time
}

TimestampGreaterThan comparison

func (*TimestampGreaterThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type TimestampGreaterThanEquals Uses

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

TimestampGreaterThanEquals comparison

func (*TimestampGreaterThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type TimestampLessThan Uses

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

TimestampLessThan comparison

func (*TimestampLessThan) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type TimestampLessThanEquals Uses

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

TimestampLessThanEquals comparison

func (*TimestampLessThanEquals) MarshalJSON Uses

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

MarshalJSON for custom marshalling

type TransitionState Uses

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 Uses

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

WaitDelay is a delay with an interval

func NewWaitDelayState Uses

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

NewWaitDelayState returns a new WaitDelay pointer instance

func (*WaitDelay) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*WaitDelay) Name Uses

func (wd *WaitDelay) Name() string

Name returns the WaitDelay name

func (*WaitDelay) Next Uses

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

Next sets the step after the wait delay

func (*WaitDelay) NextState Uses

func (wd *WaitDelay) NextState() MachineState

NextState returns the next State

func (*WaitDelay) WithComment Uses

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

WithComment returns the WaitDelay comment

func (*WaitDelay) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*WaitDelay) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

type WaitDynamicUntil Uses

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

WaitDynamicUntil is a delay based on a previous response

func NewWaitDynamicUntilState Uses

func NewWaitDynamicUntilState(stateName string, timestampPath string) *WaitDynamicUntil

NewWaitDynamicUntilState returns a new WaitDynamicUntil pointer instance

func (*WaitDynamicUntil) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*WaitDynamicUntil) Name Uses

func (wdu *WaitDynamicUntil) Name() string

Name returns the WaitDelay name

func (*WaitDynamicUntil) Next Uses

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

Next sets the step after the wait delay

func (*WaitDynamicUntil) NextState Uses

func (wdu *WaitDynamicUntil) NextState() MachineState

NextState returns the next State

func (*WaitDynamicUntil) WithComment Uses

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

WithComment returns the WaitDelay comment

func (*WaitDynamicUntil) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*WaitDynamicUntil) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

type WaitUntil Uses

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

WaitUntil is a delay with an absolute time gate

func NewWaitUntilState Uses

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

NewWaitUntilState returns a new WaitDelay pointer instance

func (*WaitUntil) MarshalJSON Uses

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

MarshalJSON for custom marshalling

func (*WaitUntil) Name Uses

func (wu *WaitUntil) Name() string

Name returns the WaitDelay name

func (*WaitUntil) Next Uses

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

Next sets the step after the wait delay

func (*WaitUntil) NextState Uses

func (wu *WaitUntil) NextState() MachineState

NextState returns the next State

func (*WaitUntil) WithComment Uses

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

WithComment returns the WaitDelay comment

func (*WaitUntil) WithInputPath Uses

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

WithInputPath returns the TaskState input data selector

func (*WaitUntil) WithOutputPath Uses

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

WithOutputPath returns the TaskState output data selector

Package step imports 13 packages (graph). Updated 2017-11-01. Refresh now. Tools for package owners.