-
Notifications
You must be signed in to change notification settings - Fork 17
/
awsstepfunctionstasks_SqsSendMessageProps.go
99 lines (96 loc) · 4.35 KB
/
awsstepfunctionstasks_SqsSendMessageProps.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package awsstepfunctionstasks
import (
"github.com/aws/aws-cdk-go/awscdk"
"github.com/aws/aws-cdk-go/awscdk/awssqs"
"github.com/aws/aws-cdk-go/awscdk/awsstepfunctions"
)
// Properties for sending a message to an SQS queue.
//
// Example:
// queue := sqs.NewQueue(this, jsii.String("Queue"))
//
// // Use a field from the execution data as message.
// task1 := tasks.NewSqsSendMessage(this, jsii.String("Send1"), &sqsSendMessageProps{
// queue: queue,
// messageBody: sfn.taskInput.fromJsonPathAt(jsii.String("$.message")),
// })
//
// // Combine a field from the execution data with
// // a literal object.
// task2 := tasks.NewSqsSendMessage(this, jsii.String("Send2"), &sqsSendMessageProps{
// queue: queue,
// messageBody: sfn.*taskInput.fromObject(map[string]interface{}{
// "field1": jsii.String("somedata"),
// "field2": sfn.JsonPath.stringAt(jsii.String("$.field2")),
// }),
// })
//
// Experimental.
type SqsSendMessageProps struct {
// An optional description for this state.
// Experimental.
Comment *string `field:"optional" json:"comment" yaml:"comment"`
// Timeout for the heartbeat.
// Experimental.
Heartbeat awscdk.Duration `field:"optional" json:"heartbeat" yaml:"heartbeat"`
// 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 {}.
// Experimental.
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
//
// Experimental.
IntegrationPattern awsstepfunctions.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 {}.
// Experimental.
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.
// Experimental.
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
//
// Experimental.
ResultSelector *map[string]interface{} `field:"optional" json:"resultSelector" yaml:"resultSelector"`
// Timeout for the state machine.
// Experimental.
Timeout awscdk.Duration `field:"optional" json:"timeout" yaml:"timeout"`
// The text message to send to the queue.
// Experimental.
MessageBody awsstepfunctions.TaskInput `field:"required" json:"messageBody" yaml:"messageBody"`
// The SQS queue that messages will be sent to.
// Experimental.
Queue awssqs.IQueue `field:"required" json:"queue" yaml:"queue"`
// The length of time, for which to delay a message.
//
// Messages that you send to the queue remain invisible to consumers for the duration
// of the delay period. The maximum allowed delay is 15 minutes.
// Experimental.
Delay awscdk.Duration `field:"optional" json:"delay" yaml:"delay"`
// The token used for deduplication of sent messages.
//
// Any messages sent with the same deduplication ID are accepted successfully,
// but aren't delivered during the 5-minute deduplication interval.
// Experimental.
MessageDeduplicationId *string `field:"optional" json:"messageDeduplicationId" yaml:"messageDeduplicationId"`
// The tag that specifies that a message belongs to a specific message group.
//
// Messages that belong to the same message group are processed in a FIFO manner.
// Messages in different message groups might be processed out of order.
// Experimental.
MessageGroupId *string `field:"optional" json:"messageGroupId" yaml:"messageGroupId"`
}