Documentation ¶
Index ¶
- func Activity_IsConstruct(x interface{}) *bool
- func Activity_IsOwnedResource(construct constructs.IConstruct) *bool
- func Activity_IsResource(construct constructs.IConstruct) *bool
- func CfnActivity_CFN_RESOURCE_TYPE_NAME() *string
- func CfnActivity_IsCfnElement(x interface{}) *bool
- func CfnActivity_IsCfnResource(x interface{}) *bool
- func CfnActivity_IsConstruct(x interface{}) *bool
- func CfnStateMachineAlias_CFN_RESOURCE_TYPE_NAME() *string
- func CfnStateMachineAlias_IsCfnElement(x interface{}) *bool
- func CfnStateMachineAlias_IsCfnResource(x interface{}) *bool
- func CfnStateMachineAlias_IsConstruct(x interface{}) *bool
- func CfnStateMachineVersion_CFN_RESOURCE_TYPE_NAME() *string
- func CfnStateMachineVersion_IsCfnElement(x interface{}) *bool
- func CfnStateMachineVersion_IsCfnResource(x interface{}) *bool
- func CfnStateMachineVersion_IsConstruct(x interface{}) *bool
- func CfnStateMachine_CFN_RESOURCE_TYPE_NAME() *string
- func CfnStateMachine_IsCfnElement(x interface{}) *bool
- func CfnStateMachine_IsCfnResource(x interface{}) *bool
- func CfnStateMachine_IsConstruct(x interface{}) *bool
- func Choice_FilterNextables(states *[]State) *[]INextable
- func Choice_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Choice_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Choice_IsConstruct(x interface{}) *bool
- func Choice_PrefixStates(root constructs.IConstruct, prefix *string)
- func CustomState_FilterNextables(states *[]State) *[]INextable
- func CustomState_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func CustomState_FindReachableStates(start State, options *FindStateOptions) *[]State
- func CustomState_IsConstruct(x interface{}) *bool
- func CustomState_PrefixStates(root constructs.IConstruct, prefix *string)
- func Errors_ALL() *string
- func Errors_BRANCH_FAILED() *string
- func Errors_HEARTBEAT_TIMEOUT() *string
- func Errors_NO_CHOICE_MATCHED() *string
- func Errors_PARAMETER_PATH_FAILURE() *string
- func Errors_PERMISSIONS() *string
- func Errors_RESULT_PATH_MATCH_FAILURE() *string
- func Errors_TASKS_FAILED() *string
- func Errors_TIMEOUT() *string
- func Fail_FilterNextables(states *[]State) *[]INextable
- func Fail_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Fail_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Fail_IsConstruct(x interface{}) *bool
- func Fail_PrefixStates(root constructs.IConstruct, prefix *string)
- func FieldUtils_ContainsTaskToken(obj *map[string]interface{}) *bool
- func FieldUtils_FindReferencedPaths(obj *map[string]interface{}) *[]*string
- func FieldUtils_RenderObject(obj *map[string]interface{}) *map[string]interface{}
- func JsonPath_Array(values ...*string) *string
- func JsonPath_ArrayContains(array interface{}, value interface{}) *string
- func JsonPath_ArrayGetItem(array interface{}, index *float64) *string
- func JsonPath_ArrayLength(array interface{}) *string
- func JsonPath_ArrayPartition(array interface{}, chunkSize *float64) *string
- func JsonPath_ArrayRange(start *float64, end *float64, step *float64) *string
- func JsonPath_ArrayUnique(array interface{}) *string
- func JsonPath_Base64Decode(base64 *string) *string
- func JsonPath_Base64Encode(input *string) *string
- func JsonPath_DISCARD() *string
- func JsonPath_EntireContext() *string
- func JsonPath_EntirePayload() *string
- func JsonPath_ExecutionId() *string
- func JsonPath_ExecutionInput() *string
- func JsonPath_ExecutionName() *string
- func JsonPath_ExecutionRoleArn() *string
- func JsonPath_ExecutionStartTime() *string
- func JsonPath_Format(formatString *string, values ...*string) *string
- func JsonPath_Hash(data interface{}, algorithm *string) *string
- func JsonPath_IsEncodedJsonPath(value *string) *bool
- func JsonPath_JsonMerge(value1 interface{}, value2 interface{}) *string
- func JsonPath_JsonToString(value interface{}) *string
- func JsonPath_ListAt(path *string) *[]*string
- func JsonPath_MathAdd(num1 *float64, num2 *float64) *string
- func JsonPath_MathRandom(start *float64, end *float64) *string
- func JsonPath_NumberAt(path *string) *float64
- func JsonPath_ObjectAt(path *string) awscdk.IResolvable
- func JsonPath_StateEnteredTime() *string
- func JsonPath_StateMachineId() *string
- func JsonPath_StateMachineName() *string
- func JsonPath_StateName() *string
- func JsonPath_StateRetryCount() *string
- func JsonPath_StringAt(path *string) *string
- func JsonPath_StringSplit(inputString *string, splitter *string) *string
- func JsonPath_StringToJson(jsonString *string) awscdk.IResolvable
- func JsonPath_TaskToken() *string
- func JsonPath_Uuid() *string
- func Map_FilterNextables(states *[]State) *[]INextable
- func Map_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Map_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Map_IsConstruct(x interface{}) *bool
- func Map_PrefixStates(root constructs.IConstruct, prefix *string)
- func NewActivity_Override(a Activity, scope constructs.Construct, id *string, props *ActivityProps)
- func NewCfnActivity_Override(c CfnActivity, scope constructs.Construct, id *string, props *CfnActivityProps)
- func NewCfnStateMachineAlias_Override(c CfnStateMachineAlias, scope constructs.Construct, id *string, ...)
- func NewCfnStateMachineVersion_Override(c CfnStateMachineVersion, scope constructs.Construct, id *string, ...)
- func NewCfnStateMachine_Override(c CfnStateMachine, scope constructs.Construct, id *string, ...)
- func NewChainDefinitionBody_Override(c ChainDefinitionBody, chainable IChainable)
- func NewChoice_Override(c Choice, scope constructs.Construct, id *string, props *ChoiceProps)
- func NewCondition_Override(c Condition)
- func NewCustomState_Override(c CustomState, scope constructs.Construct, id *string, props *CustomStateProps)
- func NewDefinitionBody_Override(d DefinitionBody)
- func NewErrors_Override(e Errors)
- func NewFail_Override(f Fail, scope constructs.Construct, id *string, props *FailProps)
- func NewFileDefinitionBody_Override(f FileDefinitionBody, path *string, options *awss3assets.AssetOptions)
- func NewMap_Override(m Map, scope constructs.Construct, id *string, props *MapProps)
- func NewParallel_Override(p Parallel, scope constructs.Construct, id *string, props *ParallelProps)
- func NewPass_Override(p Pass, scope constructs.Construct, id *string, props *PassProps)
- func NewResult_Override(r Result, value interface{})
- func NewStateGraph_Override(s StateGraph, startState State, graphDescription *string)
- func NewStateMachineFragment_Override(s StateMachineFragment, scope constructs.Construct, id *string)
- func NewStateMachine_Override(s StateMachine, scope constructs.Construct, id *string, ...)
- func NewStateTransitionMetric_Override(s StateTransitionMetric)
- func NewState_Override(s State, scope constructs.Construct, id *string, props *StateProps)
- func NewStringDefinitionBody_Override(s StringDefinitionBody, body *string)
- func NewSucceed_Override(s Succeed, scope constructs.Construct, id *string, props *SucceedProps)
- func NewTaskRole_Override(t TaskRole)
- func NewTaskStateBase_Override(t TaskStateBase, scope constructs.Construct, id *string, ...)
- func NewTimeout_Override(t Timeout)
- func NewWait_Override(w Wait, scope constructs.Construct, id *string, props *WaitProps)
- func Parallel_FilterNextables(states *[]State) *[]INextable
- func Parallel_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Parallel_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Parallel_IsConstruct(x interface{}) *bool
- func Parallel_PrefixStates(root constructs.IConstruct, prefix *string)
- func Pass_FilterNextables(states *[]State) *[]INextable
- func Pass_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Pass_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Pass_IsConstruct(x interface{}) *bool
- func Pass_PrefixStates(root constructs.IConstruct, prefix *string)
- func StateMachineFragment_IsConstruct(x interface{}) *bool
- func StateMachine_IsConstruct(x interface{}) *bool
- func StateMachine_IsOwnedResource(construct constructs.IConstruct) *bool
- func StateMachine_IsResource(construct constructs.IConstruct) *bool
- func StateTransitionMetric_Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StateTransitionMetric_MetricConsumedCapacity(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StateTransitionMetric_MetricProvisionedBucketSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StateTransitionMetric_MetricProvisionedRefillRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func StateTransitionMetric_MetricThrottledEvents(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
- func State_FilterNextables(states *[]State) *[]INextable
- func State_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func State_FindReachableStates(start State, options *FindStateOptions) *[]State
- func State_IsConstruct(x interface{}) *bool
- func State_PrefixStates(root constructs.IConstruct, prefix *string)
- func Succeed_FilterNextables(states *[]State) *[]INextable
- func Succeed_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Succeed_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Succeed_IsConstruct(x interface{}) *bool
- func Succeed_PrefixStates(root constructs.IConstruct, prefix *string)
- func TaskStateBase_FilterNextables(states *[]State) *[]INextable
- func TaskStateBase_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func TaskStateBase_FindReachableStates(start State, options *FindStateOptions) *[]State
- func TaskStateBase_IsConstruct(x interface{}) *bool
- func TaskStateBase_PrefixStates(root constructs.IConstruct, prefix *string)
- func Wait_FilterNextables(states *[]State) *[]INextable
- func Wait_FindReachableEndStates(start State, options *FindStateOptions) *[]State
- func Wait_FindReachableStates(start State, options *FindStateOptions) *[]State
- func Wait_IsConstruct(x interface{}) *bool
- func Wait_PrefixStates(root constructs.IConstruct, prefix *string)
- type Activity
- type ActivityProps
- type AfterwardsOptions
- type CatchProps
- type CfnActivity
- type CfnActivityProps
- type CfnActivity_TagsEntryProperty
- type CfnStateMachine
- type CfnStateMachineAlias
- type CfnStateMachineAliasProps
- type CfnStateMachineAlias_DeploymentPreferenceProperty
- type CfnStateMachineAlias_RoutingConfigurationVersionProperty
- type CfnStateMachineProps
- type CfnStateMachineVersion
- type CfnStateMachineVersionProps
- type CfnStateMachine_CloudWatchLogsLogGroupProperty
- type CfnStateMachine_LogDestinationProperty
- type CfnStateMachine_LoggingConfigurationProperty
- type CfnStateMachine_S3LocationProperty
- type CfnStateMachine_TagsEntryProperty
- type CfnStateMachine_TracingConfigurationProperty
- type Chain
- type ChainDefinitionBody
- type Choice
- type ChoiceProps
- type ChoiceTransitionOptions
- type Condition
- func Condition_And(conditions ...Condition) Condition
- func Condition_BooleanEquals(variable *string, value *bool) Condition
- func Condition_BooleanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_IsBoolean(variable *string) Condition
- func Condition_IsNotBoolean(variable *string) Condition
- func Condition_IsNotNull(variable *string) Condition
- func Condition_IsNotNumeric(variable *string) Condition
- func Condition_IsNotPresent(variable *string) Condition
- func Condition_IsNotString(variable *string) Condition
- func Condition_IsNotTimestamp(variable *string) Condition
- func Condition_IsNull(variable *string) Condition
- func Condition_IsNumeric(variable *string) Condition
- func Condition_IsPresent(variable *string) Condition
- func Condition_IsString(variable *string) Condition
- func Condition_IsTimestamp(variable *string) Condition
- func Condition_Not(condition Condition) Condition
- func Condition_NumberEquals(variable *string, value *float64) Condition
- func Condition_NumberEqualsJsonPath(variable *string, value *string) Condition
- func Condition_NumberGreaterThan(variable *string, value *float64) Condition
- func Condition_NumberGreaterThanEquals(variable *string, value *float64) Condition
- func Condition_NumberGreaterThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_NumberGreaterThanJsonPath(variable *string, value *string) Condition
- func Condition_NumberLessThan(variable *string, value *float64) Condition
- func Condition_NumberLessThanEquals(variable *string, value *float64) Condition
- func Condition_NumberLessThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_NumberLessThanJsonPath(variable *string, value *string) Condition
- func Condition_Or(conditions ...Condition) Condition
- func Condition_StringEquals(variable *string, value *string) Condition
- func Condition_StringEqualsJsonPath(variable *string, value *string) Condition
- func Condition_StringGreaterThan(variable *string, value *string) Condition
- func Condition_StringGreaterThanEquals(variable *string, value *string) Condition
- func Condition_StringGreaterThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_StringGreaterThanJsonPath(variable *string, value *string) Condition
- func Condition_StringLessThan(variable *string, value *string) Condition
- func Condition_StringLessThanEquals(variable *string, value *string) Condition
- func Condition_StringLessThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_StringLessThanJsonPath(variable *string, value *string) Condition
- func Condition_StringMatches(variable *string, value *string) Condition
- func Condition_TimestampEquals(variable *string, value *string) Condition
- func Condition_TimestampEqualsJsonPath(variable *string, value *string) Condition
- func Condition_TimestampGreaterThan(variable *string, value *string) Condition
- func Condition_TimestampGreaterThanEquals(variable *string, value *string) Condition
- func Condition_TimestampGreaterThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_TimestampGreaterThanJsonPath(variable *string, value *string) Condition
- func Condition_TimestampLessThan(variable *string, value *string) Condition
- func Condition_TimestampLessThanEquals(variable *string, value *string) Condition
- func Condition_TimestampLessThanEqualsJsonPath(variable *string, value *string) Condition
- func Condition_TimestampLessThanJsonPath(variable *string, value *string) Condition
- type Credentials
- type CustomState
- type CustomStateProps
- type DefinitionBody
- func ChainDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
- func ChainDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
- func ChainDefinitionBody_FromString(definition *string) DefinitionBody
- func DefinitionBody_FromChainable(chainable IChainable) DefinitionBody
- func DefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
- func DefinitionBody_FromString(definition *string) DefinitionBody
- func FileDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
- func FileDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
- func FileDefinitionBody_FromString(definition *string) DefinitionBody
- func StringDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
- func StringDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
- func StringDefinitionBody_FromString(definition *string) DefinitionBody
- type DefinitionConfig
- type Errors
- type Fail
- type FailProps
- type FieldUtils
- type FileDefinitionBody
- type FindStateOptions
- type IActivity
- type IChainable
- type INextable
- type IStateMachine
- type InputType
- type IntegrationPattern
- type JitterType
- type JsonPath
- type LogLevel
- type LogOptions
- type Map
- type MapProps
- type Parallel
- type ParallelProps
- type Pass
- type PassProps
- type ProcessorConfig
- type ProcessorMode
- type ProcessorType
- type Result
- type RetryProps
- type ServiceIntegrationPattern
- type SingleStateOptions
- type State
- type StateGraph
- type StateMachine
- type StateMachineFragment
- type StateMachineProps
- type StateMachineType
- type StateProps
- type StateTransitionMetric
- type StringDefinitionBody
- type Succeed
- type SucceedProps
- type TaskInput
- type TaskMetricsConfig
- type TaskRole
- type TaskStateBase
- type TaskStateBaseProps
- type Timeout
- type Wait
- type WaitProps
- type WaitTime
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Activity_IsConstruct ¶
func Activity_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Activity_IsOwnedResource ¶ added in v2.32.0
func Activity_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func Activity_IsResource ¶
func Activity_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func CfnActivity_CFN_RESOURCE_TYPE_NAME ¶
func CfnActivity_CFN_RESOURCE_TYPE_NAME() *string
func CfnActivity_IsCfnElement ¶
func CfnActivity_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnActivity_IsCfnResource ¶
func CfnActivity_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnActivity_IsConstruct ¶
func CfnActivity_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnStateMachineAlias_CFN_RESOURCE_TYPE_NAME ¶ added in v2.86.0
func CfnStateMachineAlias_CFN_RESOURCE_TYPE_NAME() *string
func CfnStateMachineAlias_IsCfnElement ¶ added in v2.86.0
func CfnStateMachineAlias_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnStateMachineAlias_IsCfnResource ¶ added in v2.86.0
func CfnStateMachineAlias_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnStateMachineAlias_IsConstruct ¶ added in v2.86.0
func CfnStateMachineAlias_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnStateMachineVersion_CFN_RESOURCE_TYPE_NAME ¶ added in v2.86.0
func CfnStateMachineVersion_CFN_RESOURCE_TYPE_NAME() *string
func CfnStateMachineVersion_IsCfnElement ¶ added in v2.86.0
func CfnStateMachineVersion_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnStateMachineVersion_IsCfnResource ¶ added in v2.86.0
func CfnStateMachineVersion_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnStateMachineVersion_IsConstruct ¶ added in v2.86.0
func CfnStateMachineVersion_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CfnStateMachine_CFN_RESOURCE_TYPE_NAME ¶
func CfnStateMachine_CFN_RESOURCE_TYPE_NAME() *string
func CfnStateMachine_IsCfnElement ¶
func CfnStateMachine_IsCfnElement(x interface{}) *bool
Returns `true` if a construct is a stack element (i.e. part of the synthesized cloudformation template).
Uses duck-typing instead of `instanceof` to allow stack elements from different versions of this library to be included in the same stack.
Returns: The construct as a stack element or undefined if it is not a stack element.
func CfnStateMachine_IsCfnResource ¶
func CfnStateMachine_IsCfnResource(x interface{}) *bool
Check whether the given object is a CfnResource.
func CfnStateMachine_IsConstruct ¶
func CfnStateMachine_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Choice_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Choice_FindReachableEndStates ¶
func Choice_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Choice_FindReachableStates ¶
func Choice_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Choice_IsConstruct ¶
func Choice_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Choice_PrefixStates ¶
func Choice_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func CustomState_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func CustomState_FindReachableEndStates ¶
func CustomState_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func CustomState_FindReachableStates ¶
func CustomState_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func CustomState_IsConstruct ¶
func CustomState_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func CustomState_PrefixStates ¶
func CustomState_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func Errors_ALL ¶
func Errors_ALL() *string
func Errors_BRANCH_FAILED ¶
func Errors_BRANCH_FAILED() *string
func Errors_HEARTBEAT_TIMEOUT ¶
func Errors_HEARTBEAT_TIMEOUT() *string
func Errors_NO_CHOICE_MATCHED ¶
func Errors_NO_CHOICE_MATCHED() *string
func Errors_PARAMETER_PATH_FAILURE ¶
func Errors_PARAMETER_PATH_FAILURE() *string
func Errors_PERMISSIONS ¶
func Errors_PERMISSIONS() *string
func Errors_RESULT_PATH_MATCH_FAILURE ¶
func Errors_RESULT_PATH_MATCH_FAILURE() *string
func Errors_TASKS_FAILED ¶
func Errors_TASKS_FAILED() *string
func Errors_TIMEOUT ¶
func Errors_TIMEOUT() *string
func Fail_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Fail_FindReachableEndStates ¶
func Fail_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Fail_FindReachableStates ¶
func Fail_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Fail_IsConstruct ¶
func Fail_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Fail_PrefixStates ¶
func Fail_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func FieldUtils_ContainsTaskToken ¶
Returns whether the given task structure contains the TaskToken field anywhere.
The field is considered included if the field itself or one of its containing fields occurs anywhere in the payload.
func FieldUtils_FindReferencedPaths ¶
Return all JSON paths used in the given structure.
func FieldUtils_RenderObject ¶
Render a JSON structure containing fields to the right StepFunctions structure.
func JsonPath_Array ¶ added in v2.10.0
Make an intrinsic States.Array expression.
Combine any number of string literals or JsonPath expressions into an array.
Use this function if the value of an array element directly has to come from a JSON Path expression (either the State object or the Context object).
If the array contains object literals whose values come from a JSON path expression, you do not need to use this function. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayContains ¶ added in v2.50.0
func JsonPath_ArrayContains(array interface{}, value interface{}) *string
Make an intrinsic States.ArrayContains expression.
Use this function to determine if a specific value is present in an array. For example, you can use this function to detect if there was an error in a Map state iteration. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayGetItem ¶ added in v2.50.0
Make an intrinsic States.ArrayGetItem expression.
Use this function to get a specified index's value in an array. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayLength ¶ added in v2.50.0
func JsonPath_ArrayLength(array interface{}) *string
Make an intrinsic States.ArrayLength expression.
Use this function to get the length of an array. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayPartition ¶ added in v2.50.0
Make an intrinsic States.ArrayPartition expression.
Use this function to partition a large array. You can also use this intrinsic to slice the data and then send the payload in smaller chunks. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayRange ¶ added in v2.50.0
Make an intrinsic States.ArrayRange expression.
Use this function to create a new array containing a specific range of elements. The new array can contain up to 1000 elements. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ArrayUnique ¶ added in v2.50.0
func JsonPath_ArrayUnique(array interface{}) *string
Make an intrinsic States.ArrayUnique expression.
Use this function to get the length of an array. Use this function to remove duplicate values from an array and returns an array containing only unique elements. This function takes an array, which can be unsorted, as its sole argument. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_Base64Decode ¶ added in v2.50.0
Make an intrinsic States.Base64Decode expression.
Use this function to decode data based on MIME Base64 decoding scheme. You can use this function to pass data to other AWS services without using a Lambda function. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_Base64Encode ¶ added in v2.50.0
Make an intrinsic States.Base64Encode expression.
Use this function to encode data based on MIME Base64 encoding scheme. You can use this function to pass data to other AWS services without using an AWS Lambda function. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_DISCARD ¶
func JsonPath_DISCARD() *string
func JsonPath_EntireContext ¶
func JsonPath_EntireContext() *string
func JsonPath_EntirePayload ¶
func JsonPath_EntirePayload() *string
func JsonPath_ExecutionId ¶ added in v2.82.0
func JsonPath_ExecutionId() *string
func JsonPath_ExecutionInput ¶ added in v2.82.0
func JsonPath_ExecutionInput() *string
func JsonPath_ExecutionName ¶ added in v2.82.0
func JsonPath_ExecutionName() *string
func JsonPath_ExecutionRoleArn ¶ added in v2.82.0
func JsonPath_ExecutionRoleArn() *string
func JsonPath_ExecutionStartTime ¶ added in v2.82.0
func JsonPath_ExecutionStartTime() *string
func JsonPath_Format ¶ added in v2.10.0
Make an intrinsic States.Format expression.
This can be used to embed JSON Path variables inside a format string.
For example:
```ts sfn.JsonPath.format('Hello, my name is {}.', sfn.JsonPath.stringAt('$.name')) ```. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_Hash ¶ added in v2.50.0
Make an intrinsic States.Hash expression.
Use this function to calculate the hash value of a given input. You can use this function to pass data to other AWS services without using a Lambda function. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_IsEncodedJsonPath ¶
Determines if the indicated string is an encoded JSON path.
func JsonPath_JsonMerge ¶ added in v2.50.0
func JsonPath_JsonMerge(value1 interface{}, value2 interface{}) *string
Make an intrinsic States.JsonMerge expression.
Use this function to merge two JSON objects into a single object. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_JsonToString ¶ added in v2.10.0
func JsonPath_JsonToString(value interface{}) *string
Make an intrinsic States.JsonToString expression.
During the execution of the Step Functions state machine, encode the given object into a JSON string.
For example:
```ts sfn.JsonPath.jsonToString(sfn.JsonPath.objectAt('$.someObject')) ```. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_ListAt ¶
Instead of using a literal string list, get the value from a JSON path.
func JsonPath_MathAdd ¶ added in v2.50.0
Make an intrinsic States.MathAdd expression.
Use this function to return the sum of two numbers. For example, you can use this function to increment values inside a loop without invoking a Lambda function. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_MathRandom ¶ added in v2.50.0
Make an intrinsic States.MathRandom expression.
Use this function to return a random number between the specified start and end number. For example, you can use this function to distribute a specific task between two or more resources. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_NumberAt ¶
Instead of using a literal number, get the value from a JSON path.
func JsonPath_ObjectAt ¶ added in v2.10.0
func JsonPath_ObjectAt(path *string) awscdk.IResolvable
Reference a complete (complex) object in a JSON path location.
func JsonPath_StateEnteredTime ¶ added in v2.82.0
func JsonPath_StateEnteredTime() *string
func JsonPath_StateMachineId ¶ added in v2.82.0
func JsonPath_StateMachineId() *string
func JsonPath_StateMachineName ¶ added in v2.82.0
func JsonPath_StateMachineName() *string
func JsonPath_StateName ¶ added in v2.82.0
func JsonPath_StateName() *string
func JsonPath_StateRetryCount ¶ added in v2.82.0
func JsonPath_StateRetryCount() *string
func JsonPath_StringAt ¶
Instead of using a literal string, get the value from a JSON path.
func JsonPath_StringSplit ¶ added in v2.50.0
Make an intrinsic States.StringSplit expression.
Use this function to split a string into an array of values. This function takes two arguments.The first argument is a string and the second argument is the delimiting character that the function will use to divide the string. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_StringToJson ¶ added in v2.10.0
func JsonPath_StringToJson(jsonString *string) awscdk.IResolvable
Make an intrinsic States.StringToJson expression.
During the execution of the Step Functions state machine, parse the given argument as JSON into its object form.
For example:
```ts sfn.JsonPath.stringToJson(sfn.JsonPath.stringAt('$.someJsonBody')) ```. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func JsonPath_TaskToken ¶
func JsonPath_TaskToken() *string
func JsonPath_Uuid ¶ added in v2.50.0
func JsonPath_Uuid() *string
Make an intrinsic States.UUID expression.
Use this function to return a version 4 universally unique identifier (v4 UUID) generated using random numbers. For example, you can use this function to call other AWS services or resources that need a UUID parameter or insert items in a DynamoDB table. See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-intrinsic-functions.html
func Map_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Map_FindReachableEndStates ¶
func Map_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Map_FindReachableStates ¶
func Map_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Map_IsConstruct ¶
func Map_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Map_PrefixStates ¶
func Map_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func NewActivity_Override ¶
func NewActivity_Override(a Activity, scope constructs.Construct, id *string, props *ActivityProps)
func NewCfnActivity_Override ¶
func NewCfnActivity_Override(c CfnActivity, scope constructs.Construct, id *string, props *CfnActivityProps)
func NewCfnStateMachineAlias_Override ¶ added in v2.86.0
func NewCfnStateMachineAlias_Override(c CfnStateMachineAlias, scope constructs.Construct, id *string, props *CfnStateMachineAliasProps)
func NewCfnStateMachineVersion_Override ¶ added in v2.86.0
func NewCfnStateMachineVersion_Override(c CfnStateMachineVersion, scope constructs.Construct, id *string, props *CfnStateMachineVersionProps)
func NewCfnStateMachine_Override ¶
func NewCfnStateMachine_Override(c CfnStateMachine, scope constructs.Construct, id *string, props *CfnStateMachineProps)
func NewChainDefinitionBody_Override ¶ added in v2.85.0
func NewChainDefinitionBody_Override(c ChainDefinitionBody, chainable IChainable)
func NewChoice_Override ¶
func NewChoice_Override(c Choice, scope constructs.Construct, id *string, props *ChoiceProps)
func NewCondition_Override ¶
func NewCondition_Override(c Condition)
func NewCustomState_Override ¶
func NewCustomState_Override(c CustomState, scope constructs.Construct, id *string, props *CustomStateProps)
func NewDefinitionBody_Override ¶ added in v2.85.0
func NewDefinitionBody_Override(d DefinitionBody)
func NewErrors_Override ¶
func NewErrors_Override(e Errors)
func NewFail_Override ¶
func NewFileDefinitionBody_Override ¶ added in v2.85.0
func NewFileDefinitionBody_Override(f FileDefinitionBody, path *string, options *awss3assets.AssetOptions)
func NewMap_Override ¶
func NewParallel_Override ¶
func NewParallel_Override(p Parallel, scope constructs.Construct, id *string, props *ParallelProps)
func NewPass_Override ¶
func NewResult_Override ¶
func NewResult_Override(r Result, value interface{})
func NewStateGraph_Override ¶
func NewStateGraph_Override(s StateGraph, startState State, graphDescription *string)
func NewStateMachineFragment_Override ¶
func NewStateMachineFragment_Override(s StateMachineFragment, scope constructs.Construct, id *string)
Creates a new construct node.
func NewStateMachine_Override ¶
func NewStateMachine_Override(s StateMachine, scope constructs.Construct, id *string, props *StateMachineProps)
func NewStateTransitionMetric_Override ¶
func NewStateTransitionMetric_Override(s StateTransitionMetric)
func NewState_Override ¶
func NewState_Override(s State, scope constructs.Construct, id *string, props *StateProps)
func NewStringDefinitionBody_Override ¶ added in v2.85.0
func NewStringDefinitionBody_Override(s StringDefinitionBody, body *string)
func NewSucceed_Override ¶
func NewSucceed_Override(s Succeed, scope constructs.Construct, id *string, props *SucceedProps)
func NewTaskRole_Override ¶ added in v2.54.0
func NewTaskRole_Override(t TaskRole)
func NewTaskStateBase_Override ¶
func NewTaskStateBase_Override(t TaskStateBase, scope constructs.Construct, id *string, props *TaskStateBaseProps)
func NewTimeout_Override ¶ added in v2.63.0
func NewTimeout_Override(t Timeout)
func NewWait_Override ¶
func Parallel_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Parallel_FindReachableEndStates ¶
func Parallel_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Parallel_FindReachableStates ¶
func Parallel_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Parallel_IsConstruct ¶
func Parallel_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Parallel_PrefixStates ¶
func Parallel_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func Pass_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Pass_FindReachableEndStates ¶
func Pass_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Pass_FindReachableStates ¶
func Pass_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Pass_IsConstruct ¶
func Pass_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Pass_PrefixStates ¶
func Pass_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func StateMachineFragment_IsConstruct ¶
func StateMachineFragment_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func StateMachine_IsConstruct ¶
func StateMachine_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func StateMachine_IsOwnedResource ¶ added in v2.32.0
func StateMachine_IsOwnedResource(construct constructs.IConstruct) *bool
Returns true if the construct was created by CDK, and false otherwise.
func StateMachine_IsResource ¶
func StateMachine_IsResource(construct constructs.IConstruct) *bool
Check whether the given construct is a Resource.
func StateTransitionMetric_Metric ¶
func StateTransitionMetric_Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Return the given named metric for the service's state transition metrics. Default: average over 5 minutes.
func StateTransitionMetric_MetricConsumedCapacity ¶
func StateTransitionMetric_MetricConsumedCapacity(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of available state transitions per second. Default: average over 5 minutes.
func StateTransitionMetric_MetricProvisionedBucketSize ¶
func StateTransitionMetric_MetricProvisionedBucketSize(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of available state transitions. Default: average over 5 minutes.
func StateTransitionMetric_MetricProvisionedRefillRate ¶
func StateTransitionMetric_MetricProvisionedRefillRate(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the provisioned steady-state execution rate. Default: average over 5 minutes.
func StateTransitionMetric_MetricThrottledEvents ¶
func StateTransitionMetric_MetricThrottledEvents(props *awscloudwatch.MetricOptions) awscloudwatch.Metric
Metric for the number of throttled state transitions. Default: sum over 5 minutes.
func State_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func State_FindReachableEndStates ¶
func State_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func State_FindReachableStates ¶
func State_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func State_IsConstruct ¶
func State_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func State_PrefixStates ¶
func State_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func Succeed_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Succeed_FindReachableEndStates ¶
func Succeed_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Succeed_FindReachableStates ¶
func Succeed_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Succeed_IsConstruct ¶
func Succeed_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Succeed_PrefixStates ¶
func Succeed_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func TaskStateBase_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func TaskStateBase_FindReachableEndStates ¶
func TaskStateBase_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func TaskStateBase_FindReachableStates ¶
func TaskStateBase_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func TaskStateBase_IsConstruct ¶
func TaskStateBase_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func TaskStateBase_PrefixStates ¶
func TaskStateBase_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
func Wait_FilterNextables ¶
Return only the states that allow chaining from an array of states.
func Wait_FindReachableEndStates ¶
func Wait_FindReachableEndStates(start State, options *FindStateOptions) *[]State
Find the set of end states states reachable through transitions from the given start state.
func Wait_FindReachableStates ¶
func Wait_FindReachableStates(start State, options *FindStateOptions) *[]State
Find the set of states reachable through transitions from the given start state.
This does not retrieve states from within sub-graphs, such as states within a Parallel state's branch.
func Wait_IsConstruct ¶
func Wait_IsConstruct(x interface{}) *bool
Checks if `x` is a construct.
Use this method instead of `instanceof` to properly detect `Construct` instances, even when the construct library is symlinked.
Explanation: in JavaScript, multiple copies of the `constructs` library on disk are seen as independent, completely different libraries. As a consequence, the class `Construct` in each copy of the `constructs` library is seen as a different class, and an instance of one class will not test as `instanceof` the other class. `npm install` will not create installations like this, but users may manually symlink construct libraries together or use a monorepo tool: in those cases, multiple copies of the `constructs` library can be accidentally installed, and `instanceof` will behave unpredictably. It is safest to avoid using `instanceof`, and using this type-testing method instead.
Returns: true if `x` is an object created from a class which extends `Construct`.
func Wait_PrefixStates ¶
func Wait_PrefixStates(root constructs.IConstruct, prefix *string)
Add a prefix to the stateId of all States found in a construct tree.
Types ¶
type Activity ¶
type Activity interface { awscdk.Resource IActivity // The ARN of the activity. ActivityArn() *string // The name of the activity. ActivityName() *string // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // The stack in which this resource is defined. Stack() awscdk.Stack // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grant the given identity permissions on this Activity. Grant(identity awsiam.IGrantable, actions ...*string) awsiam.Grant // Return the given named metric for this Activity. // Default: sum over 5 minutes. // Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity fails. // Default: sum over 5 minutes. // MetricFailed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times the heartbeat times out for this activity. // Default: sum over 5 minutes. // MetricHeartbeatTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, between the time the activity starts and the time it closes. // Default: average over 5 minutes. // MetricRunTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity is scheduled. // Default: sum over 5 minutes. // MetricScheduled(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, for which the activity stays in the schedule state. // Default: average over 5 minutes. // MetricScheduleTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity is started. // Default: sum over 5 minutes. // MetricStarted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity succeeds. // Default: sum over 5 minutes. // MetricSucceeded(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, between the time the activity is scheduled and the time it closes. // Default: average over 5 minutes. // MetricTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity times out. // Default: sum over 5 minutes. // MetricTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string }
Define a new Step Functions Activity.
Example:
activity := sfn.NewActivity(this, jsii.String("Activity")) role := iam.NewRole(this, jsii.String("Role"), &RoleProps{ AssumedBy: iam.NewServicePrincipal(jsii.String("lambda.amazonaws.com")), }) activity.Grant(role, jsii.String("states:SendTaskSuccess"))
func NewActivity ¶
func NewActivity(scope constructs.Construct, id *string, props *ActivityProps) Activity
type ActivityProps ¶
type ActivityProps struct { // The name for this activity. // Default: - If not supplied, a name is generated. // ActivityName *string `field:"optional" json:"activityName" yaml:"activityName"` }
Properties for defining a new Step Functions Activity.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" activityProps := &ActivityProps{ ActivityName: jsii.String("activityName"), }
type AfterwardsOptions ¶
type AfterwardsOptions struct { // Whether to include error handling states. // // If this is true, all states which are error handlers (added through 'onError') // and states reachable via error handlers will be included as well. // Default: false. // IncludeErrorHandlers *bool `field:"optional" json:"includeErrorHandlers" yaml:"includeErrorHandlers"` // Whether to include the default/otherwise transition for the current Choice state. // // If this is true and the current Choice does not have a default outgoing // transition, one will be added included when .next() is called on the chain. // Default: false. // IncludeOtherwise *bool `field:"optional" json:"includeOtherwise" yaml:"includeOtherwise"` }
Options for selecting the choice paths.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" afterwardsOptions := &AfterwardsOptions{ IncludeErrorHandlers: jsii.Boolean(false), IncludeOtherwise: jsii.Boolean(false), }
type CatchProps ¶
type CatchProps struct { // Errors to recover from by going to the given state. // // A list of error strings to retry, which can be either predefined errors // (for example Errors.NoChoiceMatched) or a self-defined error. // Default: All errors. // Errors *[]*string `field:"optional" json:"errors" yaml:"errors"` // JSONPath expression to indicate where to inject the error data. // // May also be the special value JsonPath.DISCARD, which will cause the error // data to be discarded. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` }
Error handler details.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" catchProps := &CatchProps{ Errors: []*string{ jsii.String("errors"), }, ResultPath: jsii.String("resultPath"), }
type CfnActivity ¶
type CfnActivity interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // Returns the ARN of the resource. AttrArn() *string // Returns the name of the activity. For example:. // // `{ "Fn::GetAtt": ["MyActivity", "Name"] }` // // Returns a value similar to the following: // // `myActivity` // // For more information about using `Fn::GetAtt` , see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) . AttrName() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of the activity. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The list of tags to add to a resource. TagsRaw() *[]*CfnActivity_TagsEntryProperty SetTagsRaw(val *[]*CfnActivity_TagsEntryProperty) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
An activity is a task that you write in any programming language and host on any machine that has access to AWS Step Functions .
Activities must poll Step Functions using the `GetActivityTask` API action and respond using `SendTask*` API actions. This function lets Step Functions know the existence of your activity and returns an identifier for use in a state machine and when polling from the activity.
For information about creating an activity, see [Creating an Activity State Machine](https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-creating-activity-state-machine.html) in the *AWS Step Functions Developer Guide* and [CreateActivity](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateActivity.html) in the *AWS Step Functions API Reference* .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnActivity := awscdk.Aws_stepfunctions.NewCfnActivity(this, jsii.String("MyCfnActivity"), &CfnActivityProps{ Name: jsii.String("name"), // the properties below are optional Tags: []tagsEntryProperty{ &tagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, })
func NewCfnActivity ¶
func NewCfnActivity(scope constructs.Construct, id *string, props *CfnActivityProps) CfnActivity
type CfnActivityProps ¶
type CfnActivityProps struct { // The name of the activity. // // A name must *not* contain: // // - white space // - brackets `< > { } [ ]` // - wildcard characters `? *` // - special characters `" # % \ ^ | ~ ` $ & , ; : /` // - control characters ( `U+0000-001F` , `U+007F-009F` ) // // To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html#cfn-stepfunctions-activity-name // Name *string `field:"required" json:"name" yaml:"name"` // The list of tags to add to a resource. // // Tags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-activity.html#cfn-stepfunctions-activity-tags // Tags *[]*CfnActivity_TagsEntryProperty `field:"optional" json:"tags" yaml:"tags"` }
Properties for defining a `CfnActivity`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnActivityProps := &CfnActivityProps{ Name: jsii.String("name"), // the properties below are optional Tags: []tagsEntryProperty{ &tagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, }
type CfnActivity_TagsEntryProperty ¶
type CfnActivity_TagsEntryProperty struct { // The `key` for a key-value pair in a tag entry. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html#cfn-stepfunctions-activity-tagsentry-key // Key *string `field:"required" json:"key" yaml:"key"` // The `value` for a key-value pair in a tag entry. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-activity-tagsentry.html#cfn-stepfunctions-activity-tagsentry-value // Value *string `field:"required" json:"value" yaml:"value"` }
The `TagsEntry` property specifies *tags* to identify an activity.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" tagsEntryProperty := &TagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }
type CfnStateMachine ¶
type CfnStateMachine interface { awscdk.CfnResource awscdk.IInspectable awscdk.ITaggable // Returns the ARN of the resource. AttrArn() *string // Returns the name of the state machine. For example:. // // `{ "Fn::GetAtt": ["MyStateMachine", "Name"] }` // // Returns the name of your state machine: // // `HelloWorld-StateMachine` // // If you did not specify the name it will be similar to the following: // // `MyStateMachine-1234abcdefgh` // // For more information about using `Fn::GetAtt` , see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html) . AttrName() *string // Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. AttrStateMachineRevisionId() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The Amazon States Language definition of the state machine. Definition() interface{} SetDefinition(val interface{}) // The name of the S3 bucket where the state machine definition is stored. DefinitionS3Location() interface{} SetDefinitionS3Location(val interface{}) // The Amazon States Language definition of the state machine. DefinitionString() *string SetDefinitionString(val *string) // A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. DefinitionSubstitutions() interface{} SetDefinitionSubstitutions(val interface{}) // Defines what execution history events are logged and where they are logged. LoggingConfiguration() interface{} SetLoggingConfiguration(val interface{}) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The Amazon Resource Name (ARN) of the IAM role to use for this state machine. RoleArn() *string SetRoleArn(val *string) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The name of the state machine. StateMachineName() *string SetStateMachineName(val *string) // Determines whether a `STANDARD` or `EXPRESS` state machine is created. StateMachineType() *string SetStateMachineType(val *string) // Tag Manager which manages the tags for this resource. Tags() awscdk.TagManager // The list of tags to add to a resource. TagsRaw() *[]*CfnStateMachine_TagsEntryProperty SetTagsRaw(val *[]*CfnStateMachine_TagsEntryProperty) // Selects whether or not the state machine's AWS X-Ray tracing is enabled. TracingConfiguration() interface{} SetTracingConfiguration(val interface{}) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Provisions a state machine.
A state machine consists of a collection of states that can do work ( `Task` states), determine to which states to transition next ( `Choice` states), stop an execution with an error ( `Fail` states), and so on. State machines are specified using a JSON-based, structured language.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var definition interface{} cfnStateMachine := awscdk.Aws_stepfunctions.NewCfnStateMachine(this, jsii.String("MyCfnStateMachine"), &CfnStateMachineProps{ RoleArn: jsii.String("roleArn"), // the properties below are optional Definition: definition, DefinitionS3Location: &S3LocationProperty{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }, DefinitionString: jsii.String("definitionString"), DefinitionSubstitutions: map[string]*string{ "definitionSubstitutionsKey": jsii.String("definitionSubstitutions"), }, LoggingConfiguration: &LoggingConfigurationProperty{ Destinations: []interface{}{ &LogDestinationProperty{ CloudWatchLogsLogGroup: &CloudWatchLogsLogGroupProperty{ LogGroupArn: jsii.String("logGroupArn"), }, }, }, IncludeExecutionData: jsii.Boolean(false), Level: jsii.String("level"), }, StateMachineName: jsii.String("stateMachineName"), StateMachineType: jsii.String("stateMachineType"), Tags: []tagsEntryProperty{ &tagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, TracingConfiguration: &TracingConfigurationProperty{ Enabled: jsii.Boolean(false), }, })
func NewCfnStateMachine ¶
func NewCfnStateMachine(scope constructs.Construct, id *string, props *CfnStateMachineProps) CfnStateMachine
type CfnStateMachineAlias ¶ added in v2.86.0
type CfnStateMachineAlias interface { awscdk.CfnResource awscdk.IInspectable // Returns the ARN of the state machine alias. // // For example, `arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:PROD` . AttrArn() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // The settings that enable gradual state machine deployments. DeploymentPreference() interface{} SetDeploymentPreference(val interface{}) // An optional description of the state machine alias. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The name of the state machine alias. Name() *string SetName(val *string) // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The routing configuration of an alias. RoutingConfiguration() interface{} SetRoutingConfiguration(val interface{}) // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Represents a state machine [alias](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-alias.html) . An alias routes traffic to one or two versions of the same state machine.
You can create up to 100 aliases for each state machine.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStateMachineAlias := awscdk.Aws_stepfunctions.NewCfnStateMachineAlias(this, jsii.String("MyCfnStateMachineAlias"), &CfnStateMachineAliasProps{ DeploymentPreference: &DeploymentPreferenceProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Type: jsii.String("type"), // the properties below are optional Alarms: []*string{ jsii.String("alarms"), }, Interval: jsii.Number(123), Percentage: jsii.Number(123), }, Description: jsii.String("description"), Name: jsii.String("name"), RoutingConfiguration: []interface{}{ &RoutingConfigurationVersionProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Weight: jsii.Number(123), }, }, })
func NewCfnStateMachineAlias ¶ added in v2.86.0
func NewCfnStateMachineAlias(scope constructs.Construct, id *string, props *CfnStateMachineAliasProps) CfnStateMachineAlias
type CfnStateMachineAliasProps ¶ added in v2.86.0
type CfnStateMachineAliasProps struct { // The settings that enable gradual state machine deployments. // // These settings include [Alarms](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-alarms) , [Interval](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-interval) , [Percentage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-percentage) , [StateMachineVersionArn](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-statemachineversionarn) , and [Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-type) . // // CloudFormation automatically shifts traffic from the version an alias currently points to, to a new state machine version that you specify. // // > `RoutingConfiguration` and `DeploymentPreference` are mutually exclusive properties. You must define only one of these properties. // // Based on the type of deployment you want to perform, you can specify one of the following settings: // // - `LINEAR` - Shifts traffic to the new version in equal increments with an equal number of minutes between each increment. // // For example, if you specify the increment percent as `20` with an interval of `600` minutes, this deployment increases traffic by 20 percent every 600 minutes until the new version receives 100 percent of the traffic. This deployment immediately rolls back the new version if any Amazon CloudWatch alarms are triggered. // - `ALL_AT_ONCE` - Shifts 100 percent of traffic to the new version immediately. CloudFormation monitors the new version and rolls it back automatically to the previous version if any CloudWatch alarms are triggered. // - `CANARY` - Shifts traffic in two increments. // // In the first increment, a small percentage of traffic, for example, 10 percent is shifted to the new version. In the second increment, before a specified time interval in seconds gets over, the remaining traffic is shifted to the new version. The shift to the new version for the remaining traffic takes place only if no CloudWatch alarms are triggered during the specified time interval. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-deploymentpreference // DeploymentPreference interface{} `field:"optional" json:"deploymentPreference" yaml:"deploymentPreference"` // An optional description of the state machine alias. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-description // Description *string `field:"optional" json:"description" yaml:"description"` // The name of the state machine alias. // // If you don't provide a name, it uses an automatically generated name based on the logical ID. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-name // Name *string `field:"optional" json:"name" yaml:"name"` // The routing configuration of an alias. // // Routing configuration splits [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html) requests between one or two versions of the same state machine. // // Use `RoutingConfiguration` if you want to explicitly set the alias [weights](https://docs.aws.amazon.com/step-functions/latest/apireference/API_RoutingConfigurationListItem.html#StepFunctions-Type-RoutingConfigurationListItem-weight) . Weight is the percentage of traffic you want to route to a state machine version. // // > `RoutingConfiguration` and `DeploymentPreference` are mutually exclusive properties. You must define only one of these properties. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachinealias.html#cfn-stepfunctions-statemachinealias-routingconfiguration // RoutingConfiguration interface{} `field:"optional" json:"routingConfiguration" yaml:"routingConfiguration"` }
Properties for defining a `CfnStateMachineAlias`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStateMachineAliasProps := &CfnStateMachineAliasProps{ DeploymentPreference: &DeploymentPreferenceProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Type: jsii.String("type"), // the properties below are optional Alarms: []*string{ jsii.String("alarms"), }, Interval: jsii.Number(123), Percentage: jsii.Number(123), }, Description: jsii.String("description"), Name: jsii.String("name"), RoutingConfiguration: []interface{}{ &RoutingConfigurationVersionProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Weight: jsii.Number(123), }, }, }
type CfnStateMachineAlias_DeploymentPreferenceProperty ¶ added in v2.86.0
type CfnStateMachineAlias_DeploymentPreferenceProperty struct { // The Amazon Resource Name (ARN) of the [`AWS::StepFunctions::StateMachineVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html) resource that will be the final version to which the alias points to when the traffic shifting is complete. // // While performing gradual deployments, you can only provide a single state machine version ARN. To explicitly set version weights in a CloudFormation template, use `RoutingConfiguration` instead. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-statemachineversionarn // StateMachineVersionArn *string `field:"required" json:"stateMachineVersionArn" yaml:"stateMachineVersionArn"` // The type of deployment you want to perform. You can specify one of the following types:. // // - `LINEAR` - Shifts traffic to the new version in equal increments with an equal number of minutes between each increment. // // For example, if you specify the increment percent as `20` with an interval of `600` minutes, this deployment increases traffic by 20 percent every 600 minutes until the new version receives 100 percent of the traffic. This deployment immediately rolls back the new version if any CloudWatch alarms are triggered. // - `ALL_AT_ONCE` - Shifts 100 percent of traffic to the new version immediately. CloudFormation monitors the new version and rolls it back automatically to the previous version if any CloudWatch alarms are triggered. // - `CANARY` - Shifts traffic in two increments. // // In the first increment, a small percentage of traffic, for example, 10 percent is shifted to the new version. In the second increment, before a specified time interval in seconds gets over, the remaining traffic is shifted to the new version. The shift to the new version for the remaining traffic takes place only if no CloudWatch alarms are triggered during the specified time interval. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-type // Type *string `field:"required" json:"type" yaml:"type"` // A list of Amazon CloudWatch alarms to be monitored during the deployment. // // The deployment fails and rolls back if any of these alarms go into the `ALARM` state. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-alarms // Alarms *[]*string `field:"optional" json:"alarms" yaml:"alarms"` // The time in minutes between each traffic shifting increment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-interval // Interval *float64 `field:"optional" json:"interval" yaml:"interval"` // The percentage of traffic to shift to the new version in each increment. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-deploymentpreference.html#cfn-stepfunctions-statemachinealias-deploymentpreference-percentage // Percentage *float64 `field:"optional" json:"percentage" yaml:"percentage"` }
Enables gradual state machine deployments.
CloudFormation automatically shifts traffic from the version the alias currently points to, to a new state machine version that you specify.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" deploymentPreferenceProperty := &DeploymentPreferenceProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Type: jsii.String("type"), // the properties below are optional Alarms: []*string{ jsii.String("alarms"), }, Interval: jsii.Number(123), Percentage: jsii.Number(123), }
type CfnStateMachineAlias_RoutingConfigurationVersionProperty ¶ added in v2.86.0
type CfnStateMachineAlias_RoutingConfigurationVersionProperty struct { // The Amazon Resource Name (ARN) that identifies one or two state machine versions defined in the routing configuration. // // If you specify the ARN of a second version, it must belong to the same state machine as the first version. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-routingconfigurationversion.html#cfn-stepfunctions-statemachinealias-routingconfigurationversion-statemachineversionarn // StateMachineVersionArn *string `field:"required" json:"stateMachineVersionArn" yaml:"stateMachineVersionArn"` // The percentage of traffic you want to route to the state machine version. // // The sum of the weights in the routing configuration must be equal to 100. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachinealias-routingconfigurationversion.html#cfn-stepfunctions-statemachinealias-routingconfigurationversion-weight // Weight *float64 `field:"required" json:"weight" yaml:"weight"` }
The state machine version to which you want to route the execution traffic.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" routingConfigurationVersionProperty := &RoutingConfigurationVersionProperty{ StateMachineVersionArn: jsii.String("stateMachineVersionArn"), Weight: jsii.Number(123), }
type CfnStateMachineProps ¶
type CfnStateMachineProps struct { // The Amazon Resource Name (ARN) of the IAM role to use for this state machine. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-rolearn // RoleArn *string `field:"required" json:"roleArn" yaml:"roleArn"` // The Amazon States Language definition of the state machine. // // The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definition // Definition interface{} `field:"optional" json:"definition" yaml:"definition"` // The name of the S3 bucket where the state machine definition is stored. // // The state machine definition must be a JSON or YAML file. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitions3location // DefinitionS3Location interface{} `field:"optional" json:"definitionS3Location" yaml:"definitionS3Location"` // The Amazon States Language definition of the state machine. // // The state machine definition must be in JSON. See [Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionstring // DefinitionString *string `field:"optional" json:"definitionString" yaml:"definitionString"` // A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. // // This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map. // // Substitutions must follow the syntax: `${key_name}` or `${variable_1,variable_2,...}` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-definitionsubstitutions // DefinitionSubstitutions interface{} `field:"optional" json:"definitionSubstitutions" yaml:"definitionSubstitutions"` // Defines what execution history events are logged and where they are logged. // // > By default, the `level` is set to `OFF` . For more information see [Log Levels](https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html) in the AWS Step Functions User Guide. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-loggingconfiguration // LoggingConfiguration interface{} `field:"optional" json:"loggingConfiguration" yaml:"loggingConfiguration"` // The name of the state machine. // // A name must *not* contain: // // - white space // - brackets `< > { } [ ]` // - wildcard characters `? *` // - special characters `" # % \ ^ | ~ ` $ & , ; : /` // - control characters ( `U+0000-001F` , `U+007F-009F` ) // // > If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinename // StateMachineName *string `field:"optional" json:"stateMachineName" yaml:"stateMachineName"` // Determines whether a `STANDARD` or `EXPRESS` state machine is created. // // The default is `STANDARD` . You cannot update the `type` of a state machine once it has been created. For more information on `STANDARD` and `EXPRESS` workflows, see [Standard Versus Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) in the AWS Step Functions Developer Guide. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-statemachinetype // StateMachineType *string `field:"optional" json:"stateMachineType" yaml:"stateMachineType"` // The list of tags to add to a resource. // // Tags may only contain Unicode letters, digits, white space, or these symbols: `_ . : / = + - // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tags // Tags *[]*CfnStateMachine_TagsEntryProperty `field:"optional" json:"tags" yaml:"tags"` // Selects whether or not the state machine's AWS X-Ray tracing is enabled. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachine.html#cfn-stepfunctions-statemachine-tracingconfiguration // TracingConfiguration interface{} `field:"optional" json:"tracingConfiguration" yaml:"tracingConfiguration"` }
Properties for defining a `CfnStateMachine`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var definition interface{} cfnStateMachineProps := &CfnStateMachineProps{ RoleArn: jsii.String("roleArn"), // the properties below are optional Definition: definition, DefinitionS3Location: &S3LocationProperty{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }, DefinitionString: jsii.String("definitionString"), DefinitionSubstitutions: map[string]*string{ "definitionSubstitutionsKey": jsii.String("definitionSubstitutions"), }, LoggingConfiguration: &LoggingConfigurationProperty{ Destinations: []interface{}{ &LogDestinationProperty{ CloudWatchLogsLogGroup: &CloudWatchLogsLogGroupProperty{ LogGroupArn: jsii.String("logGroupArn"), }, }, }, IncludeExecutionData: jsii.Boolean(false), Level: jsii.String("level"), }, StateMachineName: jsii.String("stateMachineName"), StateMachineType: jsii.String("stateMachineType"), Tags: []tagsEntryProperty{ &tagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }, }, TracingConfiguration: &TracingConfigurationProperty{ Enabled: jsii.Boolean(false), }, }
type CfnStateMachineVersion ¶ added in v2.86.0
type CfnStateMachineVersion interface { awscdk.CfnResource awscdk.IInspectable // Returns the ARN of the state machine version. // // For example, `arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1` . AttrArn() *string // Options for this resource, such as condition, update policy etc. CfnOptions() awscdk.ICfnResourceOptions CfnProperties() *map[string]interface{} // AWS resource type. CfnResourceType() *string // Returns: the stack trace of the point where this Resource was created from, sourced // from the +metadata+ entry typed +aws:cdk:logicalId+, and with the bottom-most // node +internal+ entries filtered. CreationStack() *[]*string // An optional description of the state machine version. Description() *string SetDescription(val *string) // The logical ID for this CloudFormation stack element. // // The logical ID of the element // is calculated from the path of the resource node in the construct tree. // // To override this value, use `overrideLogicalId(newLogicalId)`. // // Returns: the logical ID as a stringified token. This value will only get // resolved during synthesis. LogicalId() *string // The tree node. Node() constructs.Node // Return a string that will be resolved to a CloudFormation `{ Ref }` for this element. // // If, by any chance, the intrinsic reference of a resource is not a string, you could // coerce it to an IResolvable through `Lazy.any({ produce: resource.ref })`. Ref() *string // The stack in which this element is defined. // // CfnElements must be defined within a stack scope (directly or indirectly). Stack() awscdk.Stack // The Amazon Resource Name (ARN) of the state machine. StateMachineArn() *string SetStateMachineArn(val *string) // Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. StateMachineRevisionId() *string SetStateMachineRevisionId(val *string) // Deprecated. // Deprecated: use `updatedProperties` // // Return properties modified after initiation // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperites() *map[string]interface{} // Return properties modified after initiation. // // Resources that expose mutable properties should override this function to // collect and return the properties object for this resource. UpdatedProperties() *map[string]interface{} // Syntactic sugar for `addOverride(path, undefined)`. AddDeletionOverride(path *string) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // // This can be used for resources across stacks (or nested stack) boundaries // and the dependency will automatically be transferred to the relevant scope. AddDependency(target awscdk.CfnResource) // Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned. // Deprecated: use addDependency. AddDependsOn(target awscdk.CfnResource) // Add a value to the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // AddMetadata(key *string, value interface{}) // Adds an override to the synthesized CloudFormation resource. // // To add a // property override, either use `addPropertyOverride` or prefix `path` with // "Properties." (i.e. `Properties.TopicName`). // // If the override is nested, separate each nested level using a dot (.) in the path parameter. // If there is an array as part of the nesting, specify the index in the path. // // To include a literal `.` in the property name, prefix with a `\`. In most // programming languages you will need to write this as `"\\."` because the // `\` itself will need to be escaped. // // For example, // “`typescript // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes', ['myattribute']); // cfnResource.addOverride('Properties.GlobalSecondaryIndexes.1.ProjectionType', 'INCLUDE'); // “` // would add the overrides // “`json // "Properties": { // "GlobalSecondaryIndexes": [ // { // "Projection": { // "NonKeyAttributes": [ "myattribute" ] // ... // } // ... // }, // { // "ProjectionType": "INCLUDE" // ... // }, // ] // ... // } // “` // // The `value` argument to `addOverride` will not be processed or translated // in any way. Pass raw JSON values in here with the correct capitalization // for CloudFormation. If you pass CDK classes or structs, they will be // rendered with lowercased key names, and CloudFormation will reject the // template. AddOverride(path *string, value interface{}) // Adds an override that deletes the value of a property from the resource definition. AddPropertyDeletionOverride(propertyPath *string) // Adds an override to a resource property. // // Syntactic sugar for `addOverride("Properties.<...>", value)`. AddPropertyOverride(propertyPath *string, value interface{}) // Sets the deletion policy of the resource based on the removal policy specified. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). In some // cases, a snapshot can be taken of the resource prior to deletion // (`RemovalPolicy.SNAPSHOT`). A list of resources that support this policy // can be found in the following link:. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html#aws-attribute-deletionpolicy-options // ApplyRemovalPolicy(policy awscdk.RemovalPolicy, options *awscdk.RemovalPolicyOptions) // Returns a token for an runtime attribute of this resource. // // Ideally, use generated attribute accessors (e.g. `resource.arn`), but this can be used for future compatibility // in case there is no generated attribute. GetAtt(attributeName *string, typeHint awscdk.ResolutionTypeHint) awscdk.Reference // Retrieve a value value from the CloudFormation Resource Metadata. // See: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/metadata-section-structure.html // // Note that this is a different set of metadata from CDK node metadata; this // metadata ends up in the stack template under the resource, whereas CDK // node metadata ends up in the Cloud Assembly. // GetMetadata(key *string) interface{} // Examines the CloudFormation resource and discloses attributes. Inspect(inspector awscdk.TreeInspector) // Retrieves an array of resources this resource depends on. // // This assembles dependencies on resources across stacks (including nested stacks) // automatically. ObtainDependencies() *[]interface{} // Get a shallow copy of dependencies between this resource and other resources in the same stack. ObtainResourceDependencies() *[]awscdk.CfnResource // Overrides the auto-generated logical ID with a specific ID. OverrideLogicalId(newLogicalId *string) // Indicates that this resource no longer depends on another resource. // // This can be used for resources across stacks (including nested stacks) // and the dependency will automatically be removed from the relevant scope. RemoveDependency(target awscdk.CfnResource) RenderProperties(props *map[string]interface{}) *map[string]interface{} // Replaces one dependency with another. ReplaceDependency(target awscdk.CfnResource, newTarget awscdk.CfnResource) // Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template. // // Returns: `true` if the resource should be included or `false` is the resource // should be omitted. ShouldSynthesize() *bool // Returns a string representation of this construct. // // Returns: a string representation of this resource. ToString() *string ValidateProperties(_properties interface{}) }
Represents a state machine [version](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-version.html) . A published version uses the latest state machine [*revision*](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-state-machine-version.html) . A revision is an immutable, read-only snapshot of a state machine’s definition and configuration.
You can publish up to 1000 versions for each state machine.
> Before you delete a version, make sure that version's ARN isn't being referenced in any long-running workflows or application code outside of the stack.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStateMachineVersion := awscdk.Aws_stepfunctions.NewCfnStateMachineVersion(this, jsii.String("MyCfnStateMachineVersion"), &CfnStateMachineVersionProps{ StateMachineArn: jsii.String("stateMachineArn"), // the properties below are optional Description: jsii.String("description"), StateMachineRevisionId: jsii.String("stateMachineRevisionId"), })
func NewCfnStateMachineVersion ¶ added in v2.86.0
func NewCfnStateMachineVersion(scope constructs.Construct, id *string, props *CfnStateMachineVersionProps) CfnStateMachineVersion
type CfnStateMachineVersionProps ¶ added in v2.86.0
type CfnStateMachineVersionProps struct { // The Amazon Resource Name (ARN) of the state machine. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html#cfn-stepfunctions-statemachineversion-statemachinearn // StateMachineArn *string `field:"required" json:"stateMachineArn" yaml:"stateMachineArn"` // An optional description of the state machine version. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html#cfn-stepfunctions-statemachineversion-description // Description *string `field:"optional" json:"description" yaml:"description"` // Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. // // Only publish the state machine version if the current state machine's revision ID matches the specified ID. Use this option to avoid publishing a version if the state machine has changed since you last updated it. // // To specify the initial state machine revision, set the value as `INITIAL` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-stepfunctions-statemachineversion.html#cfn-stepfunctions-statemachineversion-statemachinerevisionid // StateMachineRevisionId *string `field:"optional" json:"stateMachineRevisionId" yaml:"stateMachineRevisionId"` }
Properties for defining a `CfnStateMachineVersion`.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cfnStateMachineVersionProps := &CfnStateMachineVersionProps{ StateMachineArn: jsii.String("stateMachineArn"), // the properties below are optional Description: jsii.String("description"), StateMachineRevisionId: jsii.String("stateMachineRevisionId"), }
type CfnStateMachine_CloudWatchLogsLogGroupProperty ¶
type CfnStateMachine_CloudWatchLogsLogGroupProperty struct { // The ARN of the the CloudWatch log group to which you want your logs emitted to. // // The ARN must end with `:*`. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-cloudwatchlogsloggroup.html#cfn-stepfunctions-statemachine-cloudwatchlogsloggroup-loggrouparn // LogGroupArn *string `field:"optional" json:"logGroupArn" yaml:"logGroupArn"` }
Defines a CloudWatch log group.
> For more information see [Standard Versus Express Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) in the AWS Step Functions Developer Guide.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" cloudWatchLogsLogGroupProperty := &CloudWatchLogsLogGroupProperty{ LogGroupArn: jsii.String("logGroupArn"), }
type CfnStateMachine_LogDestinationProperty ¶
type CfnStateMachine_LogDestinationProperty struct { // An object describing a CloudWatch log group. // // For more information, see [AWS::Logs::LogGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html) in the AWS CloudFormation User Guide. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-logdestination.html#cfn-stepfunctions-statemachine-logdestination-cloudwatchlogsloggroup // CloudWatchLogsLogGroup interface{} `field:"optional" json:"cloudWatchLogsLogGroup" yaml:"cloudWatchLogsLogGroup"` }
Defines a destination for `LoggingConfiguration` .
> For more information on logging with `EXPRESS` workflows, see [Logging Express Workflows Using CloudWatch Logs](https://docs.aws.amazon.com/step-functions/latest/dg/cw-logs.html) .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" logDestinationProperty := &LogDestinationProperty{ CloudWatchLogsLogGroup: &CloudWatchLogsLogGroupProperty{ LogGroupArn: jsii.String("logGroupArn"), }, }
type CfnStateMachine_LoggingConfigurationProperty ¶
type CfnStateMachine_LoggingConfigurationProperty struct { // An array of objects that describes where your execution history events will be logged. // // Limited to size 1. Required, if your log level is not set to `OFF` . // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html#cfn-stepfunctions-statemachine-loggingconfiguration-destinations // Destinations interface{} `field:"optional" json:"destinations" yaml:"destinations"` // Determines whether execution data is included in your log. // // When set to `false` , data is excluded. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html#cfn-stepfunctions-statemachine-loggingconfiguration-includeexecutiondata // IncludeExecutionData interface{} `field:"optional" json:"includeExecutionData" yaml:"includeExecutionData"` // Defines which category of execution history events are logged. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-loggingconfiguration.html#cfn-stepfunctions-statemachine-loggingconfiguration-level // Level *string `field:"optional" json:"level" yaml:"level"` }
Defines what execution history events are logged and where they are logged.
Step Functions provides the log levels — `OFF` , `ALL` , `ERROR` , and `FATAL` . No event types log when set to `OFF` and all event types do when set to `ALL` .
> By default, the `level` is set to `OFF` . For more information see [Log Levels](https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html) in the AWS Step Functions User Guide.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" loggingConfigurationProperty := &LoggingConfigurationProperty{ Destinations: []interface{}{ &LogDestinationProperty{ CloudWatchLogsLogGroup: &CloudWatchLogsLogGroupProperty{ LogGroupArn: jsii.String("logGroupArn"), }, }, }, IncludeExecutionData: jsii.Boolean(false), Level: jsii.String("level"), }
type CfnStateMachine_S3LocationProperty ¶
type CfnStateMachine_S3LocationProperty struct { // The name of the S3 bucket where the state machine definition JSON or YAML file is stored. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-bucket // Bucket *string `field:"required" json:"bucket" yaml:"bucket"` // The name of the state machine definition file (Amazon S3 object name). // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-key // Key *string `field:"required" json:"key" yaml:"key"` // For versioning-enabled buckets, a specific version of the state machine definition. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-s3location.html#cfn-stepfunctions-statemachine-s3location-version // Version *string `field:"optional" json:"version" yaml:"version"` }
Defines the S3 bucket location where a state machine definition is stored.
The state machine definition must be a JSON or YAML file.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" s3LocationProperty := &S3LocationProperty{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }
type CfnStateMachine_TagsEntryProperty ¶
type CfnStateMachine_TagsEntryProperty struct { // The `key` for a key-value pair in a tag entry. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html#cfn-stepfunctions-statemachine-tagsentry-key // Key *string `field:"required" json:"key" yaml:"key"` // The `value` for a key-value pair in a tag entry. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tagsentry.html#cfn-stepfunctions-statemachine-tagsentry-value // Value *string `field:"required" json:"value" yaml:"value"` }
The `TagsEntry` property specifies *tags* to identify a state machine.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" tagsEntryProperty := &TagsEntryProperty{ Key: jsii.String("key"), Value: jsii.String("value"), }
type CfnStateMachine_TracingConfigurationProperty ¶
type CfnStateMachine_TracingConfigurationProperty struct { // When set to `true` , X-Ray tracing is enabled. // See: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-stepfunctions-statemachine-tracingconfiguration.html#cfn-stepfunctions-statemachine-tracingconfiguration-enabled // Enabled interface{} `field:"optional" json:"enabled" yaml:"enabled"` }
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
To configure your state machine to send trace data to X-Ray, set `Enabled` to `true` .
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" tracingConfigurationProperty := &TracingConfigurationProperty{ Enabled: jsii.Boolean(false), }
type Chain ¶
type Chain interface { IChainable // The chainable end state(s) of this chain. EndStates() *[]INextable // Identify this Chain. Id() *string // The start state of this chain. StartState() State // Continue normal execution with the given state. Next(next IChainable) Chain // Return a single state that encompasses all states in the chain. // // This can be used to add error handling to a sequence of states. // // Be aware that this changes the result of the inner state machine // to be an array with the result of the state machine in it. Adjust // your paths accordingly. For example, change 'outputPath' to // '$[0]'. ToSingleState(id *string, props *ParallelProps) Parallel }
A collection of states to chain onto.
A Chain has a start and zero or more chainable ends. If there are zero ends, calling next() on the Chain will fail.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) // The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together. // Below example is with a Choice and Pass step choice := sfn.NewChoice(this, jsii.String("Choice")) condition1 := sfn.Condition_StringEquals(jsii.String("$.item.status"), jsii.String("SUCCESS")) step1 := sfn.NewPass(this, jsii.String("Step1")) step2 := sfn.NewPass(this, jsii.String("Step2")) finish := sfn.NewPass(this, jsii.String("Finish")) definition := choice.When(condition1, step1).Otherwise(step2).Afterwards().Next(finish) map.ItemProcessor(definition)
func Chain_Custom ¶
func Chain_Custom(startState State, endStates *[]INextable, lastAdded IChainable) Chain
Make a Chain with specific start and end states, and a last-added Chainable.
func Chain_Sequence ¶
func Chain_Sequence(start IChainable, next IChainable) Chain
Make a Chain with the start from one chain and the ends from another.
type ChainDefinitionBody ¶ added in v2.85.0
type ChainDefinitionBody interface { DefinitionBody Chainable() IChainable Bind(scope constructs.Construct, sfnPrincipal awsiam.IPrincipal, sfnProps *StateMachineProps) *DefinitionConfig }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var chainable iChainable chainDefinitionBody := awscdk.Aws_stepfunctions.ChainDefinitionBody_FromChainable(chainable)
func NewChainDefinitionBody ¶ added in v2.85.0
func NewChainDefinitionBody(chainable IChainable) ChainDefinitionBody
type Choice ¶
type Choice interface { State Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Return a Chain that contains all reachable end states from this Choice. // // Use this to combine all possible choice paths back. Afterwards(options *AfterwardsOptions) Chain // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // If none of the given conditions match, continue execution with the given state. // // If no conditions match and no otherwise() has been given, an execution // error will be raised. Otherwise(def IChainable) Choice // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // If the given condition matches, continue execution with the given state. When(condition Condition, next IChainable, options *ChoiceTransitionOptions) Choice // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Choice in the state machine.
A choice state can be used to make decisions based on the execution state.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) // The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together. // Below example is with a Choice and Pass step choice := sfn.NewChoice(this, jsii.String("Choice")) condition1 := sfn.Condition_StringEquals(jsii.String("$.item.status"), jsii.String("SUCCESS")) step1 := sfn.NewPass(this, jsii.String("Step1")) step2 := sfn.NewPass(this, jsii.String("Step2")) finish := sfn.NewPass(this, jsii.String("Finish")) definition := choice.When(condition1, step1).Otherwise(step2).Afterwards().Next(finish) map.ItemProcessor(definition)
func NewChoice ¶
func NewChoice(scope constructs.Construct, id *string, props *ChoiceProps) Choice
type ChoiceProps ¶
type ChoiceProps struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Choice state.
Example:
choice := sfn.NewChoice(this, jsii.String("What color is it?"), &ChoiceProps{ Comment: jsii.String("color comment"), }) handleBlueItem := sfn.NewPass(this, jsii.String("HandleBlueItem")) handleOtherItemColor := sfn.NewPass(this, jsii.String("HanldeOtherItemColor")) choice.When(sfn.Condition_StringEquals(jsii.String("$.color"), jsii.String("BLUE")), handleBlueItem, &ChoiceTransitionOptions{ Comment: jsii.String("blue item comment"), }) choice.Otherwise(handleOtherItemColor)
type ChoiceTransitionOptions ¶ added in v2.97.0
type ChoiceTransitionOptions struct { // An optional description for the choice transition. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` }
Options for Choice Transition.
Example:
choice := sfn.NewChoice(this, jsii.String("What color is it?"), &ChoiceProps{ Comment: jsii.String("color comment"), }) handleBlueItem := sfn.NewPass(this, jsii.String("HandleBlueItem")) handleOtherItemColor := sfn.NewPass(this, jsii.String("HanldeOtherItemColor")) choice.When(sfn.Condition_StringEquals(jsii.String("$.color"), jsii.String("BLUE")), handleBlueItem, &ChoiceTransitionOptions{ Comment: jsii.String("blue item comment"), }) choice.Otherwise(handleOtherItemColor)
type Condition ¶
type Condition interface {
// Render Amazon States Language JSON for the condition.
RenderCondition() interface{}
}
A Condition for use in a Choice state branch.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) // The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together. // Below example is with a Choice and Pass step choice := sfn.NewChoice(this, jsii.String("Choice")) condition1 := sfn.Condition_StringEquals(jsii.String("$.item.status"), jsii.String("SUCCESS")) step1 := sfn.NewPass(this, jsii.String("Step1")) step2 := sfn.NewPass(this, jsii.String("Step2")) finish := sfn.NewPass(this, jsii.String("Finish")) definition := choice.When(condition1, step1).Otherwise(step2).Afterwards().Next(finish) map.ItemProcessor(definition)
func Condition_And ¶
Combine two or more conditions with a logical AND.
func Condition_BooleanEquals ¶
Matches if a boolean field has the given value.
func Condition_BooleanEqualsJsonPath ¶
Matches if a boolean field equals to a value at a given mapping path.
func Condition_IsBoolean ¶
Matches if variable is boolean.
func Condition_IsNotBoolean ¶
Matches if variable is not boolean.
func Condition_IsNotNull ¶
Matches if variable is not null.
func Condition_IsNotNumeric ¶
Matches if variable is not numeric.
func Condition_IsNotPresent ¶
Matches if variable is not present.
func Condition_IsNotString ¶
Matches if variable is not a string.
func Condition_IsNotTimestamp ¶
Matches if variable is not a timestamp.
func Condition_IsNull ¶
Matches if variable is Null.
func Condition_IsNumeric ¶
Matches if variable is numeric.
func Condition_IsPresent ¶
Matches if variable is present.
func Condition_IsString ¶
Matches if variable is a string.
func Condition_IsTimestamp ¶
Matches if variable is a timestamp.
func Condition_NumberEquals ¶
Matches if a numeric field has the given value.
func Condition_NumberEqualsJsonPath ¶
Matches if a numeric field has the value in a given mapping path.
func Condition_NumberGreaterThan ¶
Matches if a numeric field is greater than the given value.
func Condition_NumberGreaterThanEquals ¶
Matches if a numeric field is greater than or equal to the given value.
func Condition_NumberGreaterThanEqualsJsonPath ¶
Matches if a numeric field is greater than or equal to the value at a given mapping path.
func Condition_NumberGreaterThanJsonPath ¶
Matches if a numeric field is greater than the value at a given mapping path.
func Condition_NumberLessThan ¶
Matches if a numeric field is less than the given value.
func Condition_NumberLessThanEquals ¶
Matches if a numeric field is less than or equal to the given value.
func Condition_NumberLessThanEqualsJsonPath ¶
Matches if a numeric field is less than or equal to the numeric value at given mapping path.
func Condition_NumberLessThanJsonPath ¶
Matches if a numeric field is less than the value at the given mapping path.
func Condition_Or ¶
Combine two or more conditions with a logical OR.
func Condition_StringEquals ¶
Matches if a string field has the given value.
func Condition_StringEqualsJsonPath ¶
Matches if a string field equals to a value at a given mapping path.
func Condition_StringGreaterThan ¶
Matches if a string field sorts after a given value.
func Condition_StringGreaterThanEquals ¶
Matches if a string field sorts after or equal to a given value.
func Condition_StringGreaterThanEqualsJsonPath ¶
Matches if a string field sorts after or equal to value at a given mapping path.
func Condition_StringGreaterThanJsonPath ¶
Matches if a string field sorts after a value at a given mapping path.
func Condition_StringLessThan ¶
Matches if a string field sorts before a given value.
func Condition_StringLessThanEquals ¶
Matches if a string field sorts equal to or before a given value.
func Condition_StringLessThanEqualsJsonPath ¶
Matches if a string field sorts equal to or before a given mapping.
func Condition_StringLessThanJsonPath ¶
Matches if a string field sorts before a given value at a particular mapping.
func Condition_StringMatches ¶
Matches if a field matches a string pattern that can contain a wild card (*) e.g: log-*.txt or *LATEST*. No other characters other than "*" have any special meaning - * can be escaped: \\*.
func Condition_TimestampEquals ¶
Matches if a timestamp field is the same time as the given timestamp.
func Condition_TimestampEqualsJsonPath ¶
Matches if a timestamp field is the same time as the timestamp at a given mapping path.
func Condition_TimestampGreaterThan ¶
Matches if a timestamp field is after the given timestamp.
func Condition_TimestampGreaterThanEquals ¶
Matches if a timestamp field is after or equal to the given timestamp.
func Condition_TimestampGreaterThanEqualsJsonPath ¶
Matches if a timestamp field is after or equal to the timestamp at a given mapping path.
func Condition_TimestampGreaterThanJsonPath ¶
Matches if a timestamp field is after the timestamp at a given mapping path.
func Condition_TimestampLessThan ¶
Matches if a timestamp field is before the given timestamp.
func Condition_TimestampLessThanEquals ¶
Matches if a timestamp field is before or equal to the given timestamp.
func Condition_TimestampLessThanEqualsJsonPath ¶
Matches if a timestamp field is before or equal to the timestamp at a given mapping path.
func Condition_TimestampLessThanJsonPath ¶
Matches if a timestamp field is before the timestamp at a given mapping path.
type Credentials ¶ added in v2.54.0
type Credentials struct { // The role to be assumed for executing the Task. Role TaskRole `field:"required" json:"role" yaml:"role"` }
Specifies a target role assumed by the State Machine's execution role for invoking the task's resource.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" var submitLambda function var iamRole role // use a fixed role for all task invocations role := sfn.TaskRole_FromRole(iamRole) // or use a json expression to resolve the role at runtime based on task inputs //const role = sfn.TaskRole.fromRoleArnJsonPath('$.RoleArn'); submitJob := tasks.NewLambdaInvoke(this, jsii.String("Submit Job"), &LambdaInvokeProps{ LambdaFunction: submitLambda, OutputPath: jsii.String("$.Payload"), // use credentials Credentials: &Credentials{ Role: *Role, }, })
type CustomState ¶
type CustomState interface { State IChainable INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a recovery handler for this state. // // When a particular error occurs, execution will continue at the error // handler instead of failing the state machine execution. AddCatch(handler IChainable, props *CatchProps) CustomState // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Add retry configuration for this state. // // This controls if and how the execution will be retried if a particular // error occurs. AddRetry(props *RetryProps) CustomState // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Returns the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
State defined by supplying Amazon States Language (ASL) in the state machine.
Example:
import "github.com/aws/aws-cdk-go/awscdk" // create a table table := dynamodb.NewTable(this, jsii.String("montable"), &TableProps{ PartitionKey: &Attribute{ Name: jsii.String("id"), Type: dynamodb.AttributeType_STRING, }, }) finalStatus := sfn.NewPass(this, jsii.String("final step")) // States language JSON to put an item into DynamoDB // snippet generated from https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-code-snippet.html#tutorial-code-snippet-1 stateJson := map[string]interface{}{ "Type": jsii.String("Task"), "Resource": jsii.String("arn:aws:states:::dynamodb:putItem"), "Parameters": map[string]interface{}{ "TableName": table.tableName, "Item": map[string]map[string]*string{ "id": map[string]*string{ "S": jsii.String("MyEntry"), }, }, }, "ResultPath": nil, } // custom state which represents a task to insert data into DynamoDB custom := sfn.NewCustomState(this, jsii.String("my custom task"), &CustomStateProps{ StateJson: StateJson, }) // catch errors with addCatch errorHandler := sfn.NewPass(this, jsii.String("handle failure")) custom.AddCatch(errorHandler) // retry the task if something goes wrong custom.AddRetry(&RetryProps{ Errors: []*string{ sfn.Errors_ALL(), }, Interval: awscdk.Duration_Seconds(jsii.Number(10)), MaxAttempts: jsii.Number(5), }) chain := sfn.Chain_Start(custom).Next(finalStatus) sm := sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(chain), Timeout: awscdk.Duration_*Seconds(jsii.Number(30)), Comment: jsii.String("a super cool state machine"), }) // don't forget permissions. You need to assign them table.GrantWriteData(sm)
func NewCustomState ¶
func NewCustomState(scope constructs.Construct, id *string, props *CustomStateProps) CustomState
type CustomStateProps ¶
type CustomStateProps struct { // Amazon States Language (JSON-based) definition of the state. // See: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html // StateJson *map[string]interface{} `field:"required" json:"stateJson" yaml:"stateJson"` }
Properties for defining a custom state definition.
Example:
import "github.com/aws/aws-cdk-go/awscdk" // create a table table := dynamodb.NewTable(this, jsii.String("montable"), &TableProps{ PartitionKey: &Attribute{ Name: jsii.String("id"), Type: dynamodb.AttributeType_STRING, }, }) finalStatus := sfn.NewPass(this, jsii.String("final step")) // States language JSON to put an item into DynamoDB // snippet generated from https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-code-snippet.html#tutorial-code-snippet-1 stateJson := map[string]interface{}{ "Type": jsii.String("Task"), "Resource": jsii.String("arn:aws:states:::dynamodb:putItem"), "Parameters": map[string]interface{}{ "TableName": table.tableName, "Item": map[string]map[string]*string{ "id": map[string]*string{ "S": jsii.String("MyEntry"), }, }, }, "ResultPath": nil, } // custom state which represents a task to insert data into DynamoDB custom := sfn.NewCustomState(this, jsii.String("my custom task"), &CustomStateProps{ StateJson: StateJson, }) // catch errors with addCatch errorHandler := sfn.NewPass(this, jsii.String("handle failure")) custom.AddCatch(errorHandler) // retry the task if something goes wrong custom.AddRetry(&RetryProps{ Errors: []*string{ sfn.Errors_ALL(), }, Interval: awscdk.Duration_Seconds(jsii.Number(10)), MaxAttempts: jsii.Number(5), }) chain := sfn.Chain_Start(custom).Next(finalStatus) sm := sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(chain), Timeout: awscdk.Duration_*Seconds(jsii.Number(30)), Comment: jsii.String("a super cool state machine"), }) // don't forget permissions. You need to assign them table.GrantWriteData(sm)
type DefinitionBody ¶ added in v2.85.0
type DefinitionBody interface {
Bind(scope constructs.Construct, sfnPrincipal awsiam.IPrincipal, sfnProps *StateMachineProps) *DefinitionConfig
}
Example:
stateMachine := stepfunctions.NewStateMachine(this, jsii.String("SM"), &StateMachineProps{ DefinitionBody: stepfunctions.DefinitionBody_FromChainable(stepfunctions.NewWait(this, jsii.String("Hello"), &WaitProps{ Time: stepfunctions.WaitTime_Duration(awscdk.Duration_Seconds(jsii.Number(10))), })), }) iot.NewTopicRule(this, jsii.String("TopicRule"), &TopicRuleProps{ Sql: iot.IotSql_FromStringAsVer20160323(jsii.String("SELECT * FROM 'device/+/data'")), Actions: []iAction{ actions.NewStepFunctionsStateMachineAction(stateMachine), }, })
func ChainDefinitionBody_FromChainable ¶ added in v2.85.0
func ChainDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
func ChainDefinitionBody_FromFile ¶ added in v2.85.0
func ChainDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
func ChainDefinitionBody_FromString ¶ added in v2.85.0
func ChainDefinitionBody_FromString(definition *string) DefinitionBody
func DefinitionBody_FromChainable ¶ added in v2.85.0
func DefinitionBody_FromChainable(chainable IChainable) DefinitionBody
func DefinitionBody_FromFile ¶ added in v2.85.0
func DefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
func DefinitionBody_FromString ¶ added in v2.85.0
func DefinitionBody_FromString(definition *string) DefinitionBody
func FileDefinitionBody_FromChainable ¶ added in v2.85.0
func FileDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
func FileDefinitionBody_FromFile ¶ added in v2.85.0
func FileDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
func FileDefinitionBody_FromString ¶ added in v2.85.0
func FileDefinitionBody_FromString(definition *string) DefinitionBody
func StringDefinitionBody_FromChainable ¶ added in v2.85.0
func StringDefinitionBody_FromChainable(chainable IChainable) DefinitionBody
func StringDefinitionBody_FromFile ¶ added in v2.85.0
func StringDefinitionBody_FromFile(path *string, options *awss3assets.AssetOptions) DefinitionBody
func StringDefinitionBody_FromString ¶ added in v2.85.0
func StringDefinitionBody_FromString(definition *string) DefinitionBody
type DefinitionConfig ¶ added in v2.85.0
type DefinitionConfig struct { Definition interface{} `field:"optional" json:"definition" yaml:"definition"` DefinitionS3Location *CfnStateMachine_S3LocationProperty `field:"optional" json:"definitionS3Location" yaml:"definitionS3Location"` DefinitionString *string `field:"optional" json:"definitionString" yaml:"definitionString"` }
Partial object from the StateMachine L1 construct properties containing definition information.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var definition interface{} definitionConfig := &DefinitionConfig{ Definition: definition, DefinitionS3Location: &S3LocationProperty{ Bucket: jsii.String("bucket"), Key: jsii.String("key"), // the properties below are optional Version: jsii.String("version"), }, DefinitionString: jsii.String("definitionString"), }
type Errors ¶
type Errors interface { }
Predefined error strings Error names in Amazon States Language - https://states-language.net/spec.html#appendix-a Error handling in Step Functions - https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html.
Example:
import "github.com/aws/aws-cdk-go/awscdk" // create a table table := dynamodb.NewTable(this, jsii.String("montable"), &TableProps{ PartitionKey: &Attribute{ Name: jsii.String("id"), Type: dynamodb.AttributeType_STRING, }, }) finalStatus := sfn.NewPass(this, jsii.String("final step")) // States language JSON to put an item into DynamoDB // snippet generated from https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-code-snippet.html#tutorial-code-snippet-1 stateJson := map[string]interface{}{ "Type": jsii.String("Task"), "Resource": jsii.String("arn:aws:states:::dynamodb:putItem"), "Parameters": map[string]interface{}{ "TableName": table.tableName, "Item": map[string]map[string]*string{ "id": map[string]*string{ "S": jsii.String("MyEntry"), }, }, }, "ResultPath": nil, } // custom state which represents a task to insert data into DynamoDB custom := sfn.NewCustomState(this, jsii.String("my custom task"), &CustomStateProps{ StateJson: StateJson, }) // catch errors with addCatch errorHandler := sfn.NewPass(this, jsii.String("handle failure")) custom.AddCatch(errorHandler) // retry the task if something goes wrong custom.AddRetry(&RetryProps{ Errors: []*string{ sfn.Errors_ALL(), }, Interval: awscdk.Duration_Seconds(jsii.Number(10)), MaxAttempts: jsii.Number(5), }) chain := sfn.Chain_Start(custom).Next(finalStatus) sm := sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(chain), Timeout: awscdk.Duration_*Seconds(jsii.Number(30)), Comment: jsii.String("a super cool state machine"), }) // don't forget permissions. You need to assign them table.GrantWriteData(sm)
type Fail ¶
type Fail interface { State Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Fail state in the state machine.
Reaching a Fail state terminates the state execution in failure.
Example:
fail := sfn.NewFail(this, jsii.String("Fail"), &FailProps{ ErrorPath: sfn.JsonPath_StringAt(jsii.String("$.someError")), CausePath: sfn.JsonPath_*StringAt(jsii.String("$.someCause")), })
type FailProps ¶
type FailProps struct { // A description for the cause of the failure. // Default: - No description. // Cause *string `field:"optional" json:"cause" yaml:"cause"` // JsonPath expression to select part of the state to be the cause to this state. // Default: - No cause path. // CausePath *string `field:"optional" json:"causePath" yaml:"causePath"` // An optional description for this state. // Default: - No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Error code used to represent this failure. // Default: - No error code. // Error *string `field:"optional" json:"error" yaml:"error"` // JsonPath expression to select part of the state to be the error to this state. // Default: - No error path. // ErrorPath *string `field:"optional" json:"errorPath" yaml:"errorPath"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Fail state.
Example:
fail := sfn.NewFail(this, jsii.String("Fail"), &FailProps{ ErrorPath: sfn.JsonPath_StringAt(jsii.String("$.someError")), CausePath: sfn.JsonPath_*StringAt(jsii.String("$.someCause")), })
type FieldUtils ¶
type FieldUtils interface { }
Helper functions to work with structures containing fields.
type FileDefinitionBody ¶ added in v2.85.0
type FileDefinitionBody interface { DefinitionBody Path() *string Bind(scope constructs.Construct, _sfnPrincipal awsiam.IPrincipal, _sfnProps *StateMachineProps) *DefinitionConfig }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var chainable iChainable fileDefinitionBody := awscdk.Aws_stepfunctions.FileDefinitionBody_FromChainable(chainable)
func NewFileDefinitionBody ¶ added in v2.85.0
func NewFileDefinitionBody(path *string, options *awss3assets.AssetOptions) FileDefinitionBody
type FindStateOptions ¶
type FindStateOptions struct { // Whether or not to follow error-handling transitions. // Default: false. // IncludeErrorHandlers *bool `field:"optional" json:"includeErrorHandlers" yaml:"includeErrorHandlers"` }
Options for finding reachable states.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" findStateOptions := &FindStateOptions{ IncludeErrorHandlers: jsii.Boolean(false), }
type IActivity ¶
type IActivity interface { awscdk.IResource // The ARN of the activity. ActivityArn() *string // The name of the activity. ActivityName() *string }
Represents a Step Functions Activity https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html.
func Activity_FromActivityArn ¶
func Activity_FromActivityArn(scope constructs.Construct, id *string, activityArn *string) IActivity
Construct an Activity from an existing Activity ARN.
func Activity_FromActivityName ¶
func Activity_FromActivityName(scope constructs.Construct, id *string, activityName *string) IActivity
Construct an Activity from an existing Activity Name.
type IChainable ¶
type IChainable interface { // The chainable end state(s) of this chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string // The start state of this chainable. StartState() State }
Interface for objects that can be used in a Chain.
type INextable ¶
type INextable interface { // Go to the indicated state after this state. // // Returns: The chain of states built up. Next(state IChainable) Chain }
Interface for states that can have 'next' states.
type IStateMachine ¶
type IStateMachine interface { awsiam.IGrantable awscdk.IResource // Grant the given identity custom permissions. Grant(identity awsiam.IGrantable, actions ...*string) awsiam.Grant // Grant the given identity permissions for all executions of a state machine. GrantExecution(identity awsiam.IGrantable, actions ...*string) awsiam.Grant // Grant the given identity read permissions for this state machine. GrantRead(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity permissions to start an execution of this state machine. GrantStartExecution(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity permissions to start a synchronous execution of this state machine. GrantStartSyncExecution(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity read permissions for this state machine. GrantTaskResponse(identity awsiam.IGrantable) awsiam.Grant // Return the given named metric for this State Machine's executions. // Default: - sum over 5 minutes. // Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were aborted. // Default: - sum over 5 minutes. // MetricAborted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that failed. // Default: - sum over 5 minutes. // MetricFailed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were started. // Default: - sum over 5 minutes. // MetricStarted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that succeeded. // Default: - sum over 5 minutes. // MetricSucceeded(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were throttled. // Default: sum over 5 minutes. // MetricThrottled(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the interval, in milliseconds, between the time the execution starts and the time it closes. // Default: - sum over 5 minutes. // MetricTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that timed out. // Default: - sum over 5 minutes. // MetricTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The ARN of the state machine. StateMachineArn() *string }
A State Machine.
func StateMachine_FromStateMachineArn ¶
func StateMachine_FromStateMachineArn(scope constructs.Construct, id *string, stateMachineArn *string) IStateMachine
Import a state machine.
func StateMachine_FromStateMachineName ¶ added in v2.33.0
func StateMachine_FromStateMachineName(scope constructs.Construct, id *string, stateMachineName *string) IStateMachine
Import a state machine via resource name.
type InputType ¶
type InputType string
The type of task input.
const ( // Use a literal string This might be a JSON-encoded object, or just text. // // valid JSON text: standalone, quote-delimited strings; objects; arrays; numbers; Boolean values; and null. // // example: `literal string` // example: {"json": "encoded"}. InputType_TEXT InputType = "TEXT" // Use an object which may contain Data and Context fields as object values, if desired. // // example: // { // literal: 'literal', // SomeInput: sfn.JsonPath.stringAt('$.someField') // }. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html // InputType_OBJECT InputType = "OBJECT" )
type IntegrationPattern ¶
type IntegrationPattern string
AWS Step Functions integrates with services directly in the Amazon States Language.
You can control these AWS services using service integration patterns:.
Example:
// Define a state machine with one Pass state child := sfn.NewStateMachine(this, jsii.String("ChildStateMachine"), &StateMachineProps{ Definition: sfn.Chain_Start(sfn.NewPass(this, jsii.String("PassState"))), }) // Include the state machine in a Task state with callback pattern task := tasks.NewStepFunctionsStartExecution(this, jsii.String("ChildTask"), &StepFunctionsStartExecutionProps{ StateMachine: child, IntegrationPattern: sfn.IntegrationPattern_WAIT_FOR_TASK_TOKEN, Input: sfn.TaskInput_FromObject(map[string]interface{}{ "token": sfn.JsonPath_taskToken(), "foo": jsii.String("bar"), }), Name: jsii.String("MyExecutionName"), }) // Define a second state machine with the Task state above // Define a second state machine with the Task state above sfn.NewStateMachine(this, jsii.String("ParentStateMachine"), &StateMachineProps{ Definition: task, })
See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html
const ( // Step Functions will wait for an HTTP response and then progress to the next state. // See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-default // IntegrationPattern_REQUEST_RESPONSE IntegrationPattern = "REQUEST_RESPONSE" // Step Functions can wait for a request to complete before progressing to the next state. // See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-sync // IntegrationPattern_RUN_JOB IntegrationPattern = "RUN_JOB" // Callback tasks provide a way to pause a workflow until a task token is returned. // // You must set a task token when using the callback pattern. // See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token // IntegrationPattern_WAIT_FOR_TASK_TOKEN IntegrationPattern = "WAIT_FOR_TASK_TOKEN" )
type JitterType ¶ added in v2.95.0
type JitterType string
Values allowed in the retrier JitterStrategy field.
Example:
parallel := sfn.NewParallel(this, jsii.String("Do the work in parallel")) // Add branches to be executed in parallel shipItem := sfn.NewPass(this, jsii.String("ShipItem")) sendInvoice := sfn.NewPass(this, jsii.String("SendInvoice")) restock := sfn.NewPass(this, jsii.String("Restock")) parallel.Branch(shipItem) parallel.Branch(sendInvoice) parallel.Branch(restock) // Retry the whole workflow if something goes wrong with exponential backoff parallel.AddRetry(&RetryProps{ MaxAttempts: jsii.Number(1), MaxDelay: awscdk.Duration_Seconds(jsii.Number(5)), JitterStrategy: sfn.JitterType_FULL, }) // How to recover from errors sendFailureNotification := sfn.NewPass(this, jsii.String("SendFailureNotification")) parallel.AddCatch(sendFailureNotification) // What to do in case everything succeeded closeOrder := sfn.NewPass(this, jsii.String("CloseOrder")) parallel.Next(closeOrder)
const ( // Calculates the delay to be a random number between 0 and the computed backoff for the given retry attempt count. JitterType_FULL JitterType = "FULL" // Calculates the delay to be the computed backoff for the given retry attempt count (equivalent to if Jitter was not declared - i.e. the default value). JitterType_NONE JitterType = "NONE" )
type JsonPath ¶
type JsonPath interface { }
Extract a field from the State Machine data or context that gets passed around between states.
Example:
tasks.NewSageMakerCreateModel(this, jsii.String("Sagemaker"), &SageMakerCreateModelProps{ ModelName: jsii.String("MyModel"), PrimaryContainer: tasks.NewContainerDefinition(&ContainerDefinitionOptions{ Image: tasks.DockerImage_FromJsonExpression(sfn.JsonPath_StringAt(jsii.String("$.Model.imageName"))), Mode: tasks.Mode_SINGLE_MODEL, ModelS3Location: tasks.S3Location_FromJsonExpression(jsii.String("$.TrainingJob.ModelArtifacts.S3ModelArtifacts")), }), })
See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-paths.html
type LogLevel ¶
type LogLevel string
Defines which category of execution history events are logged.
Example:
import logs "github.com/aws/aws-cdk-go/awscdk" logGroup := logs.NewLogGroup(this, jsii.String("MyLogGroup")) definition := sfn.Chain_Start(sfn.NewPass(this, jsii.String("Pass"))) sfn.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(definition), Logs: &LogOptions{ Destination: logGroup, Level: sfn.LogLevel_ALL, }, })
See: https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html
Default: ERROR.
type LogOptions ¶
type LogOptions struct { // The log group where the execution history events will be logged. Destination awslogs.ILogGroup `field:"required" json:"destination" yaml:"destination"` // Determines whether execution data is included in your log. // Default: false. // IncludeExecutionData *bool `field:"optional" json:"includeExecutionData" yaml:"includeExecutionData"` // Defines which category of execution history events are logged. // Default: ERROR. // Level LogLevel `field:"optional" json:"level" yaml:"level"` }
Defines what execution history events are logged and where they are logged.
Example:
import logs "github.com/aws/aws-cdk-go/awscdk" logGroup := logs.NewLogGroup(this, jsii.String("MyLogGroup")) definition := sfn.Chain_Start(sfn.NewPass(this, jsii.String("Pass"))) sfn.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(definition), Logs: &LogOptions{ Destination: logGroup, Level: sfn.LogLevel_ALL, }, })
type Map ¶
type Map interface { State INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a recovery handler for this state. // // When a particular error occurs, execution will continue at the error // handler instead of failing the state machine execution. AddCatch(handler IChainable, props *CatchProps) Map // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Add retry configuration for this state. // // This controls if and how the execution will be retried if a particular // error occurs. AddRetry(props *RetryProps) Map // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Define item processor in Map. // // A Map must either have a non-empty iterator or a non-empty item processor, not both. ItemProcessor(processor IChainable, config *ProcessorConfig) Map // Define iterator state machine in Map. // // A Map must either have a non-empty iterator or a non-empty item processor, not both. // Deprecated: - use `itemProcessor` instead. Iterator(iterator IChainable) Map // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Validate this state. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Map state in the state machine.
A `Map` state can be used to run a set of steps for each element of an input array. A Map state will execute the same steps for multiple entries of an array in the state input.
While the Parallel state executes multiple branches of steps using the same input, a Map state will execute the same steps for multiple entries of an array in the state input.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) // The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together. // Below example is with a Choice and Pass step choice := sfn.NewChoice(this, jsii.String("Choice")) condition1 := sfn.Condition_StringEquals(jsii.String("$.item.status"), jsii.String("SUCCESS")) step1 := sfn.NewPass(this, jsii.String("Step1")) step2 := sfn.NewPass(this, jsii.String("Step2")) finish := sfn.NewPass(this, jsii.String("Finish")) definition := choice.When(condition1, step1).Otherwise(step2).Afterwards().Next(finish) map.ItemProcessor(definition)
See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-map-state.html
type MapProps ¶
type MapProps struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select the array to iterate over. // Default: $. // ItemsPath *string `field:"optional" json:"itemsPath" yaml:"itemsPath"` // MaxConcurrency. // // An upper bound on the number of iterations you want running at once. // Default: - full concurrency. // MaxConcurrency *float64 `field:"optional" json:"maxConcurrency" yaml:"maxConcurrency"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // The JSON that you want to override your default iteration input. // Default: $. // Parameters *map[string]interface{} `field:"optional" json:"parameters" yaml:"parameters"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. // // You can use ResultSelector to create a payload with values that are static // or selected from the state's raw result. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector // // Default: - None. // ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Map state.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) // The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together. // Below example is with a Choice and Pass step choice := sfn.NewChoice(this, jsii.String("Choice")) condition1 := sfn.Condition_StringEquals(jsii.String("$.item.status"), jsii.String("SUCCESS")) step1 := sfn.NewPass(this, jsii.String("Step1")) step2 := sfn.NewPass(this, jsii.String("Step2")) finish := sfn.NewPass(this, jsii.String("Finish")) definition := choice.When(condition1, step1).Otherwise(step2).Afterwards().Next(finish) map.ItemProcessor(definition)
type Parallel ¶
type Parallel interface { State INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a recovery handler for this state. // // When a particular error occurs, execution will continue at the error // handler instead of failing the state machine execution. AddCatch(handler IChainable, props *CatchProps) Parallel // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Add retry configuration for this state. // // This controls if and how the execution will be retried if a particular // error occurs. AddRetry(props *RetryProps) Parallel // Overwrites State.bindToGraph. Adds branches to the Parallel state here so that any necessary prefixes are appended first. BindToGraph(graph StateGraph) // Define one or more branches to run in parallel. Branch(branches ...IChainable) Parallel // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Validate this state. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Parallel state in the state machine.
A Parallel state can be used to run one or more state machines at the same time.
The Result of a Parallel state is an array of the results of its substatemachines.
Example:
import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/constructs-go/constructs" import "github.com/aws/aws-cdk-go/awscdk" type myJobProps struct { jobFlavor *string } type myJob struct { stateMachineFragment startState state endStates []iNextable } func newMyJob(parent construct, id *string, props myJobProps) *myJob { this := &myJob{} sfn.NewStateMachineFragment_Override(this, parent, id) choice := sfn.NewChoice(this, jsii.String("Choice")).When(sfn.Condition_StringEquals(jsii.String("$.branch"), jsii.String("left")), sfn.NewPass(this, jsii.String("Left Branch"))).When(sfn.Condition_StringEquals(jsii.String("$.branch"), jsii.String("right")), sfn.NewPass(this, jsii.String("Right Branch"))) // ... this.startState = choice this.endStates = choice.Afterwards().EndStates return this } type myStack struct { stack } func newMyStack(scope construct, id *string) *myStack { this := &myStack{} newStack_Override(this, scope, id) // Do 3 different variants of MyJob in parallel parallel := sfn.NewParallel(this, jsii.String("All jobs")).Branch(NewMyJob(this, jsii.String("Quick"), &myJobProps{ jobFlavor: jsii.String("quick"), }).PrefixStates()).Branch(NewMyJob(this, jsii.String("Medium"), &myJobProps{ jobFlavor: jsii.String("medium"), }).PrefixStates()).Branch(NewMyJob(this, jsii.String("Slow"), &myJobProps{ jobFlavor: jsii.String("slow"), }).PrefixStates()) sfn.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(parallel), }) return this }
func NewParallel ¶
func NewParallel(scope constructs.Construct, id *string, props *ParallelProps) Parallel
type ParallelProps ¶
type ParallelProps struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. // // You can use ResultSelector to create a payload with values that are static // or selected from the state's raw result. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector // // Default: - None. // ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Parallel state.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var resultSelector interface{} parallelProps := &ParallelProps{ Comment: jsii.String("comment"), InputPath: jsii.String("inputPath"), OutputPath: jsii.String("outputPath"), ResultPath: jsii.String("resultPath"), ResultSelector: map[string]interface{}{ "resultSelectorKey": resultSelector, }, StateName: jsii.String("stateName"), }
type Pass ¶
type Pass interface { State INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Pass in the state machine.
A Pass state can be used to transform the current execution's state.
Example:
choice := sfn.NewChoice(this, jsii.String("Did it work?")) // Add conditions with .when() successState := sfn.NewPass(this, jsii.String("SuccessState")) failureState := sfn.NewPass(this, jsii.String("FailureState")) choice.When(sfn.Condition_StringEquals(jsii.String("$.status"), jsii.String("SUCCESS")), successState) choice.When(sfn.Condition_NumberGreaterThan(jsii.String("$.attempts"), jsii.Number(5)), failureState) // Use .otherwise() to indicate what should be done if none of the conditions match tryAgainState := sfn.NewPass(this, jsii.String("TryAgainState")) choice.Otherwise(tryAgainState)
type PassProps ¶
type PassProps struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // Parameters pass a collection of key-value pairs, either static values or JSONPath expressions that select from the input. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-parameters // // Default: No parameters. // Parameters *map[string]interface{} `field:"optional" json:"parameters" yaml:"parameters"` // If given, treat as the result of this operation. // // Can be used to inject or replace the current execution state. // Default: No injected result. // Result Result `field:"optional" json:"result" yaml:"result"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Pass state.
Example:
// Makes the current JSON state { ..., "subObject": { "hello": "world" } } pass := sfn.NewPass(this, jsii.String("Add Hello World"), &PassProps{ Result: sfn.Result_FromObject(map[string]interface{}{ "hello": jsii.String("world"), }), ResultPath: jsii.String("$.subObject"), }) // Set the next state nextState := sfn.NewPass(this, jsii.String("NextState")) pass.Next(nextState)
type ProcessorConfig ¶ added in v2.116.0
type ProcessorConfig struct { // Specifies the execution type for the Map workflow. // // You must provide this field if you specified `DISTRIBUTED` for the `mode` sub-field. // Default: - no execution type. // ExecutionType ProcessorType `field:"optional" json:"executionType" yaml:"executionType"` // Specifies the execution mode for the Map workflow. // Default: - ProcessorMode.INLINE // Mode ProcessorMode `field:"optional" json:"mode" yaml:"mode"` }
Specifies the configuration for the processor Map state.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) map.ItemProcessor(sfn.NewPass(this, jsii.String("Pass State")), &ProcessorConfig{ Mode: sfn.ProcessorMode_DISTRIBUTED, ExecutionType: sfn.ProcessorType_STANDARD, })
type ProcessorMode ¶ added in v2.116.0
type ProcessorMode string
Mode of the Map workflow.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) map.ItemProcessor(sfn.NewPass(this, jsii.String("Pass State")), &ProcessorConfig{ Mode: sfn.ProcessorMode_DISTRIBUTED, ExecutionType: sfn.ProcessorType_STANDARD, })
const ( // Inline Map mode. ProcessorMode_INLINE ProcessorMode = "INLINE" // Distributed Map mode. ProcessorMode_DISTRIBUTED ProcessorMode = "DISTRIBUTED" )
type ProcessorType ¶ added in v2.116.0
type ProcessorType string
Execution type for the Map workflow.
Example:
map := sfn.NewMap(this, jsii.String("Map State"), &MapProps{ MaxConcurrency: jsii.Number(1), ItemsPath: sfn.JsonPath_StringAt(jsii.String("$.inputForMap")), Parameters: map[string]interface{}{ "item": sfn.JsonPath_*StringAt(jsii.String("$.Map.Item.Value")), }, ResultPath: jsii.String("$.mapOutput"), }) map.ItemProcessor(sfn.NewPass(this, jsii.String("Pass State")), &ProcessorConfig{ Mode: sfn.ProcessorMode_DISTRIBUTED, ExecutionType: sfn.ProcessorType_STANDARD, })
const ( // Standard execution type. ProcessorType_STANDARD ProcessorType = "STANDARD" // Express execution type. ProcessorType_EXPRESS ProcessorType = "EXPRESS" )
type Result ¶
type Result interface {
// result of the Pass operation.
Value() interface{}
}
The result of a Pass operation.
Example:
// Makes the current JSON state { ..., "subObject": { "hello": "world" } } pass := sfn.NewPass(this, jsii.String("Add Hello World"), &PassProps{ Result: sfn.Result_FromObject(map[string]interface{}{ "hello": jsii.String("world"), }), ResultPath: jsii.String("$.subObject"), }) // Set the next state nextState := sfn.NewPass(this, jsii.String("NextState")) pass.Next(nextState)
func Result_FromArray ¶
func Result_FromArray(value *[]interface{}) Result
The result of the operation is an array.
func Result_FromBoolean ¶
The result of the operation is a boolean.
func Result_FromNumber ¶
The result of the operation is a number.
func Result_FromObject ¶
The result of the operation is an object.
func Result_FromString ¶
The result of the operation is a string.
type RetryProps ¶
type RetryProps struct { // Multiplication for how much longer the wait interval gets on every retry. // Default: 2. // BackoffRate *float64 `field:"optional" json:"backoffRate" yaml:"backoffRate"` // Errors to retry. // // A list of error strings to retry, which can be either predefined errors // (for example Errors.NoChoiceMatched) or a self-defined error. // Default: All errors. // Errors *[]*string `field:"optional" json:"errors" yaml:"errors"` // How many seconds to wait initially before retrying. // Default: Duration.seconds(1) // Interval awscdk.Duration `field:"optional" json:"interval" yaml:"interval"` // Introduces a randomization over the retry interval. // Default: - No jitter strategy. // JitterStrategy JitterType `field:"optional" json:"jitterStrategy" yaml:"jitterStrategy"` // How many times to retry this particular error. // // May be 0 to disable retry for specific errors (in case you have // a catch-all retry policy). // Default: 3. // MaxAttempts *float64 `field:"optional" json:"maxAttempts" yaml:"maxAttempts"` // Maximum limit on retry interval growth during exponential backoff. // Default: - No max delay. // MaxDelay awscdk.Duration `field:"optional" json:"maxDelay" yaml:"maxDelay"` }
Retry details.
Example:
parallel := sfn.NewParallel(this, jsii.String("Do the work in parallel")) // Add branches to be executed in parallel shipItem := sfn.NewPass(this, jsii.String("ShipItem")) sendInvoice := sfn.NewPass(this, jsii.String("SendInvoice")) restock := sfn.NewPass(this, jsii.String("Restock")) parallel.Branch(shipItem) parallel.Branch(sendInvoice) parallel.Branch(restock) // Retry the whole workflow if something goes wrong with exponential backoff parallel.AddRetry(&RetryProps{ MaxAttempts: jsii.Number(1), MaxDelay: awscdk.Duration_Seconds(jsii.Number(5)), JitterStrategy: sfn.JitterType_FULL, }) // How to recover from errors sendFailureNotification := sfn.NewPass(this, jsii.String("SendFailureNotification")) parallel.AddCatch(sendFailureNotification) // What to do in case everything succeeded closeOrder := sfn.NewPass(this, jsii.String("CloseOrder")) parallel.Next(closeOrder)
type ServiceIntegrationPattern ¶
type ServiceIntegrationPattern string
Three ways to call an integrated service: Request Response, Run a Job and Wait for a Callback with Task Token. See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html
Here, they are named as FIRE_AND_FORGET, SYNC and WAIT_FOR_TASK_TOKEN respectfully.
Default: FIRE_AND_FORGET.
const ( // Call a service and progress to the next state immediately after the API call completes. ServiceIntegrationPattern_FIRE_AND_FORGET ServiceIntegrationPattern = "FIRE_AND_FORGET" // Call a service and wait for a job to complete. ServiceIntegrationPattern_SYNC ServiceIntegrationPattern = "SYNC" // Call a service with a task token and wait until that token is returned by SendTaskSuccess/SendTaskFailure with payload. ServiceIntegrationPattern_WAIT_FOR_TASK_TOKEN ServiceIntegrationPattern = "WAIT_FOR_TASK_TOKEN" )
type SingleStateOptions ¶
type SingleStateOptions struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. // // You can use ResultSelector to create a payload with values that are static // or selected from the state's raw result. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector // // Default: - None. // ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` // String to prefix all stateIds in the state machine with. // Default: stateId. // PrefixStates *string `field:"optional" json:"prefixStates" yaml:"prefixStates"` // ID of newly created containing state. // Default: Construct ID of the StateMachineFragment. // StateId *string `field:"optional" json:"stateId" yaml:"stateId"` }
Options for creating a single state.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var resultSelector interface{} singleStateOptions := &SingleStateOptions{ Comment: jsii.String("comment"), InputPath: jsii.String("inputPath"), OutputPath: jsii.String("outputPath"), PrefixStates: jsii.String("prefixStates"), ResultPath: jsii.String("resultPath"), ResultSelector: map[string]interface{}{ "resultSelectorKey": resultSelector, }, StateId: jsii.String("stateId"), StateName: jsii.String("stateName"), }
type State ¶
type State interface { constructs.Construct IChainable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Render the state as JSON. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Base class for all other state classes.
type StateGraph ¶
type StateGraph interface { // The accumulated policy statements. PolicyStatements() *[]awsiam.PolicyStatement // state that gets executed when the state machine is launched. StartState() State // Set a timeout to render into the graph JSON. // // Read/write. Only makes sense on the top-level graph, subgraphs // do not support this feature. // Default: No timeout. // Timeout() awscdk.Duration SetTimeout(val awscdk.Duration) // Register a Policy Statement used by states in this graph. RegisterPolicyStatement(statement awsiam.PolicyStatement) // Register a state as part of this graph. // // Called by State.bindToGraph(). RegisterState(state State) // Register this graph as a child of the given graph. // // Resource changes will be bubbled up to the given graph. RegisterSuperGraph(graph StateGraph) // Return the Amazon States Language JSON for this graph. ToGraphJson() *map[string]interface{} // Return a string description of this graph. ToString() *string }
A collection of connected states.
A StateGraph is used to keep track of all states that are connected (have transitions between them). It does not include the substatemachines in a Parallel's branches: those are their own StateGraphs, but the graphs themselves have a hierarchical relationship as well.
By assigning states to a definitive StateGraph, we verify that no state machines are constructed. In particular:
- Every state object can only ever be in 1 StateGraph, and not inadvertently be used in two graphs.
- Every stateId must be unique across all states in the entire state machine.
All policy statements in all states in all substatemachines are bubbled so that the top-level StateMachine instantiation can read them all and add them to the IAM Role.
You do not need to instantiate this class; it is used internally.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var state state stateGraph := awscdk.Aws_stepfunctions.NewStateGraph(state, jsii.String("graphDescription"))
func NewStateGraph ¶
func NewStateGraph(startState State, graphDescription *string) StateGraph
type StateMachine ¶
type StateMachine interface { awscdk.Resource IStateMachine // The environment this resource belongs to. // // For resources that are created and managed by the CDK // (generally, those created by creating new class instances like Role, Bucket, etc.), // this is always the same as the environment of the stack they belong to; // however, for imported resources // (those obtained from static methods like fromRoleArn, fromBucketName, etc.), // that might be different than the stack they were imported into. Env() *awscdk.ResourceEnvironment // The principal this state machine is running as. GrantPrincipal() awsiam.IPrincipal // The tree node. Node() constructs.Node // Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource. // // This value will resolve to one of the following: // - a concrete value (e.g. `"my-awesome-bucket"`) // - `undefined`, when a name should be generated by CloudFormation // - a concrete name generated automatically during synthesis, in // cross-environment scenarios. PhysicalName() *string // Execution role of this state machine. Role() awsiam.IRole // The stack in which this resource is defined. Stack() awscdk.Stack // The ARN of the state machine. StateMachineArn() *string // The name of the state machine. StateMachineName() *string // Identifier for the state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration. StateMachineRevisionId() *string // Type of the state machine. StateMachineType() StateMachineType // Add the given statement to the role's policy. AddToRolePolicy(statement awsiam.PolicyStatement) // Apply the given removal policy to this resource. // // The Removal Policy controls what happens to this resource when it stops // being managed by CloudFormation, either because you've removed it from the // CDK application or because you've made a change that requires the resource // to be replaced. // // The resource can be deleted (`RemovalPolicy.DESTROY`), or left in your AWS // account for data recovery and cleanup later (`RemovalPolicy.RETAIN`). ApplyRemovalPolicy(policy awscdk.RemovalPolicy) GeneratePhysicalName() *string // Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. `bucket.bucketArn`). // // Normally, this token will resolve to `arnAttr`, but if the resource is // referenced across environments, `arnComponents` will be used to synthesize // a concrete ARN with the resource's physical name. Make sure to reference // `this.physicalName` in `arnComponents`. GetResourceArnAttribute(arnAttr *string, arnComponents *awscdk.ArnComponents) *string // Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. `bucket.bucketName`). // // Normally, this token will resolve to `nameAttr`, but if the resource is // referenced across environments, it will be resolved to `this.physicalName`, // which will be a concrete name. GetResourceNameAttribute(nameAttr *string) *string // Grant the given identity custom permissions. Grant(identity awsiam.IGrantable, actions ...*string) awsiam.Grant // Grant the given identity permissions on all executions of the state machine. GrantExecution(identity awsiam.IGrantable, actions ...*string) awsiam.Grant // Grant the given identity permissions to read results from state machine. GrantRead(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity permissions to start an execution of this state machine. GrantStartExecution(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity permissions to start a synchronous execution of this state machine. GrantStartSyncExecution(identity awsiam.IGrantable) awsiam.Grant // Grant the given identity task response permissions on a state machine. GrantTaskResponse(identity awsiam.IGrantable) awsiam.Grant // Return the given named metric for this State Machine's executions. // Default: - sum over 5 minutes. // Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were aborted. // Default: - sum over 5 minutes. // MetricAborted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that failed. // Default: - sum over 5 minutes. // MetricFailed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were started. // Default: - sum over 5 minutes. // MetricStarted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that succeeded. // Default: - sum over 5 minutes. // MetricSucceeded(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that were throttled. // Default: - sum over 5 minutes. // MetricThrottled(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the interval, in milliseconds, between the time the execution starts and the time it closes. // Default: - average over 5 minutes. // MetricTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of executions that timed out. // Default: - sum over 5 minutes. // MetricTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Returns a string representation of this construct. ToString() *string }
Define a StepFunctions State Machine.
Example:
import "github.com/aws/aws-cdk-go/awscdk" pipeline := codepipeline.NewPipeline(this, jsii.String("MyPipeline")) inputArtifact := codepipeline.NewArtifact() startState := stepfunctions.NewPass(this, jsii.String("StartState")) simpleStateMachine := stepfunctions.NewStateMachine(this, jsii.String("SimpleStateMachine"), &StateMachineProps{ Definition: startState, }) stepFunctionAction := codepipeline_actions.NewStepFunctionInvokeAction(&StepFunctionsInvokeActionProps{ ActionName: jsii.String("Invoke"), StateMachine: simpleStateMachine, StateMachineInput: codepipeline_actions.StateMachineInput_FilePath(inputArtifact.AtPath(jsii.String("assets/input.json"))), }) pipeline.AddStage(&StageOptions{ StageName: jsii.String("StepFunctions"), Actions: []iAction{ stepFunctionAction, }, })
func NewStateMachine ¶
func NewStateMachine(scope constructs.Construct, id *string, props *StateMachineProps) StateMachine
type StateMachineFragment ¶
type StateMachineFragment interface { constructs.Construct IChainable // The states to chain onto if this fragment is used. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string // The tree node. Node() constructs.Node // The start state of this state machine fragment. StartState() State // Continue normal execution with the given state. Next(next IChainable) Chain // Prefix the IDs of all states in this state machine fragment. // // Use this to avoid multiple copies of the state machine all having the // same state IDs. PrefixStates(prefix *string) StateMachineFragment // Wrap all states in this state machine fragment up into a single state. // // This can be used to add retry or error handling onto this state // machine fragment. // // Be aware that this changes the result of the inner state machine // to be an array with the result of the state machine in it. Adjust // your paths accordingly. For example, change 'outputPath' to // '$[0]'. ToSingleState(options *SingleStateOptions) Parallel // Returns a string representation of this construct. ToString() *string }
Base class for reusable state machine fragments.
Example:
import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/constructs-go/constructs" import "github.com/aws/aws-cdk-go/awscdk" type myJobProps struct { jobFlavor *string } type myJob struct { stateMachineFragment startState state endStates []iNextable } func newMyJob(parent construct, id *string, props myJobProps) *myJob { this := &myJob{} sfn.NewStateMachineFragment_Override(this, parent, id) choice := sfn.NewChoice(this, jsii.String("Choice")).When(sfn.Condition_StringEquals(jsii.String("$.branch"), jsii.String("left")), sfn.NewPass(this, jsii.String("Left Branch"))).When(sfn.Condition_StringEquals(jsii.String("$.branch"), jsii.String("right")), sfn.NewPass(this, jsii.String("Right Branch"))) // ... this.startState = choice this.endStates = choice.Afterwards().EndStates return this } type myStack struct { stack } func newMyStack(scope construct, id *string) *myStack { this := &myStack{} newStack_Override(this, scope, id) // Do 3 different variants of MyJob in parallel parallel := sfn.NewParallel(this, jsii.String("All jobs")).Branch(NewMyJob(this, jsii.String("Quick"), &myJobProps{ jobFlavor: jsii.String("quick"), }).PrefixStates()).Branch(NewMyJob(this, jsii.String("Medium"), &myJobProps{ jobFlavor: jsii.String("medium"), }).PrefixStates()).Branch(NewMyJob(this, jsii.String("Slow"), &myJobProps{ jobFlavor: jsii.String("slow"), }).PrefixStates()) sfn.NewStateMachine(this, jsii.String("MyStateMachine"), &StateMachineProps{ DefinitionBody: sfn.DefinitionBody_FromChainable(parallel), }) return this }
type StateMachineProps ¶
type StateMachineProps struct { // Comment that describes this state machine. // Default: - No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Definition for this state machine. // Deprecated: use definitionBody: DefinitionBody.fromChainable() Definition IChainable `field:"optional" json:"definition" yaml:"definition"` // Definition for this state machine. DefinitionBody DefinitionBody `field:"optional" json:"definitionBody" yaml:"definitionBody"` // substitutions for the definition body as a key-value map. DefinitionSubstitutions *map[string]*string `field:"optional" json:"definitionSubstitutions" yaml:"definitionSubstitutions"` // Defines what execution history events are logged and where they are logged. // Default: No logging. // Logs *LogOptions `field:"optional" json:"logs" yaml:"logs"` // The removal policy to apply to state machine. // Default: RemovalPolicy.DESTROY // RemovalPolicy awscdk.RemovalPolicy `field:"optional" json:"removalPolicy" yaml:"removalPolicy"` // The execution role for the state machine service. // Default: A role is automatically created. // Role awsiam.IRole `field:"optional" json:"role" yaml:"role"` // A name for the state machine. // Default: A name is automatically generated. // StateMachineName *string `field:"optional" json:"stateMachineName" yaml:"stateMachineName"` // Type of the state machine. // Default: StateMachineType.STANDARD // StateMachineType StateMachineType `field:"optional" json:"stateMachineType" yaml:"stateMachineType"` // Maximum run time for this state machine. // Default: No timeout. // Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` // Specifies whether Amazon X-Ray tracing is enabled for this state machine. // Default: false. // TracingEnabled *bool `field:"optional" json:"tracingEnabled" yaml:"tracingEnabled"` }
Properties for defining a State Machine.
Example:
import "github.com/aws/aws-cdk-go/awscdk" pipeline := codepipeline.NewPipeline(this, jsii.String("MyPipeline")) inputArtifact := codepipeline.NewArtifact() startState := stepfunctions.NewPass(this, jsii.String("StartState")) simpleStateMachine := stepfunctions.NewStateMachine(this, jsii.String("SimpleStateMachine"), &StateMachineProps{ Definition: startState, }) stepFunctionAction := codepipeline_actions.NewStepFunctionInvokeAction(&StepFunctionsInvokeActionProps{ ActionName: jsii.String("Invoke"), StateMachine: simpleStateMachine, StateMachineInput: codepipeline_actions.StateMachineInput_FilePath(inputArtifact.AtPath(jsii.String("assets/input.json"))), }) pipeline.AddStage(&StageOptions{ StageName: jsii.String("StepFunctions"), Actions: []iAction{ stepFunctionAction, }, })
type StateMachineType ¶
type StateMachineType string
Two types of state machines are available in AWS Step Functions: EXPRESS AND STANDARD.
Example:
stateMachineDefinition := stepfunctions.NewPass(this, jsii.String("PassState")) stateMachine := stepfunctions.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ Definition: stateMachineDefinition, StateMachineType: stepfunctions.StateMachineType_EXPRESS, }) apigateway.NewStepFunctionsRestApi(this, jsii.String("StepFunctionsRestApi"), &StepFunctionsRestApiProps{ Deploy: jsii.Boolean(true), StateMachine: stateMachine, })
See: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html
Default: STANDARD.
const ( // Express Workflows are ideal for high-volume, event processing workloads. StateMachineType_EXPRESS StateMachineType = "EXPRESS" // Standard Workflows are ideal for long-running, durable, and auditable workflows. StateMachineType_STANDARD StateMachineType = "STANDARD" )
type StateProps ¶
type StateProps struct { // A comment describing this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // Parameters pass a collection of key-value pairs, either static values or JSONPath expressions that select from the input. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-parameters // // Default: No parameters. // Parameters *map[string]interface{} `field:"optional" json:"parameters" yaml:"parameters"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: $. // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. // // You can use ResultSelector to create a payload with values that are static // or selected from the state's raw result. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector // // Default: - None. // ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties shared by all states.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var parameters interface{} var resultSelector interface{} stateProps := &StateProps{ Comment: jsii.String("comment"), InputPath: jsii.String("inputPath"), OutputPath: jsii.String("outputPath"), Parameters: map[string]interface{}{ "parametersKey": parameters, }, ResultPath: jsii.String("resultPath"), ResultSelector: map[string]interface{}{ "resultSelectorKey": resultSelector, }, StateName: jsii.String("stateName"), }
type StateTransitionMetric ¶
type StateTransitionMetric interface { }
Metrics on the rate limiting performed on state machine execution.
These rate limits are shared across all state machines.
Example:
cloudwatch.NewAlarm(this, jsii.String("ThrottledAlarm"), &AlarmProps{ Metric: sfn.StateTransitionMetric_MetricThrottledEvents(), Threshold: jsii.Number(10), EvaluationPeriods: jsii.Number(2), })
func NewStateTransitionMetric ¶
func NewStateTransitionMetric() StateTransitionMetric
type StringDefinitionBody ¶ added in v2.85.0
type StringDefinitionBody interface { DefinitionBody Body() *string Bind(_scope constructs.Construct, _sfnPrincipal awsiam.IPrincipal, _sfnProps *StateMachineProps) *DefinitionConfig }
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var chainable iChainable stringDefinitionBody := awscdk.Aws_stepfunctions.StringDefinitionBody_FromChainable(chainable)
func NewStringDefinitionBody ¶ added in v2.85.0
func NewStringDefinitionBody(body *string) StringDefinitionBody
type Succeed ¶
type Succeed interface { State Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Succeed state in the state machine.
Reaching a Succeed state terminates the state execution in success.
Example:
success := sfn.NewSucceed(this, jsii.String("We did it!"))
func NewSucceed ¶
func NewSucceed(scope constructs.Construct, id *string, props *SucceedProps) Succeed
type SucceedProps ¶
type SucceedProps struct { // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: $. // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // JSONPath expression to select part of the state to be the output to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: $. // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Succeed state.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" succeedProps := &SucceedProps{ Comment: jsii.String("comment"), InputPath: jsii.String("inputPath"), OutputPath: jsii.String("outputPath"), StateName: jsii.String("stateName"), }
type TaskInput ¶
type TaskInput interface { // type of task input. Type() InputType // payload for the corresponding input type. // // It can be a JSON-encoded object, context, data, etc. Value() interface{} }
Type union for task classes that accept multiple types of payload.
Example:
import "github.com/aws/aws-cdk-go/awscdk" model := bedrock.FoundationModel_FromFoundationModelId(this, jsii.String("Model"), bedrock.FoundationModelIdentifier_AMAZON_TITAN_TEXT_G1_EXPRESS_V1()) task := tasks.NewBedrockInvokeModel(this, jsii.String("Prompt Model"), &BedrockInvokeModelProps{ Model: Model, Body: sfn.TaskInput_FromObject(map[string]interface{}{ "inputText": jsii.String("Generate a list of five first names."), "textGenerationConfig": map[string]*f64{ "maxTokenCount": jsii.Number(100), "temperature": jsii.Number(1), }, }), ResultSelector: map[string]interface{}{ "names": sfn.JsonPath_stringAt(jsii.String("$.Body.results[0].outputText")), }, })
func TaskInput_FromJsonPathAt ¶
Use a part of the execution data or task context as task input.
Use this when you want to use a subobject or string from the current state machine execution or the current task context as complete payload to a task.
func TaskInput_FromObject ¶
Use an object as task input.
This object may contain JSON path fields as object values, if desired.
func TaskInput_FromText ¶
Use a literal string as task input.
This might be a JSON-encoded object, or just a text.
type TaskMetricsConfig ¶
type TaskMetricsConfig struct { // The dimensions to attach to metrics. // Default: - No metrics. // MetricDimensions *map[string]interface{} `field:"optional" json:"metricDimensions" yaml:"metricDimensions"` // Prefix for plural metric names of activity actions. // Default: - No such metrics. // MetricPrefixPlural *string `field:"optional" json:"metricPrefixPlural" yaml:"metricPrefixPlural"` // Prefix for singular metric names of activity actions. // Default: - No such metrics. // MetricPrefixSingular *string `field:"optional" json:"metricPrefixSingular" yaml:"metricPrefixSingular"` }
Task Metrics.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" var metricDimensions interface{} taskMetricsConfig := &TaskMetricsConfig{ MetricDimensions: map[string]interface{}{ "metricDimensionsKey": metricDimensions, }, MetricPrefixPlural: jsii.String("metricPrefixPlural"), MetricPrefixSingular: jsii.String("metricPrefixSingular"), }
type TaskRole ¶ added in v2.54.0
type TaskRole interface { // Retrieves the resource for use in IAM Policies for this TaskRole. Resource() *string // Retrieves the roleArn for this TaskRole. RoleArn() *string }
Role to be assumed by the State Machine's execution role for invoking a task's resource.
Example:
import lambda "github.com/aws/aws-cdk-go/awscdk" var submitLambda function var iamRole role // use a fixed role for all task invocations role := sfn.TaskRole_FromRole(iamRole) // or use a json expression to resolve the role at runtime based on task inputs //const role = sfn.TaskRole.fromRoleArnJsonPath('$.RoleArn'); submitJob := tasks.NewLambdaInvoke(this, jsii.String("Submit Job"), &LambdaInvokeProps{ LambdaFunction: submitLambda, OutputPath: jsii.String("$.Payload"), // use credentials Credentials: &Credentials{ Role: *Role, }, })
func TaskRole_FromRole ¶ added in v2.54.0
Construct a task role based on the provided IAM Role.
func TaskRole_FromRoleArnJsonPath ¶ added in v2.54.0
Construct a task role retrieved from task inputs using a json expression.
Example:
sfn.TaskRole_FromRoleArnJsonPath(jsii.String("$.RoleArn"))
type TaskStateBase ¶
type TaskStateBase interface { State INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string TaskMetrics() *TaskMetricsConfig TaskPolicies() *[]awsiam.PolicyStatement // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a recovery handler for this state. // // When a particular error occurs, execution will continue at the error // handler instead of failing the state machine execution. AddCatch(handler IChainable, props *CatchProps) TaskStateBase // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Add retry configuration for this state. // // This controls if and how the execution will be retried if a particular // error occurs. AddRetry(props *RetryProps) TaskStateBase // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Return the given named metric for this Task. // Default: - sum over 5 minutes. // Metric(metricName *string, props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity fails. // Default: - sum over 5 minutes. // MetricFailed(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times the heartbeat times out for this activity. // Default: - sum over 5 minutes. // MetricHeartbeatTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, between the time the Task starts and the time it closes. // Default: - average over 5 minutes. // MetricRunTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity is scheduled. // Default: - sum over 5 minutes. // MetricScheduled(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, for which the activity stays in the schedule state. // Default: - average over 5 minutes. // MetricScheduleTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity is started. // Default: - sum over 5 minutes. // MetricStarted(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity succeeds. // Default: - sum over 5 minutes. // MetricSucceeded(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // The interval, in milliseconds, between the time the activity is scheduled and the time it closes. // Default: - average over 5 minutes. // MetricTime(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Metric for the number of times this activity times out. // Default: - sum over 5 minutes. // MetricTimedOut(props *awscloudwatch.MetricOptions) awscloudwatch.Metric // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Task state in the state machine.
Reaching a Task state causes some work to be executed, represented by the Task's resource property. Task constructs represent a generic Amazon States Language Task.
For some resource types, more specific subclasses of Task may be available which are more convenient to use.
type TaskStateBaseProps ¶
type TaskStateBaseProps struct { // An optional description for this state. // Default: - No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Credentials for an IAM Role that the State Machine assumes for executing the task. // // This enables cross-account resource invocations. // See: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html // // Default: - None (Task is executed using the State Machine's execution role). // Credentials *Credentials `field:"optional" json:"credentials" yaml:"credentials"` // Timeout for the heartbeat. // Default: - None. // // Deprecated: use `heartbeatTimeout`. Heartbeat awscdk.Duration `field:"optional" json:"heartbeat" yaml:"heartbeat"` // Timeout for the heartbeat. // // [disable-awslint:duration-prop-type] is needed because all props interface in // aws-stepfunctions-tasks extend this interface. // Default: - None. // HeartbeatTimeout Timeout `field:"optional" json:"heartbeatTimeout" yaml:"heartbeatTimeout"` // JSONPath expression to select part of the state to be the input to this state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // input to be the empty object {}. // Default: - The entire task input (JSON path '$'). // InputPath *string `field:"optional" json:"inputPath" yaml:"inputPath"` // AWS Step Functions integrates with services directly in the Amazon States Language. // // You can control these AWS services using service integration patterns. // See: https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html#connect-wait-token // // Default: - `IntegrationPattern.REQUEST_RESPONSE` for most tasks. // `IntegrationPattern.RUN_JOB` for the following exceptions: // `BatchSubmitJob`, `EmrAddStep`, `EmrCreateCluster`, `EmrTerminationCluster`, and `EmrContainersStartJobRun`. // IntegrationPattern IntegrationPattern `field:"optional" json:"integrationPattern" yaml:"integrationPattern"` // JSONPath expression to select select a portion of the state output to pass to the next state. // // May also be the special value JsonPath.DISCARD, which will cause the effective // output to be the empty object {}. // Default: - The entire JSON node determined by the state input, the task result, // and resultPath is passed to the next state (JSON path '$'). // OutputPath *string `field:"optional" json:"outputPath" yaml:"outputPath"` // JSONPath expression to indicate where to inject the state's output. // // May also be the special value JsonPath.DISCARD, which will cause the state's // input to become its output. // Default: - Replaces the entire input with the result (JSON path '$'). // ResultPath *string `field:"optional" json:"resultPath" yaml:"resultPath"` // The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. // // You can use ResultSelector to create a payload with values that are static // or selected from the state's raw result. // See: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector // // Default: - None. // ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` // Timeout for the task. // // [disable-awslint:duration-prop-type] is needed because all props interface in // aws-stepfunctions-tasks extend this interface. // Default: - None. // TaskTimeout Timeout `field:"optional" json:"taskTimeout" yaml:"taskTimeout"` // Timeout for the task. // Default: - None. // // Deprecated: use `taskTimeout`. Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"` }
Props that are common to all tasks.
Example:
// The code below shows an example of how to instantiate this type. // The values are placeholders you should change. import "github.com/aws/aws-cdk-go/awscdk" import "github.com/aws/aws-cdk-go/awscdk" var resultSelector interface{} var taskRole taskRole var timeout timeout taskStateBaseProps := &TaskStateBaseProps{ Comment: jsii.String("comment"), Credentials: &Credentials{ Role: taskRole, }, Heartbeat: cdk.Duration_Minutes(jsii.Number(30)), HeartbeatTimeout: timeout, InputPath: jsii.String("inputPath"), IntegrationPattern: awscdk.Aws_stepfunctions.IntegrationPattern_REQUEST_RESPONSE, OutputPath: jsii.String("outputPath"), ResultPath: jsii.String("resultPath"), ResultSelector: map[string]interface{}{ "resultSelectorKey": resultSelector, }, StateName: jsii.String("stateName"), TaskTimeout: timeout, Timeout: cdk.Duration_*Minutes(jsii.Number(30)), }
type Timeout ¶ added in v2.63.0
type Timeout interface { // Path for this timeout. Path() *string // Seconds for this timeout. Seconds() *float64 }
Timeout for a task or heartbeat.
Example:
tasks.NewGlueStartJobRun(this, jsii.String("Task"), &GlueStartJobRunProps{ GlueJobName: jsii.String("my-glue-job"), Arguments: sfn.TaskInput_FromObject(map[string]interface{}{ "key": jsii.String("value"), }), TaskTimeout: sfn.Timeout_Duration(awscdk.Duration_Minutes(jsii.Number(30))), NotifyDelayAfter: awscdk.Duration_*Minutes(jsii.Number(5)), })
func Timeout_At ¶ added in v2.63.0
Use a dynamic timeout specified by a path in the state input.
The path must select a field whose value is a positive integer.
func Timeout_Duration ¶ added in v2.63.0
func Timeout_Duration(duration awscdk.Duration) Timeout
Use a duration as timeout.
type Wait ¶
type Wait interface { State INextable Branches() *[]StateGraph Comment() *string DefaultChoice() State SetDefaultChoice(val State) // Continuable states of this Chainable. EndStates() *[]INextable // Descriptive identifier for this chainable. Id() *string InputPath() *string Iteration() StateGraph SetIteration(val StateGraph) // The tree node. Node() constructs.Node OutputPath() *string Parameters() *map[string]interface{} Processor() StateGraph SetProcessor(val StateGraph) ProcessorConfig() *ProcessorConfig SetProcessorConfig(val *ProcessorConfig) ResultPath() *string ResultSelector() *map[string]interface{} // First state of this Chainable. StartState() State // Tokenized string that evaluates to the state's ID. StateId() *string StateName() *string // Add a parallel branch to this state. AddBranch(branch StateGraph) // Add a choice branch to this state. AddChoice(condition Condition, next State, options *ChoiceTransitionOptions) // Add a item processor to this state. AddItemProcessor(processor StateGraph, config *ProcessorConfig) // Add a map iterator to this state. AddIterator(iteration StateGraph) // Add a prefix to the stateId of this state. AddPrefix(x *string) // Register this state as part of the given graph. // // Don't call this. It will be called automatically when you work // with states normally. BindToGraph(graph StateGraph) // Make the indicated state the default choice transition of this state. MakeDefault(def State) // Make the indicated state the default transition of this state. MakeNext(next State) // Continue normal execution with the given state. Next(next IChainable) Chain // Render parallel branches in ASL JSON format. RenderBranches() interface{} // Render the choices in ASL JSON format. RenderChoices() interface{} // Render InputPath/Parameters/OutputPath in ASL JSON format. RenderInputOutput() interface{} // Render ItemProcessor in ASL JSON format. RenderItemProcessor() interface{} // Render map iterator in ASL JSON format. RenderIterator() interface{} // Render the default next state in ASL JSON format. RenderNextEnd() interface{} // Render ResultSelector in ASL JSON format. RenderResultSelector() interface{} // Render error recovery options in ASL JSON format. RenderRetryCatch() interface{} // Return the Amazon States Language object for this state. ToStateJson() *map[string]interface{} // Returns a string representation of this construct. ToString() *string // Allows the state to validate itself. ValidateState() *[]*string // Called whenever this state is bound to a graph. // // Can be overridden by subclasses. WhenBoundToGraph(graph StateGraph) }
Define a Wait state in the state machine.
A Wait state can be used to delay execution of the state machine for a while.
Example:
convertToSeconds := tasks.NewEvaluateExpression(this, jsii.String("Convert to seconds"), &EvaluateExpressionProps{ Expression: jsii.String("$.waitMilliseconds / 1000"), ResultPath: jsii.String("$.waitSeconds"), }) createMessage := tasks.NewEvaluateExpression(this, jsii.String("Create message"), &EvaluateExpressionProps{ // Note: this is a string inside a string. Expression: jsii.String("`Now waiting ${$.waitSeconds} seconds...`"), Runtime: lambda.Runtime_NODEJS_LATEST(), ResultPath: jsii.String("$.message"), }) publishMessage := tasks.NewSnsPublish(this, jsii.String("Publish message"), &SnsPublishProps{ Topic: sns.NewTopic(this, jsii.String("cool-topic")), Message: sfn.TaskInput_FromJsonPathAt(jsii.String("$.message")), ResultPath: jsii.String("$.sns"), }) wait := sfn.NewWait(this, jsii.String("Wait"), &WaitProps{ Time: sfn.WaitTime_SecondsPath(jsii.String("$.waitSeconds")), }) sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ Definition: convertToSeconds.Next(createMessage).Next(publishMessage).*Next(wait), })
type WaitProps ¶
type WaitProps struct { // Wait duration. Time WaitTime `field:"required" json:"time" yaml:"time"` // An optional description for this state. // Default: No comment. // Comment *string `field:"optional" json:"comment" yaml:"comment"` // Optional name for this state. // Default: - The construct ID will be used as state name. // StateName *string `field:"optional" json:"stateName" yaml:"stateName"` }
Properties for defining a Wait state.
Example:
convertToSeconds := tasks.NewEvaluateExpression(this, jsii.String("Convert to seconds"), &EvaluateExpressionProps{ Expression: jsii.String("$.waitMilliseconds / 1000"), ResultPath: jsii.String("$.waitSeconds"), }) createMessage := tasks.NewEvaluateExpression(this, jsii.String("Create message"), &EvaluateExpressionProps{ // Note: this is a string inside a string. Expression: jsii.String("`Now waiting ${$.waitSeconds} seconds...`"), Runtime: lambda.Runtime_NODEJS_LATEST(), ResultPath: jsii.String("$.message"), }) publishMessage := tasks.NewSnsPublish(this, jsii.String("Publish message"), &SnsPublishProps{ Topic: sns.NewTopic(this, jsii.String("cool-topic")), Message: sfn.TaskInput_FromJsonPathAt(jsii.String("$.message")), ResultPath: jsii.String("$.sns"), }) wait := sfn.NewWait(this, jsii.String("Wait"), &WaitProps{ Time: sfn.WaitTime_SecondsPath(jsii.String("$.waitSeconds")), }) sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ Definition: convertToSeconds.Next(createMessage).Next(publishMessage).*Next(wait), })
type WaitTime ¶
type WaitTime interface { }
Represents the Wait state which delays a state machine from continuing for a specified time.
Example:
convertToSeconds := tasks.NewEvaluateExpression(this, jsii.String("Convert to seconds"), &EvaluateExpressionProps{ Expression: jsii.String("$.waitMilliseconds / 1000"), ResultPath: jsii.String("$.waitSeconds"), }) createMessage := tasks.NewEvaluateExpression(this, jsii.String("Create message"), &EvaluateExpressionProps{ // Note: this is a string inside a string. Expression: jsii.String("`Now waiting ${$.waitSeconds} seconds...`"), Runtime: lambda.Runtime_NODEJS_LATEST(), ResultPath: jsii.String("$.message"), }) publishMessage := tasks.NewSnsPublish(this, jsii.String("Publish message"), &SnsPublishProps{ Topic: sns.NewTopic(this, jsii.String("cool-topic")), Message: sfn.TaskInput_FromJsonPathAt(jsii.String("$.message")), ResultPath: jsii.String("$.sns"), }) wait := sfn.NewWait(this, jsii.String("Wait"), &WaitProps{ Time: sfn.WaitTime_SecondsPath(jsii.String("$.waitSeconds")), }) sfn.NewStateMachine(this, jsii.String("StateMachine"), &StateMachineProps{ Definition: convertToSeconds.Next(createMessage).Next(publishMessage).*Next(wait), })
See: https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-wait-state.html
func WaitTime_Duration ¶
func WaitTime_Duration(duration awscdk.Duration) WaitTime
Wait a fixed amount of time.
func WaitTime_SecondsPath ¶
Wait for a number of seconds stored in the state object.
Example value: `$.waitSeconds`
func WaitTime_Timestamp ¶
Wait until the given ISO8601 timestamp.
Example value: `2016-03-14T01:59:00Z`.
func WaitTime_TimestampPath ¶
Wait until a timestamp found in the state object.
Example value: `$.waitTimestamp`
Source Files ¶
- Activity.go
- ActivityProps.go
- Activity__checks.go
- AfterwardsOptions.go
- CatchProps.go
- CfnActivity.go
- CfnActivityProps.go
- CfnActivity_TagsEntryProperty.go
- CfnActivity__checks.go
- CfnStateMachine.go
- CfnStateMachineAlias.go
- CfnStateMachineAliasProps.go
- CfnStateMachineAlias_DeploymentPreferenceProperty.go
- CfnStateMachineAlias_RoutingConfigurationVersionProperty.go
- CfnStateMachineAlias__checks.go
- CfnStateMachineProps.go
- CfnStateMachineVersion.go
- CfnStateMachineVersionProps.go
- CfnStateMachineVersion__checks.go
- CfnStateMachine_CloudWatchLogsLogGroupProperty.go
- CfnStateMachine_LogDestinationProperty.go
- CfnStateMachine_LoggingConfigurationProperty.go
- CfnStateMachine_S3LocationProperty.go
- CfnStateMachine_TagsEntryProperty.go
- CfnStateMachine_TracingConfigurationProperty.go
- CfnStateMachine__checks.go
- Chain.go
- ChainDefinitionBody.go
- ChainDefinitionBody__checks.go
- Chain__checks.go
- Choice.go
- ChoiceProps.go
- ChoiceTransitionOptions.go
- Choice__checks.go
- Condition.go
- Condition__checks.go
- Credentials.go
- CustomState.go
- CustomStateProps.go
- CustomState__checks.go
- DefinitionBody.go
- DefinitionBody__checks.go
- DefinitionConfig.go
- Errors.go
- Fail.go
- FailProps.go
- Fail__checks.go
- FieldUtils.go
- FileDefinitionBody.go
- FileDefinitionBody__checks.go
- FindStateOptions.go
- IActivity.go
- IChainable.go
- INextable.go
- INextable__checks.go
- IStateMachine.go
- IStateMachine__checks.go
- InputType.go
- IntegrationPattern.go
- JitterType.go
- JsonPath.go
- JsonPath__checks.go
- LogLevel.go
- LogOptions.go
- Map.go
- MapProps.go
- Map__checks.go
- Parallel.go
- ParallelProps.go
- Parallel__checks.go
- Pass.go
- PassProps.go
- Pass__checks.go
- ProcessorConfig.go
- ProcessorMode.go
- ProcessorType.go
- Result.go
- Result__checks.go
- RetryProps.go
- ServiceIntegrationPattern.go
- SingleStateOptions.go
- State.go
- StateGraph.go
- StateGraph__checks.go
- StateMachine.go
- StateMachineFragment.go
- StateMachineFragment__checks.go
- StateMachineProps.go
- StateMachineType.go
- StateMachine__checks.go
- StateProps.go
- StateTransitionMetric.go
- StateTransitionMetric__checks.go
- State__checks.go
- StringDefinitionBody.go
- StringDefinitionBody__checks.go
- Succeed.go
- SucceedProps.go
- Succeed__checks.go
- TaskInput.go
- TaskInput__checks.go
- TaskMetricsConfig.go
- TaskRole.go
- TaskRole__checks.go
- TaskStateBase.go
- TaskStateBaseProps.go
- TaskStateBase__checks.go
- Timeout.go
- Timeout__checks.go
- Wait.go
- WaitProps.go
- WaitTime.go
- WaitTime__checks.go
- Wait__checks.go
- main.go