localstack-core 4.7.1.dev22__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 +31 -9
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +6 -6
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +62 -80
- 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 +57 -36
- localstack/services/cloudformation/v2/provider.py +155 -29
- 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 +13 -3
- 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.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/METADATA +1 -1
- {localstack_core-4.7.1.dev22.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.dev22.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/top_level.txt +0 -0
|
@@ -5,9 +5,10 @@ import logging
|
|
|
5
5
|
import re
|
|
6
6
|
import threading
|
|
7
7
|
import time
|
|
8
|
+
from collections.abc import Iterable
|
|
8
9
|
from concurrent.futures.thread import ThreadPoolExecutor
|
|
9
10
|
from itertools import islice
|
|
10
|
-
from typing import
|
|
11
|
+
from typing import Literal
|
|
11
12
|
|
|
12
13
|
from botocore.utils import InvalidArnException
|
|
13
14
|
from moto.sqs.models import BINARY_TYPE_FIELD_INDEX, STRING_TYPE_FIELD_INDEX
|
|
@@ -310,7 +311,7 @@ class CloudwatchPublishWorker:
|
|
|
310
311
|
def __init__(self) -> None:
|
|
311
312
|
super().__init__()
|
|
312
313
|
self.scheduler = Scheduler()
|
|
313
|
-
self.thread:
|
|
314
|
+
self.thread: FuncThread | None = None
|
|
314
315
|
|
|
315
316
|
def publish_approximate_cloudwatch_metrics(self):
|
|
316
317
|
"""Publishes the metrics for ApproximateNumberOfMessagesVisible, ApproximateNumberOfMessagesNotVisible
|
|
@@ -391,7 +392,7 @@ class QueueUpdateWorker:
|
|
|
391
392
|
def __init__(self) -> None:
|
|
392
393
|
super().__init__()
|
|
393
394
|
self.scheduler = Scheduler()
|
|
394
|
-
self.thread:
|
|
395
|
+
self.thread: FuncThread | None = None
|
|
395
396
|
self.mutex = threading.RLock()
|
|
396
397
|
|
|
397
398
|
def iter_queues(self) -> Iterable[SqsQueue]:
|
|
@@ -744,7 +745,7 @@ class SqsDeveloperEndpoints:
|
|
|
744
745
|
|
|
745
746
|
def _collect_messages(
|
|
746
747
|
self, queue: SqsQueue, show_invisible: bool = False, show_delayed: bool = False
|
|
747
|
-
) ->
|
|
748
|
+
) -> list[Message]:
|
|
748
749
|
"""
|
|
749
750
|
Retrieves from a given SqsQueue all visible messages without causing any side effects (not setting any
|
|
750
751
|
receive timestamps, receive counts, or visibility state).
|
|
@@ -756,7 +757,7 @@ class SqsDeveloperEndpoints:
|
|
|
756
757
|
"""
|
|
757
758
|
receipt_handle = "SQS/BACKDOOR/ACCESS" # dummy receipt handle
|
|
758
759
|
|
|
759
|
-
sqs_messages:
|
|
760
|
+
sqs_messages: list[SqsMessage] = []
|
|
760
761
|
|
|
761
762
|
if show_invisible:
|
|
762
763
|
sqs_messages.extend(queue.inflight)
|
|
@@ -811,7 +812,7 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
811
812
|
- UntagQueue
|
|
812
813
|
"""
|
|
813
814
|
|
|
814
|
-
queues:
|
|
815
|
+
queues: dict[str, SqsQueue]
|
|
815
816
|
|
|
816
817
|
def __init__(self) -> None:
|
|
817
818
|
super().__init__()
|
|
@@ -877,8 +878,8 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
877
878
|
def _resolve_queue(
|
|
878
879
|
self,
|
|
879
880
|
context: RequestContext,
|
|
880
|
-
queue_name:
|
|
881
|
-
queue_url:
|
|
881
|
+
queue_name: str | None = None,
|
|
882
|
+
queue_url: str | None = None,
|
|
882
883
|
) -> SqsQueue:
|
|
883
884
|
"""
|
|
884
885
|
Determines the name of the queue from available information (request context, queue URL) to return the respective queue,
|
|
@@ -1670,8 +1671,8 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
1670
1671
|
self,
|
|
1671
1672
|
context: RequestContext,
|
|
1672
1673
|
message_system_attributes: MessageBodySystemAttributeMap = None,
|
|
1673
|
-
) ->
|
|
1674
|
-
result:
|
|
1674
|
+
) -> dict[MessageSystemAttributeName, str]:
|
|
1675
|
+
result: dict[MessageSystemAttributeName, str] = {
|
|
1675
1676
|
MessageSystemAttributeName.SenderId: context.account_id, # not the account ID in AWS
|
|
1676
1677
|
MessageSystemAttributeName.SentTimestamp: str(now(millis=True)),
|
|
1677
1678
|
}
|
|
@@ -1705,7 +1706,7 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
1705
1706
|
|
|
1706
1707
|
def _assert_batch(
|
|
1707
1708
|
self,
|
|
1708
|
-
batch:
|
|
1709
|
+
batch: list,
|
|
1709
1710
|
*,
|
|
1710
1711
|
require_fifo_queue_params: bool = False,
|
|
1711
1712
|
require_message_deduplication_id: bool = False,
|
|
@@ -1741,7 +1742,7 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
1741
1742
|
else:
|
|
1742
1743
|
visited.add(entry_id)
|
|
1743
1744
|
|
|
1744
|
-
def _assert_valid_batch_size(self, batch:
|
|
1745
|
+
def _assert_valid_batch_size(self, batch: list, max_message_size: int):
|
|
1745
1746
|
batch_message_size = sum(
|
|
1746
1747
|
_message_body_size(entry.get("MessageBody"))
|
|
1747
1748
|
+ _message_attributes_size(entry.get("MessageAttributes"))
|
|
@@ -1752,7 +1753,7 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
1752
1753
|
error += f" You have sent {batch_message_size} bytes."
|
|
1753
1754
|
raise BatchRequestTooLong(error)
|
|
1754
1755
|
|
|
1755
|
-
def _assert_valid_message_ids(self, batch:
|
|
1756
|
+
def _assert_valid_message_ids(self, batch: list):
|
|
1756
1757
|
batch_id_regex = r"^[\w-]{1,80}$"
|
|
1757
1758
|
for message in batch:
|
|
1758
1759
|
if not re.match(batch_id_regex, message.get("Id", "")):
|
|
@@ -1782,7 +1783,7 @@ class SqsProvider(SqsApi, ServiceLifecycleHook):
|
|
|
1782
1783
|
|
|
1783
1784
|
|
|
1784
1785
|
# Method from moto's attribute_md5 of moto/sqs/models.py, separated from the Message Object
|
|
1785
|
-
def _create_message_attribute_hash(message_attributes) ->
|
|
1786
|
+
def _create_message_attribute_hash(message_attributes) -> str | None:
|
|
1786
1787
|
# To avoid the need to check for dict conformity everytime we invoke this function
|
|
1787
1788
|
if not isinstance(message_attributes, dict):
|
|
1788
1789
|
return
|
|
@@ -1810,8 +1811,8 @@ def _create_message_attribute_hash(message_attributes) -> Optional[str]:
|
|
|
1810
1811
|
|
|
1811
1812
|
|
|
1812
1813
|
def resolve_queue_location(
|
|
1813
|
-
context: RequestContext, queue_name:
|
|
1814
|
-
) ->
|
|
1814
|
+
context: RequestContext, queue_name: str | None = None, queue_url: str | None = None
|
|
1815
|
+
) -> tuple[str, str | None, str]:
|
|
1815
1816
|
"""
|
|
1816
1817
|
Resolves a queue location from the given information.
|
|
1817
1818
|
|
|
@@ -1868,7 +1869,7 @@ def to_sqs_api_message(
|
|
|
1868
1869
|
return message
|
|
1869
1870
|
|
|
1870
1871
|
|
|
1871
|
-
def message_filter_attributes(message: Message, names:
|
|
1872
|
+
def message_filter_attributes(message: Message, names: AttributeNameList | None):
|
|
1872
1873
|
"""
|
|
1873
1874
|
Utility function filter from the given message (in-place) the system attributes from the given list. It will
|
|
1874
1875
|
apply all rules according to:
|
|
@@ -1892,7 +1893,7 @@ def message_filter_attributes(message: Message, names: Optional[AttributeNameLis
|
|
|
1892
1893
|
del message["Attributes"][k]
|
|
1893
1894
|
|
|
1894
1895
|
|
|
1895
|
-
def message_filter_message_attributes(message: Message, names:
|
|
1896
|
+
def message_filter_message_attributes(message: Message, names: MessageAttributeNameList | None):
|
|
1896
1897
|
"""
|
|
1897
1898
|
Utility function filter from the given message (in-place) the message attributes from the given list. It will
|
|
1898
1899
|
apply all rules according to:
|
|
@@ -4,7 +4,6 @@ generic implementation that creates from Query API requests the respective AWS r
|
|
|
4
4
|
to make the request."""
|
|
5
5
|
|
|
6
6
|
import logging
|
|
7
|
-
from typing import Dict, Optional, Tuple
|
|
8
7
|
from urllib.parse import urlencode
|
|
9
8
|
|
|
10
9
|
from botocore.exceptions import ClientError
|
|
@@ -179,7 +178,7 @@ def handle_request(request: Request, region: str) -> Response:
|
|
|
179
178
|
)
|
|
180
179
|
|
|
181
180
|
|
|
182
|
-
def try_call_sqs(request: Request, region: str) ->
|
|
181
|
+
def try_call_sqs(request: Request, region: str) -> tuple[dict, OperationModel]:
|
|
183
182
|
action = request.values.get("Action")
|
|
184
183
|
if not action:
|
|
185
184
|
raise UnknownOperationException()
|
|
@@ -209,7 +208,7 @@ def try_call_sqs(request: Request, region: str) -> Tuple[Dict, OperationModel]:
|
|
|
209
208
|
# Extract from auth header to allow cross-account operations
|
|
210
209
|
# TODO: permissions encoded in URL as AUTHPARAMS cannot be accounted for in this method, which is not a big
|
|
211
210
|
# problem yet since we generally don't enforce permissions.
|
|
212
|
-
account_id:
|
|
211
|
+
account_id: str | None = extract_access_key_id_from_auth_header(headers)
|
|
213
212
|
|
|
214
213
|
client = connect_to(
|
|
215
214
|
region_name=region,
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
|
|
4
4
|
import json
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import TypedDict
|
|
7
7
|
|
|
8
8
|
import localstack.services.cloudformation.provider_utils as util
|
|
9
9
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -15,29 +15,29 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class SQSQueueProperties(TypedDict):
|
|
18
|
-
Arn:
|
|
19
|
-
ContentBasedDeduplication:
|
|
20
|
-
DeduplicationScope:
|
|
21
|
-
DelaySeconds:
|
|
22
|
-
FifoQueue:
|
|
23
|
-
FifoThroughputLimit:
|
|
24
|
-
KmsDataKeyReusePeriodSeconds:
|
|
25
|
-
KmsMasterKeyId:
|
|
26
|
-
MaximumMessageSize:
|
|
27
|
-
MessageRetentionPeriod:
|
|
28
|
-
QueueName:
|
|
29
|
-
QueueUrl:
|
|
30
|
-
ReceiveMessageWaitTimeSeconds:
|
|
31
|
-
RedriveAllowPolicy:
|
|
32
|
-
RedrivePolicy:
|
|
33
|
-
SqsManagedSseEnabled:
|
|
34
|
-
Tags:
|
|
35
|
-
VisibilityTimeout:
|
|
18
|
+
Arn: str | None
|
|
19
|
+
ContentBasedDeduplication: bool | None
|
|
20
|
+
DeduplicationScope: str | None
|
|
21
|
+
DelaySeconds: int | None
|
|
22
|
+
FifoQueue: bool | None
|
|
23
|
+
FifoThroughputLimit: str | None
|
|
24
|
+
KmsDataKeyReusePeriodSeconds: int | None
|
|
25
|
+
KmsMasterKeyId: str | None
|
|
26
|
+
MaximumMessageSize: int | None
|
|
27
|
+
MessageRetentionPeriod: int | None
|
|
28
|
+
QueueName: str | None
|
|
29
|
+
QueueUrl: str | None
|
|
30
|
+
ReceiveMessageWaitTimeSeconds: int | None
|
|
31
|
+
RedriveAllowPolicy: dict | str | None
|
|
32
|
+
RedrivePolicy: dict | str | None
|
|
33
|
+
SqsManagedSseEnabled: bool | None
|
|
34
|
+
Tags: list[Tag] | None
|
|
35
|
+
VisibilityTimeout: int | None
|
|
36
36
|
|
|
37
37
|
|
|
38
38
|
class Tag(TypedDict):
|
|
39
|
-
Key:
|
|
40
|
-
Value:
|
|
39
|
+
Key: str | None
|
|
40
|
+
Value: str | None
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SQSQueueProviderPlugin(CloudFormationResourceProviderPlugin):
|
|
|
10
8
|
name = "AWS::SQS::Queue"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.sqs.resource_providers.aws_sqs_queue import SQSQueueProvider
|
|
@@ -3,7 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
|
|
4
4
|
import json
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import TypedDict
|
|
7
7
|
|
|
8
8
|
import localstack.services.cloudformation.provider_utils as util
|
|
9
9
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -15,9 +15,9 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class SQSQueuePolicyProperties(TypedDict):
|
|
18
|
-
PolicyDocument:
|
|
19
|
-
Queues:
|
|
20
|
-
Id:
|
|
18
|
+
PolicyDocument: dict | None
|
|
19
|
+
Queues: list[str] | None
|
|
20
|
+
Id: str | None
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SQSQueuePolicyProviderPlugin(CloudFormationResourceProviderPlugin):
|
|
|
10
8
|
name = "AWS::SQS::QueuePolicy"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.sqs.resource_providers.aws_sqs_queuepolicy import (
|
localstack/services/sqs/utils.py
CHANGED
|
@@ -3,7 +3,7 @@ import itertools
|
|
|
3
3
|
import json
|
|
4
4
|
import re
|
|
5
5
|
import time
|
|
6
|
-
from typing import Literal, NamedTuple
|
|
6
|
+
from typing import Literal, NamedTuple
|
|
7
7
|
from urllib.parse import urlparse
|
|
8
8
|
|
|
9
9
|
from localstack.aws.api.sqs import QueueAttributeName, ReceiptHandleIsInvalid
|
|
@@ -36,7 +36,7 @@ def is_sqs_queue_url(url: str) -> bool:
|
|
|
36
36
|
|
|
37
37
|
def guess_endpoint_strategy_and_host(
|
|
38
38
|
host: str,
|
|
39
|
-
) ->
|
|
39
|
+
) -> tuple[Literal["standard", "domain", "path"], str]:
|
|
40
40
|
"""
|
|
41
41
|
This method is used for the dynamic endpoint strategy. It heuristically determines a tuple where the first
|
|
42
42
|
element is the endpoint strategy, and the second is the part of the host after the endpoint prefix and region.
|
|
@@ -77,7 +77,7 @@ def is_fifo_queue(queue):
|
|
|
77
77
|
return "true" == queue.attributes.get(QueueAttributeName.FifoQueue, "false").lower()
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
def parse_queue_url(queue_url: str) ->
|
|
80
|
+
def parse_queue_url(queue_url: str) -> tuple[str, str | None, str]:
|
|
81
81
|
"""
|
|
82
82
|
Parses an SQS Queue URL and returns a triple of account_id, region and queue_name.
|
|
83
83
|
|
|
@@ -3,7 +3,6 @@ import json
|
|
|
3
3
|
import logging
|
|
4
4
|
import time
|
|
5
5
|
from abc import ABC
|
|
6
|
-
from typing import Dict, Optional
|
|
7
6
|
|
|
8
7
|
from localstack.aws.api import CommonServiceException, RequestContext
|
|
9
8
|
from localstack.aws.api.ssm import (
|
|
@@ -339,7 +338,7 @@ class SsmProvider(SsmApi, ABC):
|
|
|
339
338
|
# utility methods below
|
|
340
339
|
|
|
341
340
|
@staticmethod
|
|
342
|
-
def _denormalize_param_name_in_response(param_result:
|
|
341
|
+
def _denormalize_param_name_in_response(param_result: dict, param_name: str):
|
|
343
342
|
result_name = param_result["Name"]
|
|
344
343
|
if result_name != param_name and result_name.lstrip("/") == param_name.lstrip("/"):
|
|
345
344
|
param_result["Name"] = param_name
|
|
@@ -373,7 +372,7 @@ class SsmProvider(SsmApi, ABC):
|
|
|
373
372
|
@staticmethod
|
|
374
373
|
def _get_secrets_information(
|
|
375
374
|
account_id: str, region_name: str, name: ParameterName, resource_name: str
|
|
376
|
-
) ->
|
|
375
|
+
) -> GetParameterResult | None:
|
|
377
376
|
client = connect_to(aws_access_key_id=account_id, region_name=region_name).secretsmanager
|
|
378
377
|
try:
|
|
379
378
|
secret_info = client.get_secret_value(SecretId=resource_name)
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import TypedDict
|
|
6
6
|
|
|
7
7
|
import localstack.services.cloudformation.provider_utils as util
|
|
8
8
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -14,23 +14,23 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class SSMMaintenanceWindowProperties(TypedDict):
|
|
17
|
-
AllowUnassociatedTargets:
|
|
18
|
-
Cutoff:
|
|
19
|
-
Duration:
|
|
20
|
-
Name:
|
|
21
|
-
Schedule:
|
|
22
|
-
Description:
|
|
23
|
-
EndDate:
|
|
24
|
-
Id:
|
|
25
|
-
ScheduleOffset:
|
|
26
|
-
ScheduleTimezone:
|
|
27
|
-
StartDate:
|
|
28
|
-
Tags:
|
|
17
|
+
AllowUnassociatedTargets: bool | None
|
|
18
|
+
Cutoff: int | None
|
|
19
|
+
Duration: int | None
|
|
20
|
+
Name: str | None
|
|
21
|
+
Schedule: str | None
|
|
22
|
+
Description: str | None
|
|
23
|
+
EndDate: str | None
|
|
24
|
+
Id: str | None
|
|
25
|
+
ScheduleOffset: int | None
|
|
26
|
+
ScheduleTimezone: str | None
|
|
27
|
+
StartDate: str | None
|
|
28
|
+
Tags: list[Tag] | None
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class Tag(TypedDict):
|
|
32
|
-
Key:
|
|
33
|
-
Value:
|
|
32
|
+
Key: str | None
|
|
33
|
+
Value: str | None
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SSMMaintenanceWindowProviderPlugin(CloudFormationResourceProviderPlugin):
|
|
|
10
8
|
name = "AWS::SSM::MaintenanceWindow"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow import (
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import TypedDict
|
|
6
6
|
|
|
7
7
|
import localstack.services.cloudformation.provider_utils as util
|
|
8
8
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -14,18 +14,18 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class SSMMaintenanceWindowTargetProperties(TypedDict):
|
|
17
|
-
ResourceType:
|
|
18
|
-
Targets:
|
|
19
|
-
WindowId:
|
|
20
|
-
Description:
|
|
21
|
-
Id:
|
|
22
|
-
Name:
|
|
23
|
-
OwnerInformation:
|
|
17
|
+
ResourceType: str | None
|
|
18
|
+
Targets: list[Targets] | None
|
|
19
|
+
WindowId: str | None
|
|
20
|
+
Description: str | None
|
|
21
|
+
Id: str | None
|
|
22
|
+
Name: str | None
|
|
23
|
+
OwnerInformation: str | None
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class Targets(TypedDict):
|
|
27
|
-
Key:
|
|
28
|
-
Values:
|
|
27
|
+
Key: str | None
|
|
28
|
+
Values: list[str] | None
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SSMMaintenanceWindowTargetProviderPlugin(CloudFormationResourceProviderPlu
|
|
|
10
8
|
name = "AWS::SSM::MaintenanceWindowTarget"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget import (
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import TypedDict
|
|
6
6
|
|
|
7
7
|
import localstack.services.cloudformation.provider_utils as util
|
|
8
8
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -14,80 +14,80 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class SSMMaintenanceWindowTaskProperties(TypedDict):
|
|
17
|
-
Priority:
|
|
18
|
-
TaskArn:
|
|
19
|
-
TaskType:
|
|
20
|
-
WindowId:
|
|
21
|
-
CutoffBehavior:
|
|
22
|
-
Description:
|
|
23
|
-
Id:
|
|
24
|
-
LoggingInfo:
|
|
25
|
-
MaxConcurrency:
|
|
26
|
-
MaxErrors:
|
|
27
|
-
Name:
|
|
28
|
-
ServiceRoleArn:
|
|
29
|
-
Targets:
|
|
30
|
-
TaskInvocationParameters:
|
|
31
|
-
TaskParameters:
|
|
17
|
+
Priority: int | None
|
|
18
|
+
TaskArn: str | None
|
|
19
|
+
TaskType: str | None
|
|
20
|
+
WindowId: str | None
|
|
21
|
+
CutoffBehavior: str | None
|
|
22
|
+
Description: str | None
|
|
23
|
+
Id: str | None
|
|
24
|
+
LoggingInfo: LoggingInfo | None
|
|
25
|
+
MaxConcurrency: str | None
|
|
26
|
+
MaxErrors: str | None
|
|
27
|
+
Name: str | None
|
|
28
|
+
ServiceRoleArn: str | None
|
|
29
|
+
Targets: list[Target] | None
|
|
30
|
+
TaskInvocationParameters: TaskInvocationParameters | None
|
|
31
|
+
TaskParameters: dict | None
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
class Target(TypedDict):
|
|
35
|
-
Key:
|
|
36
|
-
Values:
|
|
35
|
+
Key: str | None
|
|
36
|
+
Values: list[str] | None
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
class MaintenanceWindowStepFunctionsParameters(TypedDict):
|
|
40
|
-
Input:
|
|
41
|
-
Name:
|
|
40
|
+
Input: str | None
|
|
41
|
+
Name: str | None
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
class CloudWatchOutputConfig(TypedDict):
|
|
45
|
-
CloudWatchLogGroupName:
|
|
46
|
-
CloudWatchOutputEnabled:
|
|
45
|
+
CloudWatchLogGroupName: str | None
|
|
46
|
+
CloudWatchOutputEnabled: bool | None
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
class NotificationConfig(TypedDict):
|
|
50
|
-
NotificationArn:
|
|
51
|
-
NotificationEvents:
|
|
52
|
-
NotificationType:
|
|
50
|
+
NotificationArn: str | None
|
|
51
|
+
NotificationEvents: list[str] | None
|
|
52
|
+
NotificationType: str | None
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
class MaintenanceWindowRunCommandParameters(TypedDict):
|
|
56
|
-
CloudWatchOutputConfig:
|
|
57
|
-
Comment:
|
|
58
|
-
DocumentHash:
|
|
59
|
-
DocumentHashType:
|
|
60
|
-
DocumentVersion:
|
|
61
|
-
NotificationConfig:
|
|
62
|
-
OutputS3BucketName:
|
|
63
|
-
OutputS3KeyPrefix:
|
|
64
|
-
Parameters:
|
|
65
|
-
ServiceRoleArn:
|
|
66
|
-
TimeoutSeconds:
|
|
56
|
+
CloudWatchOutputConfig: CloudWatchOutputConfig | None
|
|
57
|
+
Comment: str | None
|
|
58
|
+
DocumentHash: str | None
|
|
59
|
+
DocumentHashType: str | None
|
|
60
|
+
DocumentVersion: str | None
|
|
61
|
+
NotificationConfig: NotificationConfig | None
|
|
62
|
+
OutputS3BucketName: str | None
|
|
63
|
+
OutputS3KeyPrefix: str | None
|
|
64
|
+
Parameters: dict | None
|
|
65
|
+
ServiceRoleArn: str | None
|
|
66
|
+
TimeoutSeconds: int | None
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
class MaintenanceWindowLambdaParameters(TypedDict):
|
|
70
|
-
ClientContext:
|
|
71
|
-
Payload:
|
|
72
|
-
Qualifier:
|
|
70
|
+
ClientContext: str | None
|
|
71
|
+
Payload: str | None
|
|
72
|
+
Qualifier: str | None
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
class MaintenanceWindowAutomationParameters(TypedDict):
|
|
76
|
-
DocumentVersion:
|
|
77
|
-
Parameters:
|
|
76
|
+
DocumentVersion: str | None
|
|
77
|
+
Parameters: dict | None
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
class TaskInvocationParameters(TypedDict):
|
|
81
|
-
MaintenanceWindowAutomationParameters:
|
|
82
|
-
MaintenanceWindowLambdaParameters:
|
|
83
|
-
MaintenanceWindowRunCommandParameters:
|
|
84
|
-
MaintenanceWindowStepFunctionsParameters:
|
|
81
|
+
MaintenanceWindowAutomationParameters: MaintenanceWindowAutomationParameters | None
|
|
82
|
+
MaintenanceWindowLambdaParameters: MaintenanceWindowLambdaParameters | None
|
|
83
|
+
MaintenanceWindowRunCommandParameters: MaintenanceWindowRunCommandParameters | None
|
|
84
|
+
MaintenanceWindowStepFunctionsParameters: MaintenanceWindowStepFunctionsParameters | None
|
|
85
85
|
|
|
86
86
|
|
|
87
87
|
class LoggingInfo(TypedDict):
|
|
88
|
-
Region:
|
|
89
|
-
S3Bucket:
|
|
90
|
-
S3Prefix:
|
|
88
|
+
Region: str | None
|
|
89
|
+
S3Bucket: str | None
|
|
90
|
+
S3Prefix: str | None
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SSMMaintenanceWindowTaskProviderPlugin(CloudFormationResourceProviderPlugi
|
|
|
10
8
|
name = "AWS::SSM::MaintenanceWindowTask"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask import (
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
from __future__ import annotations
|
|
3
3
|
|
|
4
4
|
from pathlib import Path
|
|
5
|
-
from typing import
|
|
5
|
+
from typing import TypedDict
|
|
6
6
|
|
|
7
7
|
import localstack.services.cloudformation.provider_utils as util
|
|
8
8
|
from localstack.services.cloudformation.resource_provider import (
|
|
@@ -14,15 +14,15 @@ from localstack.services.cloudformation.resource_provider import (
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class SSMParameterProperties(TypedDict):
|
|
17
|
-
Type:
|
|
18
|
-
Value:
|
|
19
|
-
AllowedPattern:
|
|
20
|
-
DataType:
|
|
21
|
-
Description:
|
|
22
|
-
Name:
|
|
23
|
-
Policies:
|
|
24
|
-
Tags:
|
|
25
|
-
Tier:
|
|
17
|
+
Type: str | None
|
|
18
|
+
Value: str | None
|
|
19
|
+
AllowedPattern: str | None
|
|
20
|
+
DataType: str | None
|
|
21
|
+
Description: str | None
|
|
22
|
+
Name: str | None
|
|
23
|
+
Policies: str | None
|
|
24
|
+
Tags: dict | None
|
|
25
|
+
Tier: str | None
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
REPEATED_INVOCATION = "repeated_invocation"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
from typing import Optional, Type
|
|
2
|
-
|
|
3
1
|
from localstack.services.cloudformation.resource_provider import (
|
|
4
2
|
CloudFormationResourceProviderPlugin,
|
|
5
3
|
ResourceProvider,
|
|
@@ -10,7 +8,7 @@ class SSMParameterProviderPlugin(CloudFormationResourceProviderPlugin):
|
|
|
10
8
|
name = "AWS::SSM::Parameter"
|
|
11
9
|
|
|
12
10
|
def __init__(self):
|
|
13
|
-
self.factory:
|
|
11
|
+
self.factory: type[ResourceProvider] | None = None
|
|
14
12
|
|
|
15
13
|
def load(self):
|
|
16
14
|
from localstack.services.ssm.resource_providers.aws_ssm_parameter import (
|