File: api_op_DescribeExecution.go

package info (click to toggle)
golang-github-aws-aws-sdk-go-v2 1.24.1-2~bpo12%2B1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-backports
  • size: 554,032 kB
  • sloc: java: 15,941; makefile: 419; sh: 175
file content (263 lines) | stat: -rw-r--r-- 9,838 bytes parent folder | download
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
// Code generated by smithy-go-codegen DO NOT EDIT.

package sfn

import (
	"context"
	"fmt"
	awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
	"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
	"github.com/aws/aws-sdk-go-v2/service/sfn/types"
	"github.com/aws/smithy-go/middleware"
	smithyhttp "github.com/aws/smithy-go/transport/http"
	"time"
)

// Provides information about a state machine execution, such as the state machine
// associated with the execution, the execution input and output, and relevant
// execution metadata. If you've redriven (https://docs.aws.amazon.com/step-functions/latest/dg/redrive-executions.html)
// an execution, you can use this API action to return information about the
// redrives of that execution. In addition, you can use this API action to return
// the Map Run Amazon Resource Name (ARN) if the execution was dispatched by a Map
// Run. If you specify a version or alias ARN when you call the StartExecution API
// action, DescribeExecution returns that ARN. This operation is eventually
// consistent. The results are best effort and may not reflect very recent updates
// and changes. Executions of an EXPRESS state machine aren't supported by
// DescribeExecution unless a Map Run dispatched them.
func (c *Client) DescribeExecution(ctx context.Context, params *DescribeExecutionInput, optFns ...func(*Options)) (*DescribeExecutionOutput, error) {
	if params == nil {
		params = &DescribeExecutionInput{}
	}

	result, metadata, err := c.invokeOperation(ctx, "DescribeExecution", params, optFns, c.addOperationDescribeExecutionMiddlewares)
	if err != nil {
		return nil, err
	}

	out := result.(*DescribeExecutionOutput)
	out.ResultMetadata = metadata
	return out, nil
}

type DescribeExecutionInput struct {

	// The Amazon Resource Name (ARN) of the execution to describe.
	//
	// This member is required.
	ExecutionArn *string

	noSmithyDocumentSerde
}

type DescribeExecutionOutput struct {

	// The Amazon Resource Name (ARN) that identifies the execution.
	//
	// This member is required.
	ExecutionArn *string

	// The date the execution is started.
	//
	// This member is required.
	StartDate *time.Time

	// The Amazon Resource Name (ARN) of the executed stated machine.
	//
	// This member is required.
	StateMachineArn *string

	// The current status of the execution.
	//
	// This member is required.
	Status types.ExecutionStatus

	// The cause string if the state machine execution failed.
	Cause *string

	// The error string if the state machine execution failed.
	Error *string

	// The string that contains the JSON input data of the execution. Length
	// constraints apply to the payload size, and are expressed as bytes in UTF-8
	// encoding.
	Input *string

	// Provides details about execution input or output.
	InputDetails *types.CloudWatchEventsExecutionDataDetails

	// The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this
	// execution.
	MapRunArn *string

	// The name of the execution. 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 _.
	Name *string

	// The JSON output data of the execution. Length constraints apply to the payload
	// size, and are expressed as bytes in UTF-8 encoding. This field is set only if
	// the execution succeeds. If the execution fails, this field is null.
	Output *string

	// Provides details about execution input or output.
	OutputDetails *types.CloudWatchEventsExecutionDataDetails

	// The number of times you've redriven an execution. If you have not yet redriven
	// an execution, the redriveCount is 0. This count is only updated if you
	// successfully redrive an execution.
	RedriveCount *int32

	// The date the execution was last redriven. If you have not yet redriven an
	// execution, the redriveDate is null. The redriveDate is unavailable if you
	// redrive a Map Run that starts child workflow executions of type EXPRESS .
	RedriveDate *time.Time

	// Indicates whether or not an execution can be redriven at a given point in time.
	//   - For executions of type STANDARD , redriveStatus is NOT_REDRIVABLE if calling
	//   the RedriveExecution API action would return the ExecutionNotRedrivable error.
	//   - For a Distributed Map that includes child workflows of type STANDARD ,
	//   redriveStatus indicates whether or not the Map Run can redrive child workflow
	//   executions.
	//   - For a Distributed Map that includes child workflows of type EXPRESS ,
	//   redriveStatus indicates whether or not the Map Run can redrive child workflow
	//   executions. You can redrive failed or timed out EXPRESS workflows only if
	//   they're a part of a Map Run. When you redrive (https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html)
	//   the Map Run, these workflows are restarted using the StartExecution API
	//   action.
	RedriveStatus types.ExecutionRedriveStatus

	// When redriveStatus is NOT_REDRIVABLE , redriveStatusReason specifies the reason
	// why an execution cannot be redriven.
	//   - For executions of type STANDARD , or for a Distributed Map that includes
	//   child workflows of type STANDARD , redriveStatusReason can include one of the
	//   following reasons:
	//   - State machine is in DELETING status .
	//   - Execution is RUNNING and cannot be redriven .
	//   - Execution is SUCCEEDED and cannot be redriven .
	//   - Execution was started before the launch of RedriveExecution .
	//   - Execution history event limit exceeded .
	//   - Execution has exceeded the max execution time .
	//   - Execution redrivable period exceeded .
	//   - For a Distributed Map that includes child workflows of type EXPRESS ,
	//   redriveStatusReason is only returned if the child workflows are not
	//   redrivable. This happens when the child workflow executions have completed
	//   successfully.
	RedriveStatusReason *string

	// The Amazon Resource Name (ARN) of the state machine alias associated with the
	// execution. The alias ARN is a combination of state machine ARN and the alias
	// name separated by a colon (:). For example, stateMachineARN:PROD . If you start
	// an execution from a StartExecution request with a state machine version ARN,
	// this field will be null.
	StateMachineAliasArn *string

	// The Amazon Resource Name (ARN) of the state machine version associated with the
	// execution. The version ARN is a combination of state machine ARN and the version
	// number separated by a colon (:). For example, stateMachineARN:1 . If you start
	// an execution from a StartExecution request without specifying a state machine
	// version or alias ARN, Step Functions returns a null value.
	StateMachineVersionArn *string

	// If the execution ended, the date the execution stopped.
	StopDate *time.Time

	// The X-Ray trace header that was passed to the execution.
	TraceHeader *string

	// Metadata pertaining to the operation's result.
	ResultMetadata middleware.Metadata

	noSmithyDocumentSerde
}

func (c *Client) addOperationDescribeExecutionMiddlewares(stack *middleware.Stack, options Options) (err error) {
	if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
		return err
	}
	err = stack.Serialize.Add(&awsAwsjson10_serializeOpDescribeExecution{}, middleware.After)
	if err != nil {
		return err
	}
	err = stack.Deserialize.Add(&awsAwsjson10_deserializeOpDescribeExecution{}, middleware.After)
	if err != nil {
		return err
	}
	if err := addProtocolFinalizerMiddlewares(stack, options, "DescribeExecution"); err != nil {
		return fmt.Errorf("add protocol finalizers: %v", err)
	}

	if err = addlegacyEndpointContextSetter(stack, options); err != nil {
		return err
	}
	if err = addSetLoggerMiddleware(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
		return err
	}
	if err = addResolveEndpointMiddleware(stack, options); err != nil {
		return err
	}
	if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
		return err
	}
	if err = addRetryMiddlewares(stack, options); err != nil {
		return err
	}
	if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
		return err
	}
	if err = addClientUserAgent(stack, options); err != nil {
		return err
	}
	if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
		return err
	}
	if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
		return err
	}
	if err = addOpDescribeExecutionValidationMiddleware(stack); err != nil {
		return err
	}
	if err = stack.Initialize.Add(newServiceMetadataMiddleware_opDescribeExecution(options.Region), middleware.Before); err != nil {
		return err
	}
	if err = awsmiddleware.AddRecursionDetection(stack); err != nil {
		return err
	}
	if err = addRequestIDRetrieverMiddleware(stack); err != nil {
		return err
	}
	if err = addResponseErrorMiddleware(stack); err != nil {
		return err
	}
	if err = addRequestResponseLogging(stack, options); err != nil {
		return err
	}
	if err = addDisableHTTPSMiddleware(stack, options); err != nil {
		return err
	}
	return nil
}

func newServiceMetadataMiddleware_opDescribeExecution(region string) *awsmiddleware.RegisterServiceMetadata {
	return &awsmiddleware.RegisterServiceMetadata{
		Region:        region,
		ServiceID:     ServiceID,
		OperationName: "DescribeExecution",
	}
}