diff --git a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py index 5cc45e024200e..b30c9c0e1e927 100644 --- a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +++ b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py @@ -3,6 +3,7 @@ import abc import copy import json +import logging from typing import Any, Final, Optional, Union from botocore.model import ListShape, OperationModel, Shape, StringShape, StructureShape @@ -39,12 +40,15 @@ from localstack.services.stepfunctions.asl.component.state.state_execution.state_task.state_task import ( StateTask, ) +from localstack.services.stepfunctions.asl.component.state.state_props import StateProps from localstack.services.stepfunctions.asl.eval.environment import Environment from localstack.services.stepfunctions.asl.eval.event.event_detail import EventDetails from localstack.services.stepfunctions.asl.utils.encoding import to_json_str from localstack.services.stepfunctions.quotas import is_within_size_quota from localstack.utils.strings import camel_to_snake_case, snake_to_camel_case, to_bytes, to_str +LOG = logging.getLogger(__name__) + class StateTaskService(StateTask, abc.ABC): resource: ServiceResource @@ -54,6 +58,20 @@ class StateTaskService(StateTask, abc.ABC): "states": "stepfunctions", } + def from_state_props(self, state_props: StateProps) -> None: + super().from_state_props(state_props=state_props) + # Validate the service integration is supported on program creation. + self._validate_service_integration_is_supported() + + def _validate_service_integration_is_supported(self): + # Validate the service integration is supported. + supported_parameters = self._get_supported_parameters() + if supported_parameters is None: + raise ValueError( + f"The resource provided {self.resource.resource_arn} not recognized. " + "The value is not a valid resource ARN, or the resource is not available in this region." + ) + def _get_sfn_resource(self) -> str: return self.resource.api_action @@ -110,6 +128,13 @@ def _to_boto_request_value(self, request_value: Any, value_shape: Shape) -> Any: return boto_request_value def _to_boto_request(self, parameters: dict, structure_shape: StructureShape) -> None: + if not isinstance(structure_shape, StructureShape): + LOG.warning( + "Step Functions could not normalise the request for integration '%s' due to the unexpected request template value of type '%s'", + self.resource.resource_arn, + type(structure_shape), + ) + return shape_members = structure_shape.members norm_member_binds: dict[str, tuple[str, StructureShape]] = { camel_to_snake_case(member_key): (member_key, member_value) @@ -148,6 +173,14 @@ def _from_boto_response(self, response: Any, structure_shape: StructureShape) -> if not isinstance(response, dict): return + if not isinstance(structure_shape, StructureShape): + LOG.warning( + "Step Functions could not normalise the response of integration '%s' due to the unexpected request template value of type '%s'", + self.resource.resource_arn, + type(structure_shape), + ) + return + shape_members = structure_shape.members response_bind_keys: list[str] = list(response.keys()) for response_key in response_bind_keys: diff --git a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py index e4f7f031355d3..4ad5f71608a46 100644 --- a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py +++ b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py @@ -19,7 +19,6 @@ from localstack.services.stepfunctions.asl.component.state.state_execution.state_task.service.state_task_service_callback import ( StateTaskServiceCallback, ) -from localstack.services.stepfunctions.asl.component.state.state_props import StateProps from localstack.services.stepfunctions.asl.eval.environment import Environment from localstack.services.stepfunctions.asl.eval.event.event_detail import EventDetails from localstack.services.stepfunctions.asl.utils.boto_client import boto_client_for @@ -38,8 +37,9 @@ class StateTaskServiceAwsSdk(StateTaskServiceCallback): def __init__(self): super().__init__(supported_integration_patterns=_SUPPORTED_INTEGRATION_PATTERNS) - def from_state_props(self, state_props: StateProps) -> None: - super().from_state_props(state_props=state_props) + def _validate_service_integration_is_supported(self): + # As no aws-sdk support catalog is available, allow invalid aws-sdk integration to fail at runtime. + pass def _get_sfn_resource_type(self) -> str: return f"{self.resource.service_name}:{self.resource.api_name}" diff --git a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_unsupported.py b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_unsupported.py index 421e3c8619fa6..0719c6d2e73a3 100644 --- a/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_unsupported.py +++ b/localstack-core/localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_unsupported.py @@ -25,6 +25,10 @@ class StateTaskServiceUnsupported(StateTaskServiceCallback): def __init__(self): super().__init__(supported_integration_patterns=_SUPPORTED_INTEGRATION_PATTERNS) + def _validate_service_integration_is_supported(self): + # Attempts to execute any derivation; logging this incident on creation. + self._log_unsupported_warning() + def _log_unsupported_warning(self): # Logs that the optimised service integration is not supported, # however the request is being forwarded to the service. diff --git a/localstack-core/localstack/testing/snapshots/transformer_utility.py b/localstack-core/localstack/testing/snapshots/transformer_utility.py index de8f96e8cd13f..0fe3eae9d38da 100644 --- a/localstack-core/localstack/testing/snapshots/transformer_utility.py +++ b/localstack-core/localstack/testing/snapshots/transformer_utility.py @@ -717,25 +717,35 @@ def sfn_sqs_integration(): def stepfunctions_api(): return [ JsonpathTransformer( - "$..SdkHttpMetadata.AllHttpHeaders.Date", + "$..SdkHttpMetadata..Date", "date", replace_reference=False, ), JsonpathTransformer( - "$..SdkHttpMetadata.AllHttpHeaders.X-Amzn-Trace-Id", - "X-Amzn-Trace-Id", + "$..SdkResponseMetadata..RequestId", + "RequestId", replace_reference=False, ), JsonpathTransformer( - "$..SdkHttpMetadata.HttpHeaders.Date", - "date", + "$..X-Amzn-Trace-Id", + "X-Amzn-Trace-Id", replace_reference=False, ), JsonpathTransformer( - "$..SdkHttpMetadata.HttpHeaders.X-Amzn-Trace-Id", + "$..X-Amzn-Trace-Id", "X-Amzn-Trace-Id", replace_reference=False, ), + JsonpathTransformer( + "$..x-amz-crc32", + "x-amz-crc32", + replace_reference=False, + ), + JsonpathTransformer( + "$..x-amzn-RequestId", + "x-amzn-RequestId", + replace_reference=False, + ), KeyValueBasedTransformer(_transform_stepfunctions_cause_details, "json-input"), ] diff --git a/tests/aws/services/stepfunctions/templates/services/services_templates.py b/tests/aws/services/stepfunctions/templates/services/services_templates.py index eabb59b58e1e1..d8ab0e7ece271 100644 --- a/tests/aws/services/stepfunctions/templates/services/services_templates.py +++ b/tests/aws/services/stepfunctions/templates/services/services_templates.py @@ -98,6 +98,12 @@ class ServicesTemplates(TemplateLoader): DYNAMODB_PUT_UPDATE_GET_ITEM: Final[str] = os.path.join( _THIS_FOLDER, "statemachines/dynamodb_put_update_get_item.json5" ) + DYNAMODB_PUT_QUERY: Final[str] = os.path.join( + _THIS_FOLDER, "statemachines/dynamodb_put_query.json5" + ) + INVALID_INTEGRATION_DYNAMODB_QUERY: Final[str] = os.path.join( + _THIS_FOLDER, "statemachines/invalid_integration_dynamodb_query.json5" + ) # Lambda Functions. LAMBDA_ID_FUNCTION: Final[str] = os.path.join(_THIS_FOLDER, "lambdafunctions/id_function.py") LAMBDA_RETURN_BYTES_STR: Final[str] = os.path.join( diff --git a/tests/aws/services/stepfunctions/templates/services/statemachines/dynamodb_put_query.json5 b/tests/aws/services/stepfunctions/templates/services/statemachines/dynamodb_put_query.json5 new file mode 100644 index 0000000000000..9bfbc8f93281f --- /dev/null +++ b/tests/aws/services/stepfunctions/templates/services/statemachines/dynamodb_put_query.json5 @@ -0,0 +1,30 @@ +{ + "StartAt": "PutItem", + "States": { + "PutItem": { + "Type": "Task", + "Resource": "arn:aws:states:::dynamodb:putItem", + "Parameters": { + "TableName.$": "$.TableName", + "Item.$": "$.Item" + }, + "ResultPath": "$.putItemOutput", + "Next": "QueryItems" + }, + "QueryItems": { + "Type": "Task", + // Use aws-sdk for the query call: see AWS's limitations + // of the ddb optimised service integration. + "Resource": "arn:aws:states:::aws-sdk:dynamodb:query", + "ResultPath": "$.queryOutput", + "Parameters": { + "TableName.$": "$.TableName", + "KeyConditionExpression": "id = :id", + "ExpressionAttributeValues": { + ":id.$": "$.Item.id" + } + }, + "End": true + } + } +} diff --git a/tests/aws/services/stepfunctions/templates/services/statemachines/invalid_integration_dynamodb_query.json5 b/tests/aws/services/stepfunctions/templates/services/statemachines/invalid_integration_dynamodb_query.json5 new file mode 100644 index 0000000000000..ab28d80b7ed39 --- /dev/null +++ b/tests/aws/services/stepfunctions/templates/services/statemachines/invalid_integration_dynamodb_query.json5 @@ -0,0 +1,20 @@ +{ + "StartAt": "Query", + "States": { + "Query": { + "Type": "Task", + "Resource": "arn:aws:states:::dynamodb:query", + "ResultPath": "$.queryItemOutput", + "Parameters": { + "TableName.$": "$.TableName", + "KeyConditionExpression": "id = :id", + "ExpressionAttributeValues": { + ":id": { + "S.$": "$.Item.id.S" + } + } + }, + "End": true + } + } +} diff --git a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py index 67c167a2a10e7..329fd3182ca39 100644 --- a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py +++ b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py @@ -1,8 +1,12 @@ import json +import pytest +from localstack_snapshot.snapshots.transformer import RegexTransformer + from localstack.testing.pytest import markers from localstack.testing.pytest.stepfunctions.utils import ( create_and_record_execution, + create_state_machine_with_iam_role, ) from localstack.utils.strings import short_uid from tests.aws.services.stepfunctions.templates.services.services_templates import ( @@ -18,54 +22,36 @@ ] ) class TestTaskServiceDynamoDB: - @markers.aws.needs_fixing - def test_put_get_item( + @markers.aws.validated + @pytest.mark.parametrize( + "template_path", + [ + ST.DYNAMODB_PUT_GET_ITEM, + ST.DYNAMODB_PUT_DELETE_ITEM, + ST.DYNAMODB_PUT_UPDATE_GET_ITEM, + ST.DYNAMODB_PUT_QUERY, + ], + ids=[ + "DYNAMODB_PUT_GET_ITEM", + "DYNAMODB_PUT_DELETE_ITEM", + "DYNAMODB_PUT_UPDATE_GET_ITEM", + "DYNAMODB_PUT_QUERY", + ], + ) + def test_base_integrations( self, aws_client, create_state_machine_iam_role, create_state_machine, dynamodb_create_table, sfn_snapshot, + template_path, ): - sfn_snapshot.add_transformer(sfn_snapshot.transform.dynamodb_api()) - table_name = f"sfn_test_table_{short_uid()}" dynamodb_create_table(table_name=table_name, partition_key="id", client=aws_client.dynamodb) + sfn_snapshot.add_transformer(RegexTransformer(table_name, "table-name")) - template = ST.load_sfn_template(ST.DYNAMODB_PUT_GET_ITEM) - definition = json.dumps(template) - - exec_input = json.dumps( - { - "TableName": table_name, - "Item": {"data": {"S": "HelloWorld"}, "id": {"S": "id1"}}, - "Key": {"id": {"S": "id1"}}, - } - ) - create_and_record_execution( - aws_client, - create_state_machine_iam_role, - create_state_machine, - sfn_snapshot, - definition, - exec_input, - ) - - @markers.aws.needs_fixing - def test_put_delete_item( - self, - aws_client, - create_state_machine_iam_role, - create_state_machine, - dynamodb_create_table, - sfn_snapshot, - ): - sfn_snapshot.add_transformer(sfn_snapshot.transform.dynamodb_api()) - - table_name = f"sfn_test_table_{short_uid()}" - dynamodb_create_table(table_name=table_name, partition_key="id", client=aws_client.dynamodb) - - template = ST.load_sfn_template(ST.DYNAMODB_PUT_DELETE_ITEM) + template = ST.load_sfn_template(template_path) definition = json.dumps(template) exec_input = json.dumps( @@ -73,6 +59,8 @@ def test_put_delete_item( "TableName": table_name, "Item": {"data": {"S": "HelloWorld"}, "id": {"S": "id1"}}, "Key": {"id": {"S": "id1"}}, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": {":r": {"S": "HelloWorldUpdated"}}, } ) create_and_record_execution( @@ -84,37 +72,25 @@ def test_put_delete_item( exec_input, ) - @markers.aws.needs_fixing - def test_put_update_get_item( + @markers.aws.validated + @markers.snapshot.skip_snapshot_verify(paths=["$..exception_value"]) + def test_invalid_integration( self, aws_client, create_state_machine_iam_role, create_state_machine, - dynamodb_create_table, sfn_snapshot, ): - sfn_snapshot.add_transformer(sfn_snapshot.transform.dynamodb_api()) - - table_name = f"sfn_test_table_{short_uid()}" - dynamodb_create_table(table_name=table_name, partition_key="id", client=aws_client.dynamodb) - - template = ST.load_sfn_template(ST.DYNAMODB_PUT_UPDATE_GET_ITEM) + template = ST.load_sfn_template(ST.INVALID_INTEGRATION_DYNAMODB_QUERY) definition = json.dumps(template) - - exec_input = json.dumps( - { - "TableName": table_name, - "Item": {"data": {"S": "HelloWorld"}, "id": {"S": "id1"}}, - "Key": {"id": {"S": "id1"}}, - "UpdateExpression": "set S=:r", - "ExpressionAttributeValues": {":r": {"S": "HelloWorldUpdated"}}, - } - ) - create_and_record_execution( - aws_client, - create_state_machine_iam_role, - create_state_machine, - sfn_snapshot, - definition, - exec_input, + with pytest.raises(Exception) as ex: + create_state_machine_with_iam_role( + aws_client, + create_state_machine_iam_role, + create_state_machine, + sfn_snapshot, + definition, + ) + sfn_snapshot.match( + "exception", {"exception_typename": ex.typename, "exception_value": ex.value} ) diff --git a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.snapshot.json b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.snapshot.json index 5ad4cdefdc5a5..a3014785e3f0e 100644 --- a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.snapshot.json +++ b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.snapshot.json @@ -1,13 +1,13 @@ { - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_get_item": { - "recorded-date": "27-07-2023, 19:08:09", + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_GET_ITEM]": { + "recorded-date": "03-02-2025, 16:31:26", "recorded-content": { "get_execution_history": { "events": [ { "executionStartedEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -20,6 +20,12 @@ "id": { "S": "id1" } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } } }, "inputDetails": { @@ -37,7 +43,7 @@ "previousEventId": 0, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -50,6 +56,12 @@ "id": { "S": "id1" } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } } }, "inputDetails": { @@ -65,7 +77,7 @@ "previousEventId": 2, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -105,12 +117,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -125,13 +133,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -149,7 +157,7 @@ "stateExitedEventDetails": { "name": "PutItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -163,6 +171,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -172,12 +186,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -192,13 +202,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -214,7 +224,7 @@ "previousEventId": 6, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -228,6 +238,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -237,12 +253,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -257,13 +269,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -280,7 +292,7 @@ "previousEventId": 7, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Key": { "id": { "S": "id1" @@ -325,12 +337,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "1813032717" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "53" ], @@ -345,13 +353,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "1813032717", - "x-amzn-RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -369,7 +377,7 @@ "stateExitedEventDetails": { "name": "GetItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -383,6 +391,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -392,12 +406,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -412,13 +422,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "getItemOutput": { @@ -438,12 +448,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "1813032717" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "53" ], @@ -458,13 +464,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "1813032717", - "x-amzn-RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -478,7 +484,7 @@ { "executionSucceededEventDetails": { "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -492,6 +498,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -501,12 +513,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -521,13 +529,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "TLCAI02ODBM4QVBRE5EBQRGV7RVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "getItemOutput": { @@ -547,12 +555,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "1813032717" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "53" ], @@ -567,13 +571,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "1813032717", - "x-amzn-RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "6RJS4OVKV3U8S5B4TQ5EUM58CJVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -594,15 +598,15 @@ } } }, - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_delete_item": { - "recorded-date": "27-07-2023, 19:08:33", + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_DELETE_ITEM]": { + "recorded-date": "03-02-2025, 16:31:51", "recorded-content": { "get_execution_history": { "events": [ { "executionStartedEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -615,6 +619,12 @@ "id": { "S": "id1" } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } } }, "inputDetails": { @@ -632,7 +642,7 @@ "previousEventId": 0, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -645,6 +655,12 @@ "id": { "S": "id1" } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } } }, "inputDetails": { @@ -660,7 +676,7 @@ "previousEventId": 2, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -700,12 +716,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -720,13 +732,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -744,7 +756,7 @@ "stateExitedEventDetails": { "name": "PutItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -758,6 +770,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -767,12 +785,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -787,13 +801,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -809,7 +823,7 @@ "previousEventId": 6, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -823,6 +837,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -832,12 +852,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -852,13 +868,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -875,7 +891,7 @@ "previousEventId": 7, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Key": { "id": { "S": "id1" @@ -912,12 +928,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -932,13 +944,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -956,7 +968,7 @@ "stateExitedEventDetails": { "name": "DeleteItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -970,6 +982,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -979,12 +997,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -999,13 +1013,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "deleteItemOutput": { @@ -1017,12 +1031,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1037,13 +1047,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1057,7 +1067,7 @@ { "executionSucceededEventDetails": { "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1071,6 +1081,12 @@ "S": "id1" } }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, "putItemOutput": { "SdkHttpMetadata": { "AllHttpHeaders": { @@ -1080,12 +1096,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1100,13 +1112,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9G7MGUNQPE8VF541V6FHTTOD5JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "deleteItemOutput": { @@ -1118,12 +1130,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1138,13 +1146,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9JEL61JFE4IESN78O964TCVG5VVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1165,15 +1173,15 @@ } } }, - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_update_get_item": { - "recorded-date": "27-07-2023, 19:09:00", + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_UPDATE_GET_ITEM]": { + "recorded-date": "03-02-2025, 16:34:47", "recorded-content": { "get_execution_history": { "events": [ { "executionStartedEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1209,7 +1217,7 @@ "previousEventId": 0, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1243,7 +1251,7 @@ "previousEventId": 2, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1283,12 +1291,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1303,13 +1307,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -1327,7 +1331,7 @@ "stateExitedEventDetails": { "name": "PutItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1356,12 +1360,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1376,13 +1376,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1398,7 +1398,7 @@ "previousEventId": 6, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1427,12 +1427,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1447,13 +1443,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1471,7 +1467,7 @@ "taskScheduledEventDetails": { "parameters": { "ReturnValues": "UPDATED_NEW", - "TableName": "", + "TableName": "table-name", "UpdateExpression": "set S=:r", "Key": { "id": { @@ -1519,12 +1515,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "739724371" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "46" ], @@ -1539,13 +1531,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "739724371", - "x-amzn-RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -1563,7 +1555,7 @@ "stateExitedEventDetails": { "name": "UpdateItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1592,12 +1584,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1612,13 +1600,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "updateItemOutput": { @@ -1635,12 +1623,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "739724371" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "46" ], @@ -1655,13 +1639,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "739724371", - "x-amzn-RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1677,7 +1661,7 @@ "previousEventId": 11, "stateEnteredEventDetails": { "input": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1706,12 +1690,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1726,13 +1706,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "updateItemOutput": { @@ -1749,12 +1729,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "739724371" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "46" ], @@ -1769,13 +1745,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "739724371", - "x-amzn-RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -1792,7 +1768,7 @@ "previousEventId": 12, "taskScheduledEventDetails": { "parameters": { - "TableName": "", + "TableName": "table-name", "Key": { "id": { "S": "id1" @@ -1840,12 +1816,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2465835545" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "83" ], @@ -1860,13 +1832,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2465835545", - "x-amzn-RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "outputDetails": { @@ -1884,7 +1856,7 @@ "stateExitedEventDetails": { "name": "GetItem", "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -1913,12 +1885,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -1933,13 +1901,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "updateItemOutput": { @@ -1956,12 +1924,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "739724371" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "46" ], @@ -1976,13 +1940,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "739724371", - "x-amzn-RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "getItemOutput": { @@ -2005,12 +1969,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2465835545" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "83" ], @@ -2025,13 +1985,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2465835545", - "x-amzn-RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -2045,7 +2005,7 @@ { "executionSucceededEventDetails": { "output": { - "TableName": "", + "TableName": "table-name", "Item": { "data": { "S": "HelloWorld" @@ -2074,12 +2034,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2745614147" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "2" ], @@ -2094,13 +2050,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2745614147", - "x-amzn-RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "LH9OOF5CA0K11O6TRP9TRBVR7JVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "updateItemOutput": { @@ -2117,12 +2073,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "739724371" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "46" ], @@ -2137,13 +2089,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "739724371", - "x-amzn-RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "FMELMIEAQ5RL2JEARATGSS78BVVV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } }, "getItemOutput": { @@ -2166,12 +2118,8 @@ "Connection": [ "keep-alive" ], - "x-amzn-RequestId": [ - "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" - ], - "x-amz-crc32": [ - "2465835545" - ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", "Content-Length": [ "83" ], @@ -2186,13 +2134,13 @@ "Content-Type": "application/x-amz-json-1.0", "Date": "date", "Server": "Server", - "x-amz-crc32": "2465835545", - "x-amzn-RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { - "RequestId": "9ISDHLITF12TP4KRDQPQSEFIT3VV4KQNSO5AEMVJF66Q9ASUAAJG" + "RequestId": "RequestId" } } }, @@ -2212,5 +2160,530 @@ } } } + }, + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_invalid_integration": { + "recorded-date": "03-02-2025, 16:35:03", + "recorded-content": { + "exception": { + "exception_typename": "InvalidDefinition", + "exception_value": "An error occurred (InvalidDefinition) when calling the CreateStateMachine operation: Invalid State Machine Definition: 'SCHEMA_VALIDATION_FAILED: The resource provided arn::states:::dynamodb:query is not recognized. The value is not a valid resource ARN, or the resource is not available in this region. at /States/Query/Resource'" + } + } + }, + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_QUERY]": { + "recorded-date": "05-02-2025, 09:50:00", + "recorded-content": { + "get_execution_history": { + "events": [ + { + "executionStartedEventDetails": { + "input": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + } + }, + "inputDetails": { + "truncated": false + }, + "roleArn": "snf_role_arn" + }, + "id": 1, + "previousEventId": 0, + "timestamp": "timestamp", + "type": "ExecutionStarted" + }, + { + "id": 2, + "previousEventId": 0, + "stateEnteredEventDetails": { + "input": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + } + }, + "inputDetails": { + "truncated": false + }, + "name": "PutItem" + }, + "timestamp": "timestamp", + "type": "TaskStateEntered" + }, + { + "id": 3, + "previousEventId": 2, + "taskScheduledEventDetails": { + "parameters": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + } + }, + "region": "", + "resource": "putItem", + "resourceType": "dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskScheduled" + }, + { + "id": 4, + "previousEventId": 3, + "taskStartedEventDetails": { + "resource": "putItem", + "resourceType": "dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskStarted" + }, + { + "id": 5, + "previousEventId": 4, + "taskSucceededEventDetails": { + "output": { + "SdkHttpMetadata": { + "AllHttpHeaders": { + "Server": [ + "Server" + ], + "Connection": [ + "keep-alive" + ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", + "Content-Length": [ + "2" + ], + "Date": "date", + "Content-Type": [ + "application/x-amz-json-1.0" + ] + }, + "HttpHeaders": { + "Connection": "keep-alive", + "Content-Length": "2", + "Content-Type": "application/x-amz-json-1.0", + "Date": "date", + "Server": "Server", + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" + }, + "HttpStatusCode": 200 + }, + "SdkResponseMetadata": { + "RequestId": "RequestId" + } + }, + "outputDetails": { + "truncated": false + }, + "resource": "putItem", + "resourceType": "dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskSucceeded" + }, + { + "id": 6, + "previousEventId": 5, + "stateExitedEventDetails": { + "name": "PutItem", + "output": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, + "putItemOutput": { + "SdkHttpMetadata": { + "AllHttpHeaders": { + "Server": [ + "Server" + ], + "Connection": [ + "keep-alive" + ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", + "Content-Length": [ + "2" + ], + "Date": "date", + "Content-Type": [ + "application/x-amz-json-1.0" + ] + }, + "HttpHeaders": { + "Connection": "keep-alive", + "Content-Length": "2", + "Content-Type": "application/x-amz-json-1.0", + "Date": "date", + "Server": "Server", + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" + }, + "HttpStatusCode": 200 + }, + "SdkResponseMetadata": { + "RequestId": "RequestId" + } + } + }, + "outputDetails": { + "truncated": false + } + }, + "timestamp": "timestamp", + "type": "TaskStateExited" + }, + { + "id": 7, + "previousEventId": 6, + "stateEnteredEventDetails": { + "input": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, + "putItemOutput": { + "SdkHttpMetadata": { + "AllHttpHeaders": { + "Server": [ + "Server" + ], + "Connection": [ + "keep-alive" + ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", + "Content-Length": [ + "2" + ], + "Date": "date", + "Content-Type": [ + "application/x-amz-json-1.0" + ] + }, + "HttpHeaders": { + "Connection": "keep-alive", + "Content-Length": "2", + "Content-Type": "application/x-amz-json-1.0", + "Date": "date", + "Server": "Server", + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" + }, + "HttpStatusCode": 200 + }, + "SdkResponseMetadata": { + "RequestId": "RequestId" + } + } + }, + "inputDetails": { + "truncated": false + }, + "name": "QueryItems" + }, + "timestamp": "timestamp", + "type": "TaskStateEntered" + }, + { + "id": 8, + "previousEventId": 7, + "taskScheduledEventDetails": { + "parameters": { + "KeyConditionExpression": "id = :id", + "ExpressionAttributeValues": { + ":id": { + "S": "id1" + } + }, + "TableName": "table-name" + }, + "region": "", + "resource": "query", + "resourceType": "aws-sdk:dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskScheduled" + }, + { + "id": 9, + "previousEventId": 8, + "taskStartedEventDetails": { + "resource": "query", + "resourceType": "aws-sdk:dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskStarted" + }, + { + "id": 10, + "previousEventId": 9, + "taskSucceededEventDetails": { + "output": { + "Count": 1, + "Items": [ + { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + } + ], + "ScannedCount": 1 + }, + "outputDetails": { + "truncated": false + }, + "resource": "query", + "resourceType": "aws-sdk:dynamodb" + }, + "timestamp": "timestamp", + "type": "TaskSucceeded" + }, + { + "id": 11, + "previousEventId": 10, + "stateExitedEventDetails": { + "name": "QueryItems", + "output": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, + "putItemOutput": { + "SdkHttpMetadata": { + "AllHttpHeaders": { + "Server": [ + "Server" + ], + "Connection": [ + "keep-alive" + ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", + "Content-Length": [ + "2" + ], + "Date": "date", + "Content-Type": [ + "application/x-amz-json-1.0" + ] + }, + "HttpHeaders": { + "Connection": "keep-alive", + "Content-Length": "2", + "Content-Type": "application/x-amz-json-1.0", + "Date": "date", + "Server": "Server", + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" + }, + "HttpStatusCode": 200 + }, + "SdkResponseMetadata": { + "RequestId": "RequestId" + } + }, + "queryOutput": { + "Count": 1, + "Items": [ + { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + } + ], + "ScannedCount": 1 + } + }, + "outputDetails": { + "truncated": false + } + }, + "timestamp": "timestamp", + "type": "TaskStateExited" + }, + { + "executionSucceededEventDetails": { + "output": { + "TableName": "table-name", + "Item": { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + }, + "Key": { + "id": { + "S": "id1" + } + }, + "UpdateExpression": "set S=:r", + "ExpressionAttributeValues": { + ":r": { + "S": "HelloWorldUpdated" + } + }, + "putItemOutput": { + "SdkHttpMetadata": { + "AllHttpHeaders": { + "Server": [ + "Server" + ], + "Connection": [ + "keep-alive" + ], + "x-amzn-RequestId": "x-amzn-RequestId", + "x-amz-crc32": "x-amz-crc32", + "Content-Length": [ + "2" + ], + "Date": "date", + "Content-Type": [ + "application/x-amz-json-1.0" + ] + }, + "HttpHeaders": { + "Connection": "keep-alive", + "Content-Length": "2", + "Content-Type": "application/x-amz-json-1.0", + "Date": "date", + "Server": "Server", + "x-amz-crc32": "x-amz-crc32", + "x-amzn-RequestId": "x-amzn-RequestId" + }, + "HttpStatusCode": 200 + }, + "SdkResponseMetadata": { + "RequestId": "RequestId" + } + }, + "queryOutput": { + "Count": 1, + "Items": [ + { + "data": { + "S": "HelloWorld" + }, + "id": { + "S": "id1" + } + } + ], + "ScannedCount": 1 + } + }, + "outputDetails": { + "truncated": false + } + }, + "id": 12, + "previousEventId": 11, + "timestamp": "timestamp", + "type": "ExecutionSucceeded" + } + ], + "ResponseMetadata": { + "HTTPHeaders": {}, + "HTTPStatusCode": 200 + } + } + } } } diff --git a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.validation.json b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.validation.json index fdc4e0377286b..690385c45fd30 100644 --- a/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.validation.json +++ b/tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.validation.json @@ -1,11 +1,17 @@ { - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_delete_item": { - "last_validated_date": "2023-07-27T17:08:33+00:00" + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_DELETE_ITEM]": { + "last_validated_date": "2025-02-03T16:31:51+00:00" }, - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_get_item": { - "last_validated_date": "2023-07-27T17:08:09+00:00" + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_GET_ITEM]": { + "last_validated_date": "2025-02-03T16:31:26+00:00" }, - "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_put_update_get_item": { - "last_validated_date": "2023-07-27T17:09:00+00:00" + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_QUERY]": { + "last_validated_date": "2025-02-05T09:50:00+00:00" + }, + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_base_integrations[DYNAMODB_PUT_UPDATE_GET_ITEM]": { + "last_validated_date": "2025-02-03T16:34:47+00:00" + }, + "tests/aws/services/stepfunctions/v2/services/test_dynamodb_task_service.py::TestTaskServiceDynamoDB::test_invalid_integration": { + "last_validated_date": "2025-02-03T16:35:03+00:00" } }