diff --git a/clients/client-sfn/src/commands/DescribeStateMachineCommand.ts b/clients/client-sfn/src/commands/DescribeStateMachineCommand.ts
index d57a60dda409..6d950c246d69 100644
--- a/clients/client-sfn/src/commands/DescribeStateMachineCommand.ts
+++ b/clients/client-sfn/src/commands/DescribeStateMachineCommand.ts
@@ -108,6 +108,11 @@ export interface DescribeStateMachineCommandOutput extends DescribeStateMachineO
* // kmsDataKeyReusePeriodSeconds: Number("int"),
* // type: "AWS_OWNED_KEY" || "CUSTOMER_MANAGED_KMS_KEY", // required
* // },
+ * // variableReferences: { // VariableReferences
+ * // " Validates the syntax of a state machine definition. You can validate that a state machine definition is correct without
- * creating a state machine resource. Step Functions will implicitly perform the same
- * syntax check when you invoke Validates the syntax of a state machine definition specified in Amazon States Language (ASL), a
+ * JSON-based, structured language. You can validate that a state machine definition is correct without creating a state
+ * machine resource. Suggested uses for Integrate automated checks into your code review or Continuous Integration
- * (CI) process to validate state machine definitions before starting
+ * (CI) process to check state machine definitions before starting
* deployments. Run the validation from a Git pre-commit hook to check your state machine
- * definitions before committing them to your source repository. Run validation from a Git pre-commit hook to verify the definition before
+ * committing to your source repository. Validation will look for problems in your state machine definition and return a
+ * result and a list of diagnostic
+ * elements. The result value will be The list of ValidateStateMachineDefinitionDiagnostic data elements can contain zero or more WARNING and/or ERROR elements. Errors found in the state machine definition will be returned in the response as a list of diagnostic elements, rather than raise an exception. The ValidateStateMachineDefinition API might add
+ * new diagnostics in the future, adjust diagnostic codes, or change the message
+ * wording. Your automated processes should only rely on the value of the result field value (OK, FAIL). Do not rely on the exact order, count, or
+ * wording of diagnostic messages. Indicates whether input or output was truncated in the response. Always CreateStateMachine
and
- * UpdateStateMachine
. State machine definitions are specified using a
- * JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL). ValidateStateMachineDefinition
:
*
+ * OK
when your
+ * workflow definition can be successfully created or updated. Note the result can be
+ * OK
even when diagnostic warnings are present in the response. The
+ * result value will be FAIL
when the
+ * workflow definition contains errors that would prevent you from creating or updating
+ * your state machine. false
- * for API calls.
Provides details about assigned variables in an execution history event.
+ * @public + */ +export interface AssignedVariablesDetails { + /** + *Indicates whether assigned variables were truncated in the response. Always false
+ * for API calls. In CloudWatch logs, the value will be true if the data is truncated due to size limits.
A map of state name to a list of variables referenced by that state. States that do not use variable references will not be shown in the response.
+ * @public + */ + variableReferences?: RecordA map of state name to a list of variables referenced by that state. States that do not use variable references will not be shown in the response.
+ * @public + */ + variableReferences?: RecordContains details about an evaluation failure that occurred while processing a state, for example, when a JSONata expression throws an error. This event will only be present in state machines that have QueryLanguage set to JSONata, or individual states set to JSONata.
+ * @public + */ +export interface EvaluationFailedEventDetails { + /** + *The error code of the failure.
+ * @public + */ + error?: string | undefined; + + /** + *A more detailed explanation of the cause of the failure.
+ * @public + */ + cause?: string | undefined; + + /** + *The location of the field in the state in which the evaluation error occurred.
+ * @public + */ + location?: string | undefined; + + /** + *The name of the state in which the evaluation error occurred.
+ * @public + */ + state: string | undefined; +} + /** *Contains details about an abort of an execution.
* @public @@ -2573,6 +2628,18 @@ export interface StateExitedEventDetails { * @public */ outputDetails?: HistoryEventExecutionDataDetails | undefined; + + /** + *Map of variable name and value as a serialized JSON representation.
+ * @public + */ + assignedVariables?: RecordProvides details about input or output in an execution history event.
+ * @public + */ + assignedVariablesDetails?: AssignedVariablesDetails | undefined; } /** @@ -2836,6 +2903,7 @@ export const HistoryEventType = { ActivityTimedOut: "ActivityTimedOut", ChoiceStateEntered: "ChoiceStateEntered", ChoiceStateExited: "ChoiceStateExited", + EvaluationFailed: "EvaluationFailed", ExecutionAborted: "ExecutionAborted", ExecutionFailed: "ExecutionFailed", ExecutionRedriven: "ExecutionRedriven", @@ -3143,6 +3211,12 @@ export interface HistoryEvent { * @public */ mapRunRedrivenEventDetails?: MapRunRedrivenEventDetails | undefined; + + /** + *Contains details about an evaluation failure that occurred while processing a state.
+ * @public + */ + evaluationFailedEventDetails?: EvaluationFailedEventDetails | undefined; } /** @@ -4382,7 +4456,7 @@ export interface TestStateInput { *The Amazon Resource Name (ARN) of the execution role with the required IAM permissions for the state.
* @public */ - roleArn: string | undefined; + roleArn?: string | undefined; /** *A string that contains the JSON input data for the state.
@@ -4418,6 +4492,12 @@ export interface TestStateInput { * @public */ revealSecrets?: boolean | undefined; + + /** + *JSON object literal that sets variables used in the state under test. Object keys are the variable names and values are the variable values.
+ * @public + */ + variables?: string | undefined; } /** @@ -4504,13 +4584,19 @@ export interface InspectionData { input?: string | undefined; /** - *The input after Step Functions applies the InputPath filter.
+ *The input after Step Functions applies an Arguments filter. This event will only be present when QueryLanguage for the state machine or individual states is set to JSONata. For more info, see Transforming data with Step Functions.
+ * @public + */ + afterArguments?: string | undefined; + + /** + *The input after Step Functions applies the InputPath filter. Not populated when QueryLanguage is JSONata.
* @public */ afterInputPath?: string | undefined; /** - *The effective input after Step Functions applies the Parameters filter.
+ *The effective input after Step Functions applies the Parameters filter. Not populated when QueryLanguage is JSONata.
* @public */ afterParameters?: string | undefined; @@ -4522,13 +4608,13 @@ export interface InspectionData { result?: string | undefined; /** - *The effective result after Step Functions applies the ResultSelector filter.
+ *The effective result after Step Functions applies the ResultSelector filter. Not populated when QueryLanguage is JSONata.
* @public */ afterResultSelector?: string | undefined; /** - *The effective result combined with the raw state input after Step Functions applies the ResultPath filter.
+ *The effective result combined with the raw state input after Step Functions applies the ResultPath filter. Not populated when QueryLanguage is JSONata.
* @public */ afterResultPath?: string | undefined; @@ -4544,6 +4630,12 @@ export interface InspectionData { * @public */ response?: InspectionDataResponse | undefined; + + /** + *JSON string that contains the set of workflow variables after execution of the state. The set will include variables assigned in the state and variables set up as test state input.
+ * @public + */ + variables?: string | undefined; } /** @@ -4843,14 +4935,104 @@ export interface ValidateStateMachineDefinitionInput { } /** - *Describes an error found during validation. Validation errors found in the definition - * return in the response as diagnostic elements, rather - * than raise an exception.
+ *Describes potential issues found during state machine validation. Rather than raise an + * exception, validation will return a list of diagnostic + * elements containing diagnostic information.
+ *The ValidateStateMachineDefinitionlAPI might add + * new diagnostics in the future, adjust diagnostic codes, or change the message + * wording. Your automated processes should only rely on the value of the result field value (OK, FAIL). Do not rely on the exact order, count, or + * wording of diagnostic messages.
+ *+ * List of warning codes + *
+ *No .$
on a field that appears to be a JSONPath or Intrinsic Function.
Field value looks like a path, but field name does not end with 'Path'.
+ *Attempt to use a path in the result of a pass state.
+ *+ * List of error codes + *
+ *JSON syntax problem found.
+ *Received a null or empty workflow input.
+ *Schema validation reported errors.
+ *The value of a Task-state resource field is invalid.
+ *The workflow does not have a terminal state.
+ *The same state name appears more than once.
+ *The state name does not follow the naming convention.
+ *The state machine name has not been specified.
+ *The state machine name does not follow the naming convention.
+ *The state name exceeds the allowed length.
+ *The state name already exists.
+ *A label name appears more than once.
+ *You have provided an invalid label name.
+ *The value of "Next" field doesn't match a known state name.
+ *The states are too deeply nested.
+ *A value of ERROR
means that you cannot create or update a state machine with this definition.
+ * WARNING
level diagnostics alert you to potential issues, but they will not prevent you from creating or updating your state machine.
If the result is OK
, this field will be empty. When there are errors,
- * this field will contain an array of Diagnostic objects
- * to help you troubleshoot.
An array of diagnostic errors and warnings found during validation of the state machine definition. Since warnings do not prevent deploying your workflow definition, the result value could be OK
even when warning diagnostics are present in the response.
Indicates whether assigned variables were truncated in the response. Always false
\n for API calls. In CloudWatch logs, the value will be true if the data is truncated due to size limits.
Provides details about assigned variables in an execution history event.
" + } + }, "com.amazonaws.sfn#BilledDuration": { "type": "long", "traits": { @@ -2643,6 +2667,12 @@ "traits": { "smithy.api#documentation": "Settings to configure server-side encryption.
" } + }, + "variableReferences": { + "target": "com.amazonaws.sfn#VariableReferences", + "traits": { + "smithy.api#documentation": "A map of state name to a list of variables referenced by that state. States that do not use variable references will not be shown in the response.
" + } } }, "traits": { @@ -2753,6 +2783,12 @@ "traits": { "smithy.api#documentation": "Settings to configure server-side encryption.
" } + }, + "variableReferences": { + "target": "com.amazonaws.sfn#VariableReferences", + "traits": { + "smithy.api#documentation": "A map of state name to a list of variables referenced by that state. States that do not use variable references will not be shown in the response.
" + } } }, "traits": { @@ -2812,6 +2848,49 @@ "com.amazonaws.sfn#ErrorMessage": { "type": "string" }, + "com.amazonaws.sfn#EvaluationFailedEventDetails": { + "type": "structure", + "members": { + "error": { + "target": "com.amazonaws.sfn#SensitiveError", + "traits": { + "smithy.api#documentation": "The error code of the failure.
" + } + }, + "cause": { + "target": "com.amazonaws.sfn#SensitiveCause", + "traits": { + "smithy.api#documentation": "A more detailed explanation of the cause of the failure.
" + } + }, + "location": { + "target": "com.amazonaws.sfn#EvaluationFailureLocation", + "traits": { + "smithy.api#documentation": "The location of the field in the state in which the evaluation error occurred.
" + } + }, + "state": { + "target": "com.amazonaws.sfn#StateName", + "traits": { + "smithy.api#documentation": "The name of the state in which the evaluation error occurred.
", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Contains details about an evaluation failure that occurred while processing a state, for example, when a JSONata expression throws an error. This event will only be present in state machines that have QueryLanguage set to JSONata, or individual states set to JSONata.
" + } + }, + "com.amazonaws.sfn#EvaluationFailureLocation": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#sensitive": {} + } + }, "com.amazonaws.sfn#EventId": { "type": "long", "traits": { @@ -3561,6 +3640,12 @@ "traits": { "smithy.api#documentation": "Contains details about the redrive attempt of a Map Run.
" } + }, + "evaluationFailedEventDetails": { + "target": "com.amazonaws.sfn#EvaluationFailedEventDetails", + "traits": { + "smithy.api#documentation": "Contains details about an evaluation failure that occurred while processing a state.
" + } } }, "traits": { @@ -3574,7 +3659,7 @@ "target": "com.amazonaws.sfn#truncated", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "Indicates whether input or output was truncated in the response. Always false
\n for API calls.
Indicates whether input or output was truncated in the response. Always false
\n for API calls. In CloudWatch logs, the value will be true if the data is truncated due to size limits.
The raw state input.
" } }, + "afterArguments": { + "target": "com.amazonaws.sfn#SensitiveData", + "traits": { + "smithy.api#documentation": "The input after Step Functions applies an Arguments filter. This event will only be present when QueryLanguage for the state machine or individual states is set to JSONata. For more info, see Transforming data with Step Functions.
" + } + }, "afterInputPath": { "target": "com.amazonaws.sfn#SensitiveData", "traits": { - "smithy.api#documentation": "The input after Step Functions applies the InputPath filter.
" + "smithy.api#documentation": "The input after Step Functions applies the InputPath filter. Not populated when QueryLanguage is JSONata.
" } }, "afterParameters": { "target": "com.amazonaws.sfn#SensitiveData", "traits": { - "smithy.api#documentation": "The effective input after Step Functions applies the Parameters filter.
" + "smithy.api#documentation": "The effective input after Step Functions applies the Parameters filter. Not populated when QueryLanguage is JSONata.
" } }, "result": { @@ -4027,13 +4124,13 @@ "afterResultSelector": { "target": "com.amazonaws.sfn#SensitiveData", "traits": { - "smithy.api#documentation": "The effective result after Step Functions applies the ResultSelector filter.
" + "smithy.api#documentation": "The effective result after Step Functions applies the ResultSelector filter. Not populated when QueryLanguage is JSONata.
" } }, "afterResultPath": { "target": "com.amazonaws.sfn#SensitiveData", "traits": { - "smithy.api#documentation": "The effective result combined with the raw state input after Step Functions applies the ResultPath filter.
" + "smithy.api#documentation": "The effective result combined with the raw state input after Step Functions applies the ResultPath filter. Not populated when QueryLanguage is JSONata.
" } }, "request": { @@ -4047,6 +4144,12 @@ "traits": { "smithy.api#documentation": "The raw HTTP response that is returned when you test an HTTP Task.
" } + }, + "variables": { + "target": "com.amazonaws.sfn#SensitiveData", + "traits": { + "smithy.api#documentation": "JSON string that contains the set of workflow variables after execution of the state. The set will include variables assigned in the state and variables set up as test state input.
" + } } }, "traits": { @@ -6279,6 +6382,18 @@ "traits": { "smithy.api#documentation": "Contains details about the output of an execution history event.
" } + }, + "assignedVariables": { + "target": "com.amazonaws.sfn#AssignedVariables", + "traits": { + "smithy.api#documentation": "Map of variable name and value as a serialized JSON representation.
" + } + }, + "assignedVariablesDetails": { + "target": "com.amazonaws.sfn#AssignedVariablesDetails", + "traits": { + "smithy.api#documentation": "Provides details about input or output in an execution history event.
" + } } }, "traits": { @@ -7085,8 +7200,7 @@ "roleArn": { "target": "com.amazonaws.sfn#Arn", "traits": { - "smithy.api#documentation": "The Amazon Resource Name (ARN) of the execution role with the required IAM permissions for the state.
", - "smithy.api#required": {} + "smithy.api#documentation": "The Amazon Resource Name (ARN) of the execution role with the required IAM permissions for the state.
" } }, "input": { @@ -7107,6 +7221,12 @@ "smithy.api#default": false, "smithy.api#documentation": "Specifies whether or not to include secret information in the test result. For HTTP Tasks, a secret includes the data that an EventBridge connection adds to modify the HTTP request headers, query parameters, and body. Step Functions doesn't omit any information included in the state definition or the HTTP response.
\nIf you set revealSecrets
to true
, you must make sure that the IAM user that calls the TestState
API has permission for the states:RevealSecrets
action. For an example of IAM policy that sets the states:RevealSecrets
permission, see IAM permissions to test a state. Without this permission, Step Functions throws an access denied error.
By default, revealSecrets
is set to false
.
JSON object literal that sets variables used in the state under test. Object keys are the variable names and values are the variable values.
" + } } }, "traits": { @@ -7586,11 +7706,14 @@ } ], "traits": { - "smithy.api#documentation": "Validates the syntax of a state machine definition.
\nYou can validate that a state machine definition is correct without \n creating a state machine resource. Step Functions will implicitly perform the same\n syntax check when you invoke CreateStateMachine
and\n UpdateStateMachine
. State machine definitions are specified using a\n JSON-based, structured language. For more information on Amazon States Language see Amazon States Language (ASL).
Suggested uses for ValidateStateMachineDefinition
:
Integrate automated checks into your code review or Continuous Integration\n (CI) process to validate state machine definitions before starting\n deployments.
\nRun the validation from a Git pre-commit hook to check your state machine\n definitions before committing them to your source repository.
\nErrors found in the state machine definition will be returned in the response as a list of diagnostic elements, rather than raise an exception.
\nValidates the syntax of a state machine definition specified in Amazon States Language (ASL), a\n JSON-based, structured language.
\nYou can validate that a state machine definition is correct without creating a state\n machine resource.
\nSuggested uses for ValidateStateMachineDefinition
:
Integrate automated checks into your code review or Continuous Integration\n (CI) process to check state machine definitions before starting\n deployments.
\nRun validation from a Git pre-commit hook to verify the definition before\n committing to your source repository.
\nValidation will look for problems in your state machine definition and return a\n result and a list of diagnostic\n elements.
\nThe result value will be OK
when your\n workflow definition can be successfully created or updated. Note the result can be\n OK
even when diagnostic warnings are present in the response. The\n result value will be FAIL
when the\n workflow definition contains errors that would prevent you from creating or updating\n your state machine.
The list of ValidateStateMachineDefinitionDiagnostic data elements can contain zero or more WARNING and/or ERROR elements.
\nThe ValidateStateMachineDefinition API might add\n new diagnostics in the future, adjust diagnostic codes, or change the message\n wording. Your automated processes should only rely on the value of the result field value (OK, FAIL). Do not rely on the exact order, count, or\n wording of diagnostic messages.
\nA value of ERROR
means that you cannot create or update a state machine with this definition.
A value of ERROR
means that you cannot create or update a state machine with this definition.
\n WARNING
level diagnostics alert you to potential issues, but they will not prevent you from creating or updating your state machine.
Describes an error found during validation. Validation errors found in the definition\n return in the response as diagnostic elements, rather\n than raise an exception.
" + "smithy.api#documentation": "Describes potential issues found during state machine validation. Rather than raise an\n exception, validation will return a list of diagnostic\n elements containing diagnostic information.
\nThe ValidateStateMachineDefinitionlAPI might add\n new diagnostics in the future, adjust diagnostic codes, or change the message\n wording. Your automated processes should only rely on the value of the result field value (OK, FAIL). Do not rely on the exact order, count, or\n wording of diagnostic messages.
\n\n List of warning codes\n
\nNo .$
on a field that appears to be a JSONPath or Intrinsic Function.
Field value looks like a path, but field name does not end with 'Path'.
\nAttempt to use a path in the result of a pass state.
\n\n List of error codes\n
\nJSON syntax problem found.
\nReceived a null or empty workflow input.
\nSchema validation reported errors.
\nThe value of a Task-state resource field is invalid.
\nThe workflow does not have a terminal state.
\nThe same state name appears more than once.
\nThe state name does not follow the naming convention.
\nThe state machine name has not been specified.
\nThe state machine name does not follow the naming convention.
\nThe state name exceeds the allowed length.
\nThe state name already exists.
\nA label name appears more than once.
\nYou have provided an invalid label name.
\nThe value of \"Next\" field doesn't match a known state name.
\nThe states are too deeply nested.
\nIf the result is OK
, this field will be empty. When there are errors,\n this field will contain an array of Diagnostic objects\n to help you troubleshoot.
An array of diagnostic errors and warnings found during validation of the state machine definition. Since warnings do not prevent deploying your workflow definition, the result value could be OK
even when warning diagnostics are present in the response.