localstack-core 4.7.1.dev23__py3-none-any.whl → 4.7.1.dev24__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- localstack/aws/api/apigateway/__init__.py +87 -110
- localstack/aws/api/core.py +2 -3
- localstack/aws/api/events/__init__.py +12 -16
- localstack/aws/api/logs/__init__.py +5 -8
- localstack/aws/api/pipes/__init__.py +24 -32
- localstack/aws/api/scheduler/__init__.py +14 -16
- localstack/aws/api/stepfunctions/__init__.py +88 -114
- localstack/aws/api/support/__init__.py +8 -9
- localstack/aws/chain.py +2 -2
- localstack/aws/client.py +7 -9
- localstack/aws/connect.py +40 -39
- localstack/aws/forwarder.py +5 -4
- localstack/aws/gateway.py +1 -3
- localstack/aws/handlers/analytics.py +1 -2
- localstack/aws/handlers/cors.py +4 -5
- localstack/aws/handlers/logging.py +1 -2
- localstack/aws/handlers/metric_handler.py +3 -4
- localstack/aws/handlers/service.py +5 -5
- localstack/aws/mocking.py +15 -24
- localstack/aws/protocol/op_router.py +11 -10
- localstack/aws/protocol/parser.py +16 -17
- localstack/aws/protocol/serializer.py +37 -40
- localstack/aws/protocol/service_router.py +13 -13
- localstack/aws/protocol/validate.py +5 -5
- localstack/aws/scaffold.py +8 -9
- localstack/aws/serving/edge.py +5 -6
- localstack/aws/serving/hypercorn.py +2 -2
- localstack/aws/serving/twisted.py +1 -2
- localstack/aws/serving/werkzeug.py +2 -2
- localstack/aws/skeleton.py +7 -8
- localstack/aws/spec.py +29 -30
- localstack/cli/localstack.py +6 -6
- localstack/cli/lpm.py +2 -2
- localstack/config.py +14 -15
- localstack/deprecations.py +5 -5
- localstack/dev/run/__main__.py +4 -4
- localstack/dev/run/paths.py +5 -5
- localstack/dns/models.py +2 -1
- localstack/dns/server.py +3 -2
- localstack/http/dispatcher.py +1 -2
- localstack/http/response.py +2 -2
- localstack/http/router.py +1 -1
- localstack/http/trace.py +2 -1
- localstack/logging/format.py +3 -3
- localstack/packages/api.py +5 -5
- localstack/packages/core.py +3 -3
- localstack/packages/debugpy.py +1 -3
- localstack/packages/ffmpeg.py +1 -2
- localstack/packages/java.py +1 -2
- localstack/packages/terraform.py +1 -2
- localstack/runtime/init.py +6 -7
- localstack/runtime/shutdown.py +2 -1
- localstack/services/apigateway/exporter.py +1 -2
- localstack/services/apigateway/helpers.py +6 -6
- localstack/services/apigateway/legacy/context.py +21 -21
- localstack/services/apigateway/legacy/helpers.py +20 -20
- localstack/services/apigateway/legacy/integration.py +7 -7
- localstack/services/apigateway/legacy/router_asf.py +2 -2
- localstack/services/apigateway/legacy/templates.py +5 -5
- localstack/services/apigateway/models.py +16 -16
- localstack/services/apigateway/next_gen/execute_api/api.py +2 -2
- localstack/services/apigateway/next_gen/execute_api/context.py +25 -25
- localstack/services/apigateway/next_gen/execute_api/handlers/api_key_validation.py +2 -5
- localstack/services/apigateway/next_gen/execute_api/handlers/parse.py +1 -2
- localstack/services/apigateway/next_gen/execute_api/handlers/resource_router.py +1 -1
- localstack/services/apigateway/next_gen/execute_api/header_utils.py +1 -1
- localstack/services/apigateway/next_gen/execute_api/helpers.py +2 -2
- localstack/services/apigateway/next_gen/execute_api/integrations/aws.py +6 -6
- localstack/services/apigateway/next_gen/execute_api/integrations/http.py +9 -9
- localstack/services/apigateway/next_gen/execute_api/variables.py +63 -63
- localstack/services/apigateway/resource_providers/aws_apigateway_account.py +3 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_account_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_apikey.py +14 -14
- localstack/services/apigateway/resource_providers/aws_apigateway_apikey_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_deployment.py +46 -46
- localstack/services/apigateway/resource_providers/aws_apigateway_deployment_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_domainname.py +18 -18
- localstack/services/apigateway/resource_providers/aws_apigateway_domainname_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse.py +7 -7
- localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_method.py +36 -36
- localstack/services/apigateway/resource_providers/aws_apigateway_method_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_model.py +6 -6
- localstack/services/apigateway/resource_providers/aws_apigateway_model_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator.py +6 -6
- localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_resource.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_resource_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_restapi.py +26 -26
- localstack/services/apigateway/resource_providers/aws_apigateway_restapi_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_stage.py +33 -33
- localstack/services/apigateway/resource_providers/aws_apigateway_stage_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplan.py +18 -18
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplan_plugin.py +1 -3
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey.py +5 -5
- localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey_plugin.py +1 -3
- localstack/services/cdk/resource_providers/cdk_metadata.py +2 -2
- localstack/services/cdk/resource_providers/cdk_metadata_plugin.py +1 -3
- localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate.py +14 -14
- localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate_plugin.py +1 -3
- localstack/services/cloudformation/cfn_utils.py +1 -1
- localstack/services/cloudformation/deployment_utils.py +2 -2
- localstack/services/cloudformation/engine/changes.py +3 -3
- localstack/services/cloudformation/engine/entities.py +12 -12
- localstack/services/cloudformation/engine/parameters.py +3 -3
- localstack/services/cloudformation/engine/template_deployer.py +9 -10
- localstack/services/cloudformation/engine/transformers.py +5 -4
- localstack/services/cloudformation/engine/types.py +5 -4
- localstack/services/cloudformation/engine/v2/change_set_model.py +9 -8
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +6 -6
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +9 -9
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +15 -14
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py +5 -5
- localstack/services/cloudformation/provider_utils.py +2 -2
- localstack/services/cloudformation/resource_provider.py +10 -9
- localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py +7 -7
- localstack/services/cloudformation/resource_providers/aws_cloudformation_macro_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_stack.py +9 -9
- localstack/services/cloudformation/resource_providers/aws_cloudformation_stack_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition.py +6 -6
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition_plugin.py +1 -3
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle.py +2 -2
- localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle_plugin.py +1 -3
- localstack/services/cloudformation/scaffolding/__main__.py +8 -7
- localstack/services/cloudformation/scaffolding/propgen.py +2 -2
- localstack/services/cloudformation/stores.py +2 -3
- localstack/services/cloudformation/v2/entities.py +7 -7
- localstack/services/cloudformation/v2/provider.py +10 -10
- localstack/services/cloudwatch/alarm_scheduler.py +7 -7
- localstack/services/cloudwatch/cloudwatch_database_helper.py +4 -5
- localstack/services/cloudwatch/models.py +5 -7
- localstack/services/cloudwatch/provider.py +12 -12
- localstack/services/cloudwatch/provider_v2.py +2 -4
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.py +40 -40
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm_plugin.py +1 -3
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm.py +12 -12
- localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm_plugin.py +1 -3
- localstack/services/dynamodb/packages.py +1 -2
- localstack/services/dynamodb/provider.py +7 -8
- localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable.py +63 -63
- localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable_plugin.py +1 -3
- localstack/services/dynamodb/resource_providers/aws_dynamodb_table.py +57 -57
- localstack/services/dynamodb/resource_providers/aws_dynamodb_table_plugin.py +1 -3
- localstack/services/dynamodb/utils.py +13 -14
- localstack/services/dynamodb/v2/provider.py +6 -7
- localstack/services/dynamodbstreams/dynamodbstreams_api.py +2 -2
- localstack/services/dynamodbstreams/models.py +1 -3
- localstack/services/ec2/patches.py +4 -5
- localstack/services/ec2/provider.py +3 -3
- localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions.py +10 -10
- localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_instance.py +96 -96
- localstack/services/ec2/resource_providers/aws_ec2_instance_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_internetgateway.py +5 -5
- localstack/services/ec2/resource_providers/aws_ec2_internetgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_keypair.py +10 -10
- localstack/services/ec2/resource_providers/aws_ec2_keypair_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_natgateway.py +13 -13
- localstack/services/ec2/resource_providers/aws_ec2_natgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_networkacl.py +6 -6
- localstack/services/ec2/resource_providers/aws_ec2_networkacl_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_prefixlist.py +14 -14
- localstack/services/ec2/resource_providers/aws_ec2_prefixlist_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_route.py +15 -15
- localstack/services/ec2/resource_providers/aws_ec2_route_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_routetable.py +6 -6
- localstack/services/ec2/resource_providers/aws_ec2_routetable_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_securitygroup.py +29 -29
- localstack/services/ec2/resource_providers/aws_ec2_securitygroup_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_subnet.py +19 -19
- localstack/services/ec2/resource_providers/aws_ec2_subnet_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation.py +4 -4
- localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_transitgateway.py +16 -16
- localstack/services/ec2/resource_providers/aws_ec2_transitgateway_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment.py +9 -9
- localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpc.py +15 -15
- localstack/services/ec2/resource_providers/aws_ec2_vpc_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint.py +13 -13
- localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint_plugin.py +1 -3
- localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment.py +5 -5
- localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment_plugin.py +1 -3
- localstack/services/ecr/resource_providers/aws_ecr_repository.py +17 -17
- localstack/services/ecr/resource_providers/aws_ecr_repository_plugin.py +1 -3
- localstack/services/edge.py +5 -5
- localstack/services/es/provider.py +19 -19
- localstack/services/events/archive.py +2 -2
- localstack/services/events/connection.py +5 -5
- localstack/services/events/event_bus.py +9 -9
- localstack/services/events/models.py +25 -25
- localstack/services/events/provider.py +12 -12
- localstack/services/events/replay.py +3 -3
- localstack/services/events/resource_providers/aws_events_apidestination.py +8 -8
- localstack/services/events/resource_providers/aws_events_apidestination_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_connection.py +27 -27
- localstack/services/events/resource_providers/aws_events_connection_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_eventbus.py +9 -9
- localstack/services/events/resource_providers/aws_events_eventbus_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_eventbuspolicy.py +11 -11
- localstack/services/events/resource_providers/aws_events_eventbuspolicy_plugin.py +1 -3
- localstack/services/events/resource_providers/aws_events_rule.py +82 -82
- localstack/services/events/resource_providers/aws_events_rule_plugin.py +1 -3
- localstack/services/events/rule.py +15 -15
- localstack/services/events/target.py +5 -5
- localstack/services/events/utils.py +7 -7
- localstack/services/events/v1/models.py +1 -3
- localstack/services/events/v1/provider.py +10 -10
- localstack/services/firehose/models.py +1 -3
- localstack/services/firehose/provider.py +11 -12
- localstack/services/iam/iam_patches.py +5 -6
- localstack/services/iam/provider.py +4 -4
- localstack/services/iam/resource_providers/aws_iam_accesskey.py +6 -6
- localstack/services/iam/resource_providers/aws_iam_accesskey_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_group.py +9 -9
- localstack/services/iam/resource_providers/aws_iam_group_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_instanceprofile.py +5 -5
- localstack/services/iam/resource_providers/aws_iam_instanceprofile_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_managedpolicy.py +9 -9
- localstack/services/iam/resource_providers/aws_iam_managedpolicy_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_policy.py +7 -7
- localstack/services/iam/resource_providers/aws_iam_policy_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_role.py +16 -16
- localstack/services/iam/resource_providers/aws_iam_role_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_servercertificate.py +10 -10
- localstack/services/iam/resource_providers/aws_iam_servercertificate_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_servicelinkedrole.py +5 -5
- localstack/services/iam/resource_providers/aws_iam_servicelinkedrole_plugin.py +1 -3
- localstack/services/iam/resource_providers/aws_iam_user.py +17 -17
- localstack/services/iam/resource_providers/aws_iam_user_plugin.py +1 -3
- localstack/services/kinesis/kinesis_mock_server.py +7 -8
- localstack/services/kinesis/models.py +2 -3
- localstack/services/kinesis/packages.py +3 -3
- localstack/services/kinesis/resource_providers/aws_kinesis_stream.py +13 -13
- localstack/services/kinesis/resource_providers/aws_kinesis_stream_plugin.py +1 -3
- localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer.py +7 -7
- localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer_plugin.py +1 -3
- localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream.py +191 -191
- localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream_plugin.py +1 -3
- localstack/services/kms/models.py +14 -17
- localstack/services/kms/provider.py +2 -3
- localstack/services/kms/resource_providers/aws_kms_alias.py +3 -3
- localstack/services/kms/resource_providers/aws_kms_alias_plugin.py +1 -3
- localstack/services/kms/resource_providers/aws_kms_key.py +14 -14
- localstack/services/kms/resource_providers/aws_kms_key_plugin.py +1 -3
- localstack/services/kms/utils.py +3 -2
- localstack/services/lambda_/api_utils.py +12 -12
- localstack/services/lambda_/custom_endpoints.py +2 -2
- localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +1 -1
- localstack/services/lambda_/event_source_mapping/pipe_utils.py +2 -2
- localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
- localstack/services/lambda_/event_source_mapping/senders/sender_utils.py +2 -1
- localstack/services/lambda_/invocation/assignment.py +1 -2
- localstack/services/lambda_/invocation/docker_runtime_executor.py +5 -4
- localstack/services/lambda_/invocation/execution_environment.py +4 -4
- localstack/services/lambda_/invocation/executor_endpoint.py +5 -5
- localstack/services/lambda_/invocation/internal_sqs_queue.py +1 -1
- localstack/services/lambda_/invocation/lambda_models.py +23 -23
- localstack/services/lambda_/invocation/lambda_service.py +4 -4
- localstack/services/lambda_/invocation/logs.py +2 -3
- localstack/services/lambda_/invocation/runtime_executor.py +3 -3
- localstack/services/lambda_/ldm.py +2 -3
- localstack/services/lambda_/packages.py +2 -3
- localstack/services/lambda_/provider.py +3 -3
- localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig.py +8 -8
- localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig.py +11 -11
- localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.py +39 -39
- localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_function.py +54 -54
- localstack/services/lambda_/resource_providers/aws_lambda_function_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_layerversion.py +11 -11
- localstack/services/lambda_/resource_providers/aws_lambda_layerversion_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission.py +6 -6
- localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_permission.py +10 -10
- localstack/services/lambda_/resource_providers/aws_lambda_permission_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_url.py +14 -14
- localstack/services/lambda_/resource_providers/aws_lambda_url_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/aws_lambda_version.py +8 -8
- localstack/services/lambda_/resource_providers/aws_lambda_version_plugin.py +1 -3
- localstack/services/lambda_/resource_providers/lambda_alias.py +12 -12
- localstack/services/lambda_/resource_providers/lambda_alias_plugin.py +1 -3
- localstack/services/lambda_/runtimes.py +1 -3
- localstack/services/logs/models.py +1 -3
- localstack/services/logs/provider.py +3 -3
- localstack/services/logs/resource_providers/aws_logs_loggroup.py +9 -9
- localstack/services/logs/resource_providers/aws_logs_loggroup_plugin.py +1 -3
- localstack/services/logs/resource_providers/aws_logs_logstream.py +4 -4
- localstack/services/logs/resource_providers/aws_logs_logstream_plugin.py +1 -3
- localstack/services/logs/resource_providers/aws_logs_subscriptionfilter.py +7 -7
- localstack/services/logs/resource_providers/aws_logs_subscriptionfilter_plugin.py +1 -3
- localstack/services/moto.py +3 -3
- localstack/services/opensearch/cluster.py +13 -13
- localstack/services/opensearch/cluster_manager.py +13 -14
- localstack/services/opensearch/models.py +1 -3
- localstack/services/opensearch/packages.py +1 -2
- localstack/services/opensearch/provider.py +7 -8
- localstack/services/opensearch/resource_providers/aws_elasticsearch_domain.py +61 -61
- localstack/services/opensearch/resource_providers/aws_elasticsearch_domain_plugin.py +1 -3
- localstack/services/opensearch/resource_providers/aws_opensearchservice_domain.py +89 -89
- localstack/services/opensearch/resource_providers/aws_opensearchservice_domain_plugin.py +1 -3
- localstack/services/opensearch/versions.py +1 -3
- localstack/services/plugins.py +26 -25
- localstack/services/redshift/resource_providers/aws_redshift_cluster.py +57 -57
- localstack/services/redshift/resource_providers/aws_redshift_cluster_plugin.py +1 -3
- localstack/services/resource_groups/resource_providers/aws_resourcegroups_group.py +21 -21
- localstack/services/resource_groups/resource_providers/aws_resourcegroups_group_plugin.py +1 -3
- localstack/services/route53/models.py +1 -3
- localstack/services/route53/provider.py +1 -2
- localstack/services/route53/resource_providers/aws_route53_healthcheck.py +6 -6
- localstack/services/route53/resource_providers/aws_route53_healthcheck_plugin.py +1 -3
- localstack/services/route53/resource_providers/aws_route53_recordset.py +27 -27
- localstack/services/route53/resource_providers/aws_route53_recordset_plugin.py +1 -3
- localstack/services/route53resolver/models.py +8 -10
- localstack/services/route53resolver/provider.py +12 -12
- localstack/services/s3/codec.py +2 -2
- localstack/services/s3/cors.py +4 -4
- localstack/services/s3/models.py +72 -72
- localstack/services/s3/notifications.py +19 -19
- localstack/services/s3/presigned_url.py +6 -5
- localstack/services/s3/provider.py +13 -14
- localstack/services/s3/resource_providers/aws_s3_bucket.py +180 -180
- localstack/services/s3/resource_providers/aws_s3_bucket_plugin.py +1 -3
- localstack/services/s3/resource_providers/aws_s3_bucketpolicy.py +4 -4
- localstack/services/s3/resource_providers/aws_s3_bucketpolicy_plugin.py +1 -3
- localstack/services/s3/storage/core.py +4 -3
- localstack/services/s3/storage/ephemeral.py +7 -6
- localstack/services/s3/utils.py +11 -11
- localstack/services/s3/validation.py +1 -1
- localstack/services/s3/website_hosting.py +5 -5
- localstack/services/scheduler/resource_providers/aws_scheduler_schedule.py +60 -60
- localstack/services/scheduler/resource_providers/aws_scheduler_schedule_plugin.py +1 -3
- localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup.py +9 -9
- localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup_plugin.py +1 -3
- localstack/services/secretsmanager/provider.py +9 -11
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy.py +5 -5
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule.py +21 -21
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret.py +23 -23
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret_plugin.py +1 -3
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment.py +5 -5
- localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment_plugin.py +1 -3
- localstack/services/ses/provider.py +8 -8
- localstack/services/ses/resource_providers/aws_ses_emailidentity.py +21 -21
- localstack/services/ses/resource_providers/aws_ses_emailidentity_plugin.py +1 -3
- localstack/services/sns/models.py +25 -25
- localstack/services/sns/provider.py +1 -2
- localstack/services/sns/publisher.py +6 -7
- localstack/services/sns/resource_providers/aws_sns_subscription.py +13 -13
- localstack/services/sns/resource_providers/aws_sns_subscription_plugin.py +1 -3
- localstack/services/sns/resource_providers/aws_sns_topic.py +16 -16
- localstack/services/sns/resource_providers/aws_sns_topic_plugin.py +1 -3
- localstack/services/sns/resource_providers/aws_sns_topicpolicy.py +4 -4
- localstack/services/sns/resource_providers/aws_sns_topicpolicy_plugin.py +1 -3
- localstack/services/sqs/models.py +21 -22
- localstack/services/sqs/provider.py +19 -18
- localstack/services/sqs/query_api.py +2 -3
- localstack/services/sqs/resource_providers/aws_sqs_queue.py +21 -21
- localstack/services/sqs/resource_providers/aws_sqs_queue_plugin.py +1 -3
- localstack/services/sqs/resource_providers/aws_sqs_queuepolicy.py +4 -4
- localstack/services/sqs/resource_providers/aws_sqs_queuepolicy_plugin.py +1 -3
- localstack/services/sqs/utils.py +3 -3
- localstack/services/ssm/provider.py +2 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow.py +15 -15
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget.py +10 -10
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask.py +48 -48
- localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_parameter.py +10 -10
- localstack/services/ssm/resource_providers/aws_ssm_parameter_plugin.py +1 -3
- localstack/services/ssm/resource_providers/aws_ssm_patchbaseline.py +29 -29
- localstack/services/ssm/resource_providers/aws_ssm_patchbaseline_plugin.py +1 -3
- localstack/services/stepfunctions/asl/antlt4utils/antlr4utils.py +3 -4
- localstack/services/stepfunctions/asl/component/common/catch/catcher_decl.py +9 -9
- localstack/services/stepfunctions/asl/component/common/error_name/custom_error_name.py +2 -2
- localstack/services/stepfunctions/asl/component/common/error_name/error_name.py +4 -4
- localstack/services/stepfunctions/asl/component/common/error_name/failure_event.py +8 -8
- localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_binding.py +2 -2
- localstack/services/stepfunctions/asl/component/common/path/input_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/path/output_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/path/result_path.py +3 -3
- localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadbinding/payload_binding.py +3 -3
- localstack/services/stepfunctions/asl/component/common/retry/retrier_decl.py +8 -8
- localstack/services/stepfunctions/asl/component/common/string/string_expression.py +2 -2
- localstack/services/stepfunctions/asl/component/common/timeouts/timeout.py +3 -3
- localstack/services/stepfunctions/asl/component/eval_component.py +2 -3
- localstack/services/stepfunctions/asl/component/intrinsic/argument/argument.py +3 -3
- localstack/services/stepfunctions/asl/component/intrinsic/jsonata.py +2 -2
- localstack/services/stepfunctions/asl/component/program/program.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state.py +10 -11
- localstack/services/stepfunctions/asl/component/state/state_choice/choice_rule.py +11 -11
- localstack/services/stepfunctions/asl/component/state/state_choice/comparison/operator/implementations/is_operator.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_choice/state_choice.py +1 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/item_reader_decl.py +6 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/reader_config/reader_config_decl.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_eval_s3.py +2 -1
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/distributed_iteration_component.py +8 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/inline_iteration_component.py +7 -7
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/distributed_item_processor_worker.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/inline_item_processor_worker.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/map_run_record.py +10 -10
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_component.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_declaration.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_worker.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/distributed_iterator_worker.py +3 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator.py +1 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator_worker.py +5 -5
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/job.py +9 -9
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/result_writer/resource_eval/resource_eval_s3.py +2 -1
- localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +10 -11
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branch_worker.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branches_decl.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/state_parallel.py +1 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +6 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/resource.py +3 -3
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +10 -10
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_api_gateway.py +15 -15
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_batch.py +5 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +18 -17
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_dynamodb.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_ecs.py +5 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_events.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_glue.py +7 -6
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_lambda.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sfn.py +9 -8
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sns.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sqs.py +4 -4
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task_lambda.py +2 -2
- localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +2 -4
- localstack/services/stepfunctions/asl/component/state/state_pass/state_pass.py +3 -5
- localstack/services/stepfunctions/asl/component/state/state_wait/wait_function/timestamp.py +2 -2
- localstack/services/stepfunctions/asl/eval/callback/callback.py +18 -18
- localstack/services/stepfunctions/asl/eval/environment.py +15 -17
- localstack/services/stepfunctions/asl/eval/evaluation_details.py +3 -5
- localstack/services/stepfunctions/asl/eval/event/event_manager.py +9 -9
- localstack/services/stepfunctions/asl/eval/event/logging.py +3 -3
- localstack/services/stepfunctions/asl/eval/program_state.py +8 -8
- localstack/services/stepfunctions/asl/eval/states.py +11 -11
- localstack/services/stepfunctions/asl/eval/test_state/environment.py +3 -5
- localstack/services/stepfunctions/asl/eval/variable_store.py +3 -3
- localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -4
- localstack/services/stepfunctions/asl/parse/intrinsic/preprocessor.py +1 -2
- localstack/services/stepfunctions/asl/parse/preprocessor.py +30 -30
- localstack/services/stepfunctions/asl/parse/typed_props.py +2 -2
- localstack/services/stepfunctions/asl/utils/encoding.py +2 -2
- localstack/services/stepfunctions/asl/utils/json_path.py +2 -2
- localstack/services/stepfunctions/backend/activity.py +4 -4
- localstack/services/stepfunctions/backend/alias.py +6 -6
- localstack/services/stepfunctions/backend/execution.py +25 -27
- localstack/services/stepfunctions/backend/execution_worker.py +7 -7
- localstack/services/stepfunctions/backend/state_machine.py +26 -26
- localstack/services/stepfunctions/backend/test_state/execution.py +3 -4
- localstack/services/stepfunctions/backend/test_state/execution_worker.py +1 -3
- localstack/services/stepfunctions/mocking/mock_config.py +5 -5
- localstack/services/stepfunctions/mocking/mock_config_file.py +10 -10
- localstack/services/stepfunctions/provider.py +27 -37
- localstack/services/stepfunctions/quotas.py +2 -3
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity.py +6 -6
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity_plugin.py +1 -3
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine.py +25 -25
- localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine_plugin.py +1 -3
- localstack/services/stepfunctions/stepfunctions_utils.py +1 -2
- localstack/services/stores.py +7 -7
- localstack/services/transcribe/packages.py +1 -3
- localstack/services/transcribe/provider.py +2 -2
- localstack/state/inspect.py +4 -4
- localstack/state/pickle.py +16 -15
- localstack/testing/aws/asf_utils.py +3 -2
- localstack/testing/aws/lambda_utils.py +15 -14
- localstack/testing/aws/util.py +3 -2
- localstack/testing/pytest/cloudformation/fixtures.py +3 -2
- localstack/testing/pytest/container.py +5 -4
- localstack/testing/pytest/filters.py +1 -3
- localstack/testing/pytest/fixtures.py +11 -11
- localstack/testing/pytest/marking.py +6 -6
- localstack/testing/pytest/path_filter.py +1 -1
- localstack/testing/pytest/stepfunctions/utils.py +1 -1
- localstack/testing/pytest/validation_tracking.py +3 -3
- localstack/testing/scenario/provisioning.py +11 -10
- localstack/testing/snapshots/transformer_utility.py +2 -2
- localstack/testing/testselection/matching.py +2 -2
- localstack/testing/testselection/opt_out.py +1 -1
- localstack/testing/testselection/scripts/filter_by_test_selection.py +1 -1
- localstack/testing/testselection/scripts/generate_test_selection.py +1 -1
- localstack/testing/testselection/testselection.py +2 -2
- localstack/utils/analytics/cli.py +2 -3
- localstack/utils/analytics/client.py +5 -5
- localstack/utils/analytics/events.py +2 -2
- localstack/utils/analytics/metrics/registry.py +1 -1
- localstack/utils/analytics/publisher.py +4 -4
- localstack/utils/analytics/service_request_aggregator.py +3 -3
- localstack/utils/aws/arns.py +2 -2
- localstack/utils/aws/aws_responses.py +14 -21
- localstack/utils/aws/aws_stack.py +7 -11
- localstack/utils/aws/dead_letter_queue.py +3 -4
- localstack/utils/aws/message_forwarding.py +9 -11
- localstack/utils/aws/request_context.py +4 -4
- localstack/utils/aws/templating.py +3 -3
- localstack/utils/batch_policy.py +2 -2
- localstack/utils/bootstrap.py +19 -20
- localstack/utils/collections.py +16 -23
- localstack/utils/config_listener.py +2 -2
- localstack/utils/container_networking.py +3 -3
- localstack/utils/container_utils/container_client.py +72 -75
- localstack/utils/container_utils/docker_cmd_client.py +33 -33
- localstack/utils/container_utils/docker_sdk_client.py +35 -35
- localstack/utils/crypto.py +2 -3
- localstack/utils/diagnose.py +11 -11
- localstack/utils/docker_utils.py +4 -4
- localstack/utils/files.py +1 -2
- localstack/utils/functions.py +2 -2
- localstack/utils/http.py +6 -6
- localstack/utils/iputils.py +2 -1
- localstack/utils/json.py +1 -1
- localstack/utils/net.py +10 -9
- localstack/utils/objects.py +10 -10
- localstack/utils/patch.py +5 -5
- localstack/utils/platform.py +2 -2
- localstack/utils/run.py +7 -7
- localstack/utils/scheduler.py +3 -2
- localstack/utils/strings.py +2 -2
- localstack/utils/tagging.py +3 -3
- localstack/utils/testutil.py +9 -9
- localstack/utils/threads.py +2 -2
- localstack/utils/xml.py +1 -1
- localstack/version.py +2 -2
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/METADATA +1 -1
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/RECORD +544 -544
- localstack_core-4.7.1.dev24.dist-info/plux.json +1 -0
- localstack_core-4.7.1.dev23.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev23.data → localstack_core-4.7.1.dev24.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev23.data → localstack_core-4.7.1.dev24.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev23.data → localstack_core-4.7.1.dev24.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev23.dist-info → localstack_core-4.7.1.dev24.dist-info}/top_level.txt +0 -0
|
@@ -2,8 +2,9 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import json
|
|
4
4
|
import re
|
|
5
|
+
from collections.abc import Callable
|
|
5
6
|
from pathlib import Path
|
|
6
|
-
from typing import Any,
|
|
7
|
+
from typing import Any, Final
|
|
7
8
|
|
|
8
9
|
import jpype
|
|
9
10
|
import jpype.imports
|
|
@@ -45,9 +46,9 @@ _EXPRESSION_CLOSE_SYMBOL: Final[str] = ")"
|
|
|
45
46
|
|
|
46
47
|
class JSONataException(Exception):
|
|
47
48
|
error: Final[str]
|
|
48
|
-
details:
|
|
49
|
+
details: str | None
|
|
49
50
|
|
|
50
|
-
def __init__(self, error: str, details:
|
|
51
|
+
def __init__(self, error: str, details: str | None):
|
|
51
52
|
self.error = error
|
|
52
53
|
self.details = details
|
|
53
54
|
|
|
@@ -105,7 +106,7 @@ class _JSONataJVMBridge:
|
|
|
105
106
|
|
|
106
107
|
# Lazy initialization of the `eval_jsonata` function pointer.
|
|
107
108
|
# This ensures the JVM is only started when JSONata functionality is needed.
|
|
108
|
-
_eval_jsonata:
|
|
109
|
+
_eval_jsonata: Callable[[JSONataExpression], Any] | None = None
|
|
109
110
|
|
|
110
111
|
|
|
111
112
|
def eval_jsonata_expression(jsonata_expression: JSONataExpression) -> Any:
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import re
|
|
2
|
-
from typing import Optional
|
|
3
2
|
|
|
4
3
|
from antlr4.tree.Tree import ParseTree, TerminalNodeImpl
|
|
5
4
|
|
|
@@ -88,7 +87,7 @@ class Preprocessor(ASLIntrinsicParserVisitor):
|
|
|
88
87
|
def visitFunc_arg_list(self, ctx: ASLIntrinsicParser.Func_arg_listContext) -> ArgumentList:
|
|
89
88
|
arguments: list[Argument] = list()
|
|
90
89
|
for child in ctx.children:
|
|
91
|
-
cmp:
|
|
90
|
+
cmp: Component | None = self.visit(child)
|
|
92
91
|
if isinstance(cmp, Argument):
|
|
93
92
|
arguments.append(cmp)
|
|
94
93
|
return ArgumentList(arguments=arguments)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
|
-
from typing import Any
|
|
3
|
+
from typing import Any
|
|
4
4
|
|
|
5
5
|
from antlr4 import ParserRuleContext
|
|
6
6
|
from antlr4.tree.Tree import ParseTree, TerminalNodeImpl
|
|
@@ -376,7 +376,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
376
376
|
)
|
|
377
377
|
|
|
378
378
|
@staticmethod
|
|
379
|
-
def _inner_string_of(parser_rule_context: ParserRuleContext) ->
|
|
379
|
+
def _inner_string_of(parser_rule_context: ParserRuleContext) -> str | None:
|
|
380
380
|
if is_terminal(parser_rule_context, ASLLexer.NULL):
|
|
381
381
|
return None
|
|
382
382
|
inner_str = parser_rule_context.getText()
|
|
@@ -408,7 +408,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
408
408
|
def visitStates_decl(self, ctx: ASLParser.States_declContext) -> States:
|
|
409
409
|
states = States()
|
|
410
410
|
for child in ctx.children:
|
|
411
|
-
cmp:
|
|
411
|
+
cmp: Component | None = self.visit(child)
|
|
412
412
|
if isinstance(cmp, CommonStateField):
|
|
413
413
|
# TODO move check to setter or checker layer?
|
|
414
414
|
if cmp.name in states.states:
|
|
@@ -429,7 +429,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
429
429
|
|
|
430
430
|
def visitEnd_decl(self, ctx: ASLParser.End_declContext) -> End:
|
|
431
431
|
bool_child: ParseTree = ctx.children[-1]
|
|
432
|
-
bool_term:
|
|
432
|
+
bool_term: TerminalNodeImpl | None = is_terminal(bool_child)
|
|
433
433
|
if bool_term is None:
|
|
434
434
|
raise ValueError(f"Could not derive End from declaration context '{ctx.getText()}'")
|
|
435
435
|
bool_term_rule: int = bool_term.getSymbol().type
|
|
@@ -448,7 +448,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
448
448
|
return ResultPath(result_path_src=inner_str)
|
|
449
449
|
|
|
450
450
|
def visitInput_path_decl(self, ctx: ASLParser.Input_path_declContext) -> InputPath:
|
|
451
|
-
string_sampler:
|
|
451
|
+
string_sampler: StringSampler | None = None
|
|
452
452
|
if not is_terminal(pt=ctx.children[-1], token_type=ASLLexer.NULL):
|
|
453
453
|
string_sampler: StringSampler = self.visitString_sampler(ctx.string_sampler())
|
|
454
454
|
return InputPath(string_sampler=string_sampler)
|
|
@@ -457,7 +457,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
457
457
|
self._raise_if_query_language_is_not(
|
|
458
458
|
query_language_mode=QueryLanguageMode.JSONPath, ctx=ctx
|
|
459
459
|
)
|
|
460
|
-
string_sampler:
|
|
460
|
+
string_sampler: StringSampler | None = None
|
|
461
461
|
if is_production(ctx.children[-1], ASLParser.RULE_string_sampler):
|
|
462
462
|
string_sampler: StringSampler = self.visitString_sampler(ctx.children[-1])
|
|
463
463
|
return OutputPath(string_sampler=string_sampler)
|
|
@@ -527,7 +527,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
527
527
|
def visitBranches_decl(self, ctx: ASLParser.Branches_declContext) -> BranchesDecl:
|
|
528
528
|
programs: list[Program] = []
|
|
529
529
|
for child in ctx.children:
|
|
530
|
-
cmp:
|
|
530
|
+
cmp: Component | None = self.visit(child)
|
|
531
531
|
if isinstance(cmp, Program):
|
|
532
532
|
programs.append(cmp)
|
|
533
533
|
return BranchesDecl(programs=programs)
|
|
@@ -536,7 +536,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
536
536
|
self._open_query_language_scope(ctx)
|
|
537
537
|
state_props = StateProps()
|
|
538
538
|
for child in ctx.children:
|
|
539
|
-
cmp:
|
|
539
|
+
cmp: Component | None = self.visit(child)
|
|
540
540
|
state_props.add(cmp)
|
|
541
541
|
if state_props.get(QueryLanguage) is None:
|
|
542
542
|
state_props.add(self._get_current_query_language())
|
|
@@ -583,7 +583,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
583
583
|
def visitCondition_lit(self, ctx: ASLParser.Condition_litContext) -> ConditionJSONataLit:
|
|
584
584
|
self._raise_if_query_language_is_not(query_language_mode=QueryLanguageMode.JSONata, ctx=ctx)
|
|
585
585
|
bool_child: ParseTree = ctx.children[-1]
|
|
586
|
-
bool_term:
|
|
586
|
+
bool_term: TerminalNodeImpl | None = is_terminal(bool_child)
|
|
587
587
|
if bool_term is None:
|
|
588
588
|
raise ValueError(
|
|
589
589
|
f"Could not derive boolean literal from declaration context '{ctx.getText()}'."
|
|
@@ -651,7 +651,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
651
651
|
self._raise_if_query_language_is_not(
|
|
652
652
|
query_language_mode=QueryLanguageMode.JSONPath, ctx=ctx
|
|
653
653
|
)
|
|
654
|
-
pt:
|
|
654
|
+
pt: TerminalNodeImpl | None = is_terminal(ctx.children[0])
|
|
655
655
|
if not pt:
|
|
656
656
|
raise ValueError(f"Could not derive ChoiceOperator in block '{ctx.getText()}'.")
|
|
657
657
|
return ComparisonComposite.ChoiceOp(pt.symbol.type)
|
|
@@ -662,7 +662,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
662
662
|
choice_op: ComparisonComposite.ChoiceOp = self.visit(ctx.choice_operator())
|
|
663
663
|
rules: list[ChoiceRule] = list()
|
|
664
664
|
for child in ctx.children[1:]:
|
|
665
|
-
cmp:
|
|
665
|
+
cmp: Component | None = self.visit(child)
|
|
666
666
|
if not cmp:
|
|
667
667
|
continue
|
|
668
668
|
elif isinstance(cmp, ChoiceRule):
|
|
@@ -685,7 +685,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
685
685
|
) -> ChoiceRule:
|
|
686
686
|
composite_stmts = ComparisonCompositeProps()
|
|
687
687
|
for child in ctx.children:
|
|
688
|
-
cmp:
|
|
688
|
+
cmp: Component | None = self.visit(child)
|
|
689
689
|
composite_stmts.add(cmp)
|
|
690
690
|
return ChoiceRule(
|
|
691
691
|
comparison=composite_stmts.get(
|
|
@@ -705,7 +705,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
705
705
|
) -> ChoiceRule:
|
|
706
706
|
comparison_stmts = StateProps()
|
|
707
707
|
for child in ctx.children:
|
|
708
|
-
cmp:
|
|
708
|
+
cmp: Component | None = self.visit(child)
|
|
709
709
|
comparison_stmts.add(cmp)
|
|
710
710
|
if self._is_query_language(query_language_mode=QueryLanguageMode.JSONPath):
|
|
711
711
|
variable: Variable = comparison_stmts.get(
|
|
@@ -748,7 +748,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
748
748
|
def visitChoices_decl(self, ctx: ASLParser.Choices_declContext) -> ChoicesDecl:
|
|
749
749
|
rules: list[ChoiceRule] = list()
|
|
750
750
|
for child in ctx.children:
|
|
751
|
-
cmp:
|
|
751
|
+
cmp: Component | None = self.visit(child)
|
|
752
752
|
if not cmp:
|
|
753
753
|
continue
|
|
754
754
|
elif isinstance(cmp, ChoiceRule):
|
|
@@ -1076,7 +1076,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1076
1076
|
def visitRetry_decl(self, ctx: ASLParser.Retry_declContext) -> RetryDecl:
|
|
1077
1077
|
retriers: list[RetrierDecl] = list()
|
|
1078
1078
|
for child in ctx.children:
|
|
1079
|
-
cmp:
|
|
1079
|
+
cmp: Component | None = self.visit(child)
|
|
1080
1080
|
if isinstance(cmp, RetrierDecl):
|
|
1081
1081
|
retriers.append(cmp)
|
|
1082
1082
|
return RetryDecl(retriers=retriers)
|
|
@@ -1084,7 +1084,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1084
1084
|
def visitRetrier_decl(self, ctx: ASLParser.Retrier_declContext) -> RetrierDecl:
|
|
1085
1085
|
props = RetrierProps()
|
|
1086
1086
|
for child in ctx.children:
|
|
1087
|
-
cmp:
|
|
1087
|
+
cmp: Component | None = self.visit(child)
|
|
1088
1088
|
props.add(cmp)
|
|
1089
1089
|
return RetrierDecl.from_retrier_props(props=props)
|
|
1090
1090
|
|
|
@@ -1103,7 +1103,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1103
1103
|
pt = ctx.children[0]
|
|
1104
1104
|
|
|
1105
1105
|
# Case: StatesErrorName.
|
|
1106
|
-
prc:
|
|
1106
|
+
prc: ParserRuleContext | None = is_production(
|
|
1107
1107
|
pt=pt, rule_index=ASLParser.RULE_states_error_name
|
|
1108
1108
|
)
|
|
1109
1109
|
if prc:
|
|
@@ -1114,7 +1114,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1114
1114
|
return CustomErrorName(error_name=error_name)
|
|
1115
1115
|
|
|
1116
1116
|
def visitStates_error_name(self, ctx: ASLParser.States_error_nameContext) -> StatesErrorName:
|
|
1117
|
-
pt:
|
|
1117
|
+
pt: TerminalNodeImpl | None = is_terminal(ctx.children[0])
|
|
1118
1118
|
if not pt:
|
|
1119
1119
|
raise ValueError(f"Could not derive ErrorName in block '{ctx.getText()}'.")
|
|
1120
1120
|
states_error_name_type = StatesErrorNameType(pt.symbol.type)
|
|
@@ -1140,7 +1140,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1140
1140
|
self, ctx: ASLParser.Jitter_strategy_declContext
|
|
1141
1141
|
) -> JitterStrategyDecl:
|
|
1142
1142
|
last_child: ParseTree = ctx.children[-1]
|
|
1143
|
-
strategy_child:
|
|
1143
|
+
strategy_child: TerminalNodeImpl | None = is_terminal(last_child)
|
|
1144
1144
|
strategy_value = strategy_child.getSymbol().type
|
|
1145
1145
|
jitter_strategy = JitterStrategy(strategy_value)
|
|
1146
1146
|
return JitterStrategyDecl(jitter_strategy=jitter_strategy)
|
|
@@ -1148,7 +1148,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1148
1148
|
def visitCatch_decl(self, ctx: ASLParser.Catch_declContext) -> CatchDecl:
|
|
1149
1149
|
catchers: list[CatcherDecl] = list()
|
|
1150
1150
|
for child in ctx.children:
|
|
1151
|
-
cmp:
|
|
1151
|
+
cmp: Component | None = self.visit(child)
|
|
1152
1152
|
if isinstance(cmp, CatcherDecl):
|
|
1153
1153
|
catchers.append(cmp)
|
|
1154
1154
|
return CatchDecl(catchers=catchers)
|
|
@@ -1156,7 +1156,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1156
1156
|
def visitCatcher_decl(self, ctx: ASLParser.Catcher_declContext) -> CatcherDecl:
|
|
1157
1157
|
props = CatcherProps()
|
|
1158
1158
|
for child in ctx.children:
|
|
1159
|
-
cmp:
|
|
1159
|
+
cmp: Component | None = self.visit(child)
|
|
1160
1160
|
props.add(cmp)
|
|
1161
1161
|
if self._is_query_language(QueryLanguageMode.JSONPath) and not props.get(ResultPath):
|
|
1162
1162
|
props.add(CatcherDecl.DEFAULT_RESULT_PATH)
|
|
@@ -1172,7 +1172,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1172
1172
|
|
|
1173
1173
|
def visitPayload_value_bool(self, ctx: ASLParser.Payload_value_boolContext) -> PayloadValueBool:
|
|
1174
1174
|
bool_child: ParseTree = ctx.children[0]
|
|
1175
|
-
bool_term:
|
|
1175
|
+
bool_term: TerminalNodeImpl | None = is_terminal(bool_child)
|
|
1176
1176
|
if bool_term is None:
|
|
1177
1177
|
raise ValueError(
|
|
1178
1178
|
f"Could not derive PayloadValueBool from declaration context '{ctx.getText()}'."
|
|
@@ -1210,7 +1210,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1210
1210
|
def visitPayload_arr_decl(self, ctx: ASLParser.Payload_arr_declContext) -> PayloadArr:
|
|
1211
1211
|
payload_values: list[PayloadValue] = list()
|
|
1212
1212
|
for child in ctx.children:
|
|
1213
|
-
cmp:
|
|
1213
|
+
cmp: Component | None = self.visit(child)
|
|
1214
1214
|
if isinstance(cmp, PayloadValue):
|
|
1215
1215
|
payload_values.append(cmp)
|
|
1216
1216
|
return PayloadArr(payload_values=payload_values)
|
|
@@ -1218,7 +1218,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1218
1218
|
def visitPayload_tmpl_decl(self, ctx: ASLParser.Payload_tmpl_declContext) -> PayloadTmpl:
|
|
1219
1219
|
payload_bindings: list[PayloadBinding] = list()
|
|
1220
1220
|
for child in ctx.children:
|
|
1221
|
-
cmp:
|
|
1221
|
+
cmp: Component | None = self.visit(child)
|
|
1222
1222
|
if isinstance(cmp, PayloadBinding):
|
|
1223
1223
|
payload_bindings.append(cmp)
|
|
1224
1224
|
return PayloadTmpl(payload_bindings=payload_bindings)
|
|
@@ -1231,7 +1231,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1231
1231
|
self._open_query_language_scope(ctx)
|
|
1232
1232
|
props = TypedProps()
|
|
1233
1233
|
for child in ctx.children:
|
|
1234
|
-
cmp:
|
|
1234
|
+
cmp: Component | None = self.visit(child)
|
|
1235
1235
|
props.add(cmp)
|
|
1236
1236
|
if props.get(QueryLanguage) is None:
|
|
1237
1237
|
props.add(self._get_current_query_language())
|
|
@@ -1314,7 +1314,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1314
1314
|
) -> AssignTemplateValueArray:
|
|
1315
1315
|
values: list[AssignTemplateValue] = list()
|
|
1316
1316
|
for child in ctx.children:
|
|
1317
|
-
cmp:
|
|
1317
|
+
cmp: Component | None = self.visit(child)
|
|
1318
1318
|
if isinstance(cmp, AssignTemplateValue):
|
|
1319
1319
|
values.append(cmp)
|
|
1320
1320
|
return AssignTemplateValueArray(values=values)
|
|
@@ -1324,7 +1324,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1324
1324
|
) -> AssignTemplateValueObject:
|
|
1325
1325
|
bindings: list[AssignTemplateBinding] = list()
|
|
1326
1326
|
for child in ctx.children:
|
|
1327
|
-
cmp:
|
|
1327
|
+
cmp: Component | None = self.visit(child)
|
|
1328
1328
|
if isinstance(cmp, AssignTemplateBinding):
|
|
1329
1329
|
bindings.append(cmp)
|
|
1330
1330
|
return AssignTemplateValueObject(bindings=bindings)
|
|
@@ -1361,7 +1361,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1361
1361
|
) -> list[AssignDeclBinding]:
|
|
1362
1362
|
bindings: list[AssignDeclBinding] = list()
|
|
1363
1363
|
for child in ctx.children:
|
|
1364
|
-
cmp:
|
|
1364
|
+
cmp: Component | None = self.visit(child)
|
|
1365
1365
|
if isinstance(cmp, AssignDeclBinding):
|
|
1366
1366
|
bindings.append(cmp)
|
|
1367
1367
|
return bindings
|
|
@@ -1416,7 +1416,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1416
1416
|
) -> JSONataTemplateValueArray:
|
|
1417
1417
|
values: list[JSONataTemplateValue] = list()
|
|
1418
1418
|
for child in ctx.children:
|
|
1419
|
-
cmp:
|
|
1419
|
+
cmp: Component | None = self.visit(child)
|
|
1420
1420
|
if isinstance(cmp, JSONataTemplateValue):
|
|
1421
1421
|
values.append(cmp)
|
|
1422
1422
|
return JSONataTemplateValueArray(values=values)
|
|
@@ -1426,7 +1426,7 @@ class Preprocessor(ASLParserVisitor):
|
|
|
1426
1426
|
) -> JSONataTemplateValueObject:
|
|
1427
1427
|
bindings: list[JSONataTemplateBinding] = list()
|
|
1428
1428
|
for child in ctx.children:
|
|
1429
|
-
cmp:
|
|
1429
|
+
cmp: Component | None = self.visit(child)
|
|
1430
1430
|
if isinstance(cmp, JSONataTemplateBinding):
|
|
1431
1431
|
bindings.append(cmp)
|
|
1432
1432
|
return JSONataTemplateValueObject(bindings=bindings)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from collections import OrderedDict
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class TypedProps:
|
|
@@ -18,7 +18,7 @@ class TypedProps:
|
|
|
18
18
|
)
|
|
19
19
|
self._instance_by_type[typ] = instance
|
|
20
20
|
|
|
21
|
-
def get(self, typ: type, raise_on_missing:
|
|
21
|
+
def get(self, typ: type, raise_on_missing: Exception | None = None) -> Any | None:
|
|
22
22
|
if raise_on_missing and typ not in self._instance_by_type:
|
|
23
23
|
raise raise_on_missing
|
|
24
24
|
return self._instance_by_type.get(typ)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import json
|
|
3
3
|
from json import JSONEncoder
|
|
4
|
-
from typing import Any
|
|
4
|
+
from typing import Any
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class _DateTimeEncoder(JSONEncoder):
|
|
@@ -12,5 +12,5 @@ class _DateTimeEncoder(JSONEncoder):
|
|
|
12
12
|
return str(obj)
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
def to_json_str(obj: Any, separators:
|
|
15
|
+
def to_json_str(obj: Any, separators: tuple[str, str] | None = None) -> str:
|
|
16
16
|
return json.dumps(obj, cls=_DateTimeEncoder, separators=separators)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import re
|
|
2
|
-
from typing import Any, Final
|
|
2
|
+
from typing import Any, Final
|
|
3
3
|
|
|
4
4
|
from jsonpath_ng.ext import parse
|
|
5
5
|
from jsonpath_ng.jsonpath import Index
|
|
@@ -24,7 +24,7 @@ def _contains_slice_or_wildcard_array(path: str) -> bool:
|
|
|
24
24
|
class NoSuchJsonPathError(Exception):
|
|
25
25
|
json_path: Final[str]
|
|
26
26
|
data: Final[Any]
|
|
27
|
-
_message:
|
|
27
|
+
_message: str | None
|
|
28
28
|
|
|
29
29
|
def __init__(self, json_path: str, data: Any):
|
|
30
30
|
self.json_path = json_path
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
from collections import deque
|
|
3
|
-
from typing import Final
|
|
3
|
+
from typing import Final
|
|
4
4
|
|
|
5
5
|
from localstack.aws.api.stepfunctions import (
|
|
6
6
|
ActivityListItem,
|
|
@@ -26,16 +26,16 @@ class Activity:
|
|
|
26
26
|
creation_date: Final[Timestamp]
|
|
27
27
|
_tasks: Final[deque[ActivityTask]]
|
|
28
28
|
|
|
29
|
-
def __init__(self, arn: Arn, name: Name, creation_date:
|
|
29
|
+
def __init__(self, arn: Arn, name: Name, creation_date: Timestamp | None = None):
|
|
30
30
|
self.arn = arn
|
|
31
31
|
self.name = name
|
|
32
|
-
self.creation_date = creation_date or datetime.datetime.now(tz=datetime.
|
|
32
|
+
self.creation_date = creation_date or datetime.datetime.now(tz=datetime.UTC)
|
|
33
33
|
self._tasks = deque()
|
|
34
34
|
|
|
35
35
|
def add_task(self, task: ActivityTask):
|
|
36
36
|
self._tasks.append(task)
|
|
37
37
|
|
|
38
|
-
def get_task(self) ->
|
|
38
|
+
def get_task(self) -> ActivityTask | None:
|
|
39
39
|
return self._tasks.popleft()
|
|
40
40
|
|
|
41
41
|
def to_describe_activity_output(self) -> DescribeActivityOutput:
|
|
@@ -4,7 +4,7 @@ import copy
|
|
|
4
4
|
import datetime
|
|
5
5
|
import random
|
|
6
6
|
import threading
|
|
7
|
-
from typing import Final
|
|
7
|
+
from typing import Final
|
|
8
8
|
|
|
9
9
|
from localstack.aws.api.stepfunctions import (
|
|
10
10
|
AliasDescription,
|
|
@@ -20,9 +20,9 @@ from localstack.utils.strings import token_generator
|
|
|
20
20
|
|
|
21
21
|
class Alias:
|
|
22
22
|
_mutex: Final[threading.Lock]
|
|
23
|
-
update_date:
|
|
23
|
+
update_date: datetime.datetime | None
|
|
24
24
|
name: Final[CharacterRestrictedName]
|
|
25
|
-
_description:
|
|
25
|
+
_description: AliasDescription | None
|
|
26
26
|
_routing_configuration_list: RoutingConfigurationList
|
|
27
27
|
_state_machine_version_arns: list[Arn]
|
|
28
28
|
_execution_probability_distribution: list[int]
|
|
@@ -34,7 +34,7 @@ class Alias:
|
|
|
34
34
|
self,
|
|
35
35
|
state_machine_arn: Arn,
|
|
36
36
|
name: CharacterRestrictedName,
|
|
37
|
-
description:
|
|
37
|
+
description: AliasDescription | None,
|
|
38
38
|
routing_configuration_list: RoutingConfigurationList,
|
|
39
39
|
):
|
|
40
40
|
self._mutex = threading.Lock()
|
|
@@ -66,7 +66,7 @@ class Alias:
|
|
|
66
66
|
|
|
67
67
|
@staticmethod
|
|
68
68
|
def _get_mutex_date() -> datetime.datetime:
|
|
69
|
-
return datetime.datetime.now(tz=datetime.
|
|
69
|
+
return datetime.datetime.now(tz=datetime.UTC)
|
|
70
70
|
|
|
71
71
|
def get_routing_configuration_list(self) -> RoutingConfigurationList:
|
|
72
72
|
return copy.deepcopy(self._routing_configuration_list)
|
|
@@ -77,7 +77,7 @@ class Alias:
|
|
|
77
77
|
|
|
78
78
|
def update(
|
|
79
79
|
self,
|
|
80
|
-
description:
|
|
80
|
+
description: AliasDescription | None,
|
|
81
81
|
routing_configuration_list: RoutingConfigurationList,
|
|
82
82
|
) -> None:
|
|
83
83
|
with self._mutex:
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import datetime
|
|
4
4
|
import json
|
|
5
5
|
import logging
|
|
6
|
-
from typing import Final
|
|
6
|
+
from typing import Final
|
|
7
7
|
|
|
8
8
|
from localstack.aws.api.events import PutEventsRequestEntry
|
|
9
9
|
from localstack.aws.api.stepfunctions import (
|
|
@@ -72,7 +72,7 @@ class BaseExecutionWorkerCommunication(ExecutionWorkerCommunication):
|
|
|
72
72
|
|
|
73
73
|
def _reflect_execution_status(self):
|
|
74
74
|
exit_program_state: ProgramState = self.execution.exec_worker.env.program_state()
|
|
75
|
-
self.execution.stop_date = datetime.datetime.now(tz=datetime.
|
|
75
|
+
self.execution.stop_date = datetime.datetime.now(tz=datetime.UTC)
|
|
76
76
|
if isinstance(exit_program_state, ProgramEnded):
|
|
77
77
|
self.execution.exec_status = ExecutionStatus.SUCCEEDED
|
|
78
78
|
self.execution.output = self.execution.exec_worker.env.states.get_input()
|
|
@@ -105,27 +105,27 @@ class Execution:
|
|
|
105
105
|
|
|
106
106
|
state_machine: Final[StateMachineInstance]
|
|
107
107
|
state_machine_arn: Final[Arn]
|
|
108
|
-
state_machine_version_arn: Final[
|
|
109
|
-
state_machine_alias_arn: Final[
|
|
108
|
+
state_machine_version_arn: Final[Arn | None]
|
|
109
|
+
state_machine_alias_arn: Final[Arn | None]
|
|
110
110
|
|
|
111
|
-
mock_test_case: Final[
|
|
111
|
+
mock_test_case: Final[MockTestCase | None]
|
|
112
112
|
|
|
113
113
|
start_date: Final[Timestamp]
|
|
114
|
-
input_data: Final[
|
|
115
|
-
input_details: Final[
|
|
116
|
-
trace_header: Final[
|
|
117
|
-
_cloud_watch_logging_session: Final[
|
|
114
|
+
input_data: Final[json | None]
|
|
115
|
+
input_details: Final[CloudWatchEventsExecutionDataDetails | None]
|
|
116
|
+
trace_header: Final[TraceHeader | None]
|
|
117
|
+
_cloud_watch_logging_session: Final[CloudWatchLoggingSession | None]
|
|
118
118
|
|
|
119
|
-
exec_status:
|
|
120
|
-
stop_date:
|
|
119
|
+
exec_status: ExecutionStatus | None
|
|
120
|
+
stop_date: Timestamp | None
|
|
121
121
|
|
|
122
|
-
output:
|
|
123
|
-
output_details:
|
|
122
|
+
output: json | None
|
|
123
|
+
output_details: CloudWatchEventsExecutionDataDetails | None
|
|
124
124
|
|
|
125
|
-
error:
|
|
126
|
-
cause:
|
|
125
|
+
error: SensitiveError | None
|
|
126
|
+
cause: SensitiveCause | None
|
|
127
127
|
|
|
128
|
-
exec_worker:
|
|
128
|
+
exec_worker: ExecutionWorker | None
|
|
129
129
|
|
|
130
130
|
_activity_store: dict[Arn, Activity]
|
|
131
131
|
|
|
@@ -139,12 +139,12 @@ class Execution:
|
|
|
139
139
|
region_name: str,
|
|
140
140
|
state_machine: StateMachineInstance,
|
|
141
141
|
start_date: Timestamp,
|
|
142
|
-
cloud_watch_logging_session:
|
|
142
|
+
cloud_watch_logging_session: CloudWatchLoggingSession | None,
|
|
143
143
|
activity_store: dict[Arn, Activity],
|
|
144
|
-
input_data:
|
|
145
|
-
trace_header:
|
|
146
|
-
state_machine_alias_arn:
|
|
147
|
-
mock_test_case:
|
|
144
|
+
input_data: json | None = None,
|
|
145
|
+
trace_header: TraceHeader | None = None,
|
|
146
|
+
state_machine_alias_arn: Arn | None = None,
|
|
147
|
+
mock_test_case: MockTestCase | None = None,
|
|
148
148
|
):
|
|
149
149
|
self.name = name
|
|
150
150
|
self.sm_type = sm_type
|
|
@@ -267,9 +267,7 @@ class Execution:
|
|
|
267
267
|
@staticmethod
|
|
268
268
|
def _to_serialized_date(timestamp: datetime.datetime) -> str:
|
|
269
269
|
"""See test in tests.aws.services.stepfunctions.v2.base.test_base.TestSnfBase.test_execution_dateformat"""
|
|
270
|
-
return (
|
|
271
|
-
f"{timestamp.astimezone(datetime.timezone.utc).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3]}Z"
|
|
272
|
-
)
|
|
270
|
+
return f"{timestamp.astimezone(datetime.UTC).strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3]}Z"
|
|
273
271
|
|
|
274
272
|
def _get_start_execution_worker_comm(self) -> BaseExecutionWorkerCommunication:
|
|
275
273
|
return BaseExecutionWorkerCommunication(self)
|
|
@@ -318,8 +316,8 @@ class Execution:
|
|
|
318
316
|
self.publish_execution_status_change_event()
|
|
319
317
|
self.exec_worker.start()
|
|
320
318
|
|
|
321
|
-
def stop(self, stop_date: datetime.datetime, error:
|
|
322
|
-
exec_worker:
|
|
319
|
+
def stop(self, stop_date: datetime.datetime, error: str | None, cause: str | None):
|
|
320
|
+
exec_worker: ExecutionWorker | None = self.exec_worker
|
|
323
321
|
if exec_worker:
|
|
324
322
|
exec_worker.stop(stop_date=stop_date, cause=cause, error=error)
|
|
325
323
|
|
|
@@ -380,7 +378,7 @@ class SyncExecutionWorkerCommunication(BaseExecutionWorkerCommunication):
|
|
|
380
378
|
|
|
381
379
|
|
|
382
380
|
class SyncExecution(Execution):
|
|
383
|
-
sync_execution_status:
|
|
381
|
+
sync_execution_status: SyncExecutionStatus | None = None
|
|
384
382
|
|
|
385
383
|
def _get_start_execution_worker(self) -> SyncExecutionWorker:
|
|
386
384
|
return SyncExecutionWorker(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
from threading import Thread
|
|
3
|
-
from typing import Final
|
|
3
|
+
from typing import Final
|
|
4
4
|
|
|
5
5
|
from localstack.aws.api.stepfunctions import (
|
|
6
6
|
Arn,
|
|
@@ -36,19 +36,19 @@ from localstack.utils.common import TMP_THREADS
|
|
|
36
36
|
class ExecutionWorker:
|
|
37
37
|
_evaluation_details: Final[EvaluationDetails]
|
|
38
38
|
_execution_communication: Final[ExecutionWorkerCommunication]
|
|
39
|
-
_cloud_watch_logging_session: Final[
|
|
40
|
-
_mock_test_case: Final[
|
|
39
|
+
_cloud_watch_logging_session: Final[CloudWatchLoggingSession | None]
|
|
40
|
+
_mock_test_case: Final[MockTestCase | None]
|
|
41
41
|
_activity_store: dict[Arn, Activity]
|
|
42
42
|
|
|
43
|
-
env:
|
|
43
|
+
env: Environment | None
|
|
44
44
|
|
|
45
45
|
def __init__(
|
|
46
46
|
self,
|
|
47
47
|
evaluation_details: EvaluationDetails,
|
|
48
48
|
exec_comm: ExecutionWorkerCommunication,
|
|
49
|
-
cloud_watch_logging_session:
|
|
49
|
+
cloud_watch_logging_session: CloudWatchLoggingSession | None,
|
|
50
50
|
activity_store: dict[Arn, Activity],
|
|
51
|
-
mock_test_case:
|
|
51
|
+
mock_test_case: MockTestCase | None = None,
|
|
52
52
|
):
|
|
53
53
|
self._evaluation_details = evaluation_details
|
|
54
54
|
self._execution_communication = exec_comm
|
|
@@ -113,7 +113,7 @@ class ExecutionWorker:
|
|
|
113
113
|
TMP_THREADS.append(execution_logic_thread)
|
|
114
114
|
execution_logic_thread.start()
|
|
115
115
|
|
|
116
|
-
def stop(self, stop_date: datetime.datetime, error:
|
|
116
|
+
def stop(self, stop_date: datetime.datetime, error: str | None, cause: str | None):
|
|
117
117
|
self.env.set_stop(stop_date=stop_date, cause=cause, error=error)
|
|
118
118
|
|
|
119
119
|
|