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.
Files changed (545) hide show
  1. localstack/aws/api/apigateway/__init__.py +87 -110
  2. localstack/aws/api/core.py +2 -3
  3. localstack/aws/api/events/__init__.py +12 -16
  4. localstack/aws/api/logs/__init__.py +5 -8
  5. localstack/aws/api/pipes/__init__.py +24 -32
  6. localstack/aws/api/scheduler/__init__.py +14 -16
  7. localstack/aws/api/stepfunctions/__init__.py +88 -114
  8. localstack/aws/api/support/__init__.py +8 -9
  9. localstack/aws/chain.py +2 -2
  10. localstack/aws/client.py +7 -9
  11. localstack/aws/connect.py +40 -39
  12. localstack/aws/forwarder.py +5 -4
  13. localstack/aws/gateway.py +1 -3
  14. localstack/aws/handlers/analytics.py +1 -2
  15. localstack/aws/handlers/cors.py +4 -5
  16. localstack/aws/handlers/logging.py +1 -2
  17. localstack/aws/handlers/metric_handler.py +3 -4
  18. localstack/aws/handlers/service.py +5 -5
  19. localstack/aws/mocking.py +15 -24
  20. localstack/aws/protocol/op_router.py +11 -10
  21. localstack/aws/protocol/parser.py +16 -17
  22. localstack/aws/protocol/serializer.py +37 -40
  23. localstack/aws/protocol/service_router.py +13 -13
  24. localstack/aws/protocol/validate.py +5 -5
  25. localstack/aws/scaffold.py +8 -9
  26. localstack/aws/serving/edge.py +5 -6
  27. localstack/aws/serving/hypercorn.py +2 -2
  28. localstack/aws/serving/twisted.py +1 -2
  29. localstack/aws/serving/werkzeug.py +2 -2
  30. localstack/aws/skeleton.py +7 -8
  31. localstack/aws/spec.py +29 -30
  32. localstack/cli/localstack.py +6 -6
  33. localstack/cli/lpm.py +2 -2
  34. localstack/config.py +14 -15
  35. localstack/deprecations.py +5 -5
  36. localstack/dev/run/__main__.py +4 -4
  37. localstack/dev/run/paths.py +5 -5
  38. localstack/dns/models.py +2 -1
  39. localstack/dns/server.py +3 -2
  40. localstack/http/dispatcher.py +1 -2
  41. localstack/http/response.py +2 -2
  42. localstack/http/router.py +1 -1
  43. localstack/http/trace.py +2 -1
  44. localstack/logging/format.py +3 -3
  45. localstack/packages/api.py +5 -5
  46. localstack/packages/core.py +3 -3
  47. localstack/packages/debugpy.py +1 -3
  48. localstack/packages/ffmpeg.py +1 -2
  49. localstack/packages/java.py +1 -2
  50. localstack/packages/terraform.py +1 -2
  51. localstack/runtime/init.py +6 -7
  52. localstack/runtime/shutdown.py +2 -1
  53. localstack/services/apigateway/exporter.py +1 -2
  54. localstack/services/apigateway/helpers.py +6 -6
  55. localstack/services/apigateway/legacy/context.py +21 -21
  56. localstack/services/apigateway/legacy/helpers.py +20 -20
  57. localstack/services/apigateway/legacy/integration.py +7 -7
  58. localstack/services/apigateway/legacy/router_asf.py +2 -2
  59. localstack/services/apigateway/legacy/templates.py +5 -5
  60. localstack/services/apigateway/models.py +16 -16
  61. localstack/services/apigateway/next_gen/execute_api/api.py +2 -2
  62. localstack/services/apigateway/next_gen/execute_api/context.py +25 -25
  63. localstack/services/apigateway/next_gen/execute_api/handlers/api_key_validation.py +2 -5
  64. localstack/services/apigateway/next_gen/execute_api/handlers/parse.py +1 -2
  65. localstack/services/apigateway/next_gen/execute_api/handlers/resource_router.py +1 -1
  66. localstack/services/apigateway/next_gen/execute_api/header_utils.py +1 -1
  67. localstack/services/apigateway/next_gen/execute_api/helpers.py +2 -2
  68. localstack/services/apigateway/next_gen/execute_api/integrations/aws.py +6 -6
  69. localstack/services/apigateway/next_gen/execute_api/integrations/http.py +9 -9
  70. localstack/services/apigateway/next_gen/execute_api/variables.py +63 -63
  71. localstack/services/apigateway/resource_providers/aws_apigateway_account.py +3 -3
  72. localstack/services/apigateway/resource_providers/aws_apigateway_account_plugin.py +1 -3
  73. localstack/services/apigateway/resource_providers/aws_apigateway_apikey.py +14 -14
  74. localstack/services/apigateway/resource_providers/aws_apigateway_apikey_plugin.py +1 -3
  75. localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping.py +5 -5
  76. localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping_plugin.py +1 -3
  77. localstack/services/apigateway/resource_providers/aws_apigateway_deployment.py +46 -46
  78. localstack/services/apigateway/resource_providers/aws_apigateway_deployment_plugin.py +1 -3
  79. localstack/services/apigateway/resource_providers/aws_apigateway_domainname.py +18 -18
  80. localstack/services/apigateway/resource_providers/aws_apigateway_domainname_plugin.py +1 -3
  81. localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse.py +7 -7
  82. localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse_plugin.py +1 -3
  83. localstack/services/apigateway/resource_providers/aws_apigateway_method.py +36 -36
  84. localstack/services/apigateway/resource_providers/aws_apigateway_method_plugin.py +1 -3
  85. localstack/services/apigateway/resource_providers/aws_apigateway_model.py +6 -6
  86. localstack/services/apigateway/resource_providers/aws_apigateway_model_plugin.py +1 -3
  87. localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator.py +6 -6
  88. localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator_plugin.py +1 -3
  89. localstack/services/apigateway/resource_providers/aws_apigateway_resource.py +5 -5
  90. localstack/services/apigateway/resource_providers/aws_apigateway_resource_plugin.py +1 -3
  91. localstack/services/apigateway/resource_providers/aws_apigateway_restapi.py +26 -26
  92. localstack/services/apigateway/resource_providers/aws_apigateway_restapi_plugin.py +1 -3
  93. localstack/services/apigateway/resource_providers/aws_apigateway_stage.py +33 -33
  94. localstack/services/apigateway/resource_providers/aws_apigateway_stage_plugin.py +1 -3
  95. localstack/services/apigateway/resource_providers/aws_apigateway_usageplan.py +18 -18
  96. localstack/services/apigateway/resource_providers/aws_apigateway_usageplan_plugin.py +1 -3
  97. localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey.py +5 -5
  98. localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey_plugin.py +1 -3
  99. localstack/services/cdk/resource_providers/cdk_metadata.py +2 -2
  100. localstack/services/cdk/resource_providers/cdk_metadata_plugin.py +1 -3
  101. localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate.py +14 -14
  102. localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate_plugin.py +1 -3
  103. localstack/services/cloudformation/cfn_utils.py +1 -1
  104. localstack/services/cloudformation/deployment_utils.py +2 -2
  105. localstack/services/cloudformation/engine/changes.py +3 -3
  106. localstack/services/cloudformation/engine/entities.py +12 -12
  107. localstack/services/cloudformation/engine/parameters.py +3 -3
  108. localstack/services/cloudformation/engine/template_deployer.py +9 -10
  109. localstack/services/cloudformation/engine/transformers.py +5 -4
  110. localstack/services/cloudformation/engine/types.py +5 -4
  111. localstack/services/cloudformation/engine/v2/change_set_model.py +31 -9
  112. localstack/services/cloudformation/engine/v2/change_set_model_describer.py +6 -6
  113. localstack/services/cloudformation/engine/v2/change_set_model_executor.py +62 -80
  114. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +15 -14
  115. localstack/services/cloudformation/engine/v2/change_set_model_transform.py +5 -5
  116. localstack/services/cloudformation/provider_utils.py +2 -2
  117. localstack/services/cloudformation/resource_provider.py +10 -9
  118. localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py +7 -7
  119. localstack/services/cloudformation/resource_providers/aws_cloudformation_macro_plugin.py +1 -3
  120. localstack/services/cloudformation/resource_providers/aws_cloudformation_stack.py +9 -9
  121. localstack/services/cloudformation/resource_providers/aws_cloudformation_stack_plugin.py +1 -3
  122. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition.py +6 -6
  123. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition_plugin.py +1 -3
  124. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle.py +2 -2
  125. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle_plugin.py +1 -3
  126. localstack/services/cloudformation/scaffolding/__main__.py +8 -7
  127. localstack/services/cloudformation/scaffolding/propgen.py +2 -2
  128. localstack/services/cloudformation/stores.py +2 -3
  129. localstack/services/cloudformation/v2/entities.py +57 -36
  130. localstack/services/cloudformation/v2/provider.py +155 -29
  131. localstack/services/cloudwatch/alarm_scheduler.py +7 -7
  132. localstack/services/cloudwatch/cloudwatch_database_helper.py +4 -5
  133. localstack/services/cloudwatch/models.py +5 -7
  134. localstack/services/cloudwatch/provider.py +12 -12
  135. localstack/services/cloudwatch/provider_v2.py +2 -4
  136. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.py +40 -40
  137. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm_plugin.py +1 -3
  138. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm.py +12 -12
  139. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm_plugin.py +1 -3
  140. localstack/services/dynamodb/packages.py +1 -2
  141. localstack/services/dynamodb/provider.py +7 -8
  142. localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable.py +63 -63
  143. localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable_plugin.py +1 -3
  144. localstack/services/dynamodb/resource_providers/aws_dynamodb_table.py +57 -57
  145. localstack/services/dynamodb/resource_providers/aws_dynamodb_table_plugin.py +1 -3
  146. localstack/services/dynamodb/utils.py +13 -14
  147. localstack/services/dynamodb/v2/provider.py +6 -7
  148. localstack/services/dynamodbstreams/dynamodbstreams_api.py +2 -2
  149. localstack/services/dynamodbstreams/models.py +1 -3
  150. localstack/services/ec2/patches.py +4 -5
  151. localstack/services/ec2/provider.py +3 -3
  152. localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions.py +10 -10
  153. localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions_plugin.py +1 -3
  154. localstack/services/ec2/resource_providers/aws_ec2_instance.py +96 -96
  155. localstack/services/ec2/resource_providers/aws_ec2_instance_plugin.py +1 -3
  156. localstack/services/ec2/resource_providers/aws_ec2_internetgateway.py +5 -5
  157. localstack/services/ec2/resource_providers/aws_ec2_internetgateway_plugin.py +1 -3
  158. localstack/services/ec2/resource_providers/aws_ec2_keypair.py +10 -10
  159. localstack/services/ec2/resource_providers/aws_ec2_keypair_plugin.py +1 -3
  160. localstack/services/ec2/resource_providers/aws_ec2_natgateway.py +13 -13
  161. localstack/services/ec2/resource_providers/aws_ec2_natgateway_plugin.py +1 -3
  162. localstack/services/ec2/resource_providers/aws_ec2_networkacl.py +6 -6
  163. localstack/services/ec2/resource_providers/aws_ec2_networkacl_plugin.py +1 -3
  164. localstack/services/ec2/resource_providers/aws_ec2_prefixlist.py +14 -14
  165. localstack/services/ec2/resource_providers/aws_ec2_prefixlist_plugin.py +1 -3
  166. localstack/services/ec2/resource_providers/aws_ec2_route.py +15 -15
  167. localstack/services/ec2/resource_providers/aws_ec2_route_plugin.py +1 -3
  168. localstack/services/ec2/resource_providers/aws_ec2_routetable.py +6 -6
  169. localstack/services/ec2/resource_providers/aws_ec2_routetable_plugin.py +1 -3
  170. localstack/services/ec2/resource_providers/aws_ec2_securitygroup.py +29 -29
  171. localstack/services/ec2/resource_providers/aws_ec2_securitygroup_plugin.py +1 -3
  172. localstack/services/ec2/resource_providers/aws_ec2_subnet.py +19 -19
  173. localstack/services/ec2/resource_providers/aws_ec2_subnet_plugin.py +1 -3
  174. localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation.py +4 -4
  175. localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation_plugin.py +1 -3
  176. localstack/services/ec2/resource_providers/aws_ec2_transitgateway.py +16 -16
  177. localstack/services/ec2/resource_providers/aws_ec2_transitgateway_plugin.py +1 -3
  178. localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment.py +9 -9
  179. localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment_plugin.py +1 -3
  180. localstack/services/ec2/resource_providers/aws_ec2_vpc.py +15 -15
  181. localstack/services/ec2/resource_providers/aws_ec2_vpc_plugin.py +1 -3
  182. localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint.py +13 -13
  183. localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint_plugin.py +1 -3
  184. localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment.py +5 -5
  185. localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment_plugin.py +1 -3
  186. localstack/services/ecr/resource_providers/aws_ecr_repository.py +17 -17
  187. localstack/services/ecr/resource_providers/aws_ecr_repository_plugin.py +1 -3
  188. localstack/services/edge.py +5 -5
  189. localstack/services/es/provider.py +19 -19
  190. localstack/services/events/archive.py +2 -2
  191. localstack/services/events/connection.py +5 -5
  192. localstack/services/events/event_bus.py +9 -9
  193. localstack/services/events/models.py +25 -25
  194. localstack/services/events/provider.py +12 -12
  195. localstack/services/events/replay.py +3 -3
  196. localstack/services/events/resource_providers/aws_events_apidestination.py +8 -8
  197. localstack/services/events/resource_providers/aws_events_apidestination_plugin.py +1 -3
  198. localstack/services/events/resource_providers/aws_events_connection.py +27 -27
  199. localstack/services/events/resource_providers/aws_events_connection_plugin.py +1 -3
  200. localstack/services/events/resource_providers/aws_events_eventbus.py +9 -9
  201. localstack/services/events/resource_providers/aws_events_eventbus_plugin.py +1 -3
  202. localstack/services/events/resource_providers/aws_events_eventbuspolicy.py +11 -11
  203. localstack/services/events/resource_providers/aws_events_eventbuspolicy_plugin.py +1 -3
  204. localstack/services/events/resource_providers/aws_events_rule.py +82 -82
  205. localstack/services/events/resource_providers/aws_events_rule_plugin.py +1 -3
  206. localstack/services/events/rule.py +15 -15
  207. localstack/services/events/target.py +5 -5
  208. localstack/services/events/utils.py +7 -7
  209. localstack/services/events/v1/models.py +1 -3
  210. localstack/services/events/v1/provider.py +10 -10
  211. localstack/services/firehose/models.py +1 -3
  212. localstack/services/firehose/provider.py +11 -12
  213. localstack/services/iam/iam_patches.py +5 -6
  214. localstack/services/iam/provider.py +4 -4
  215. localstack/services/iam/resource_providers/aws_iam_accesskey.py +6 -6
  216. localstack/services/iam/resource_providers/aws_iam_accesskey_plugin.py +1 -3
  217. localstack/services/iam/resource_providers/aws_iam_group.py +9 -9
  218. localstack/services/iam/resource_providers/aws_iam_group_plugin.py +1 -3
  219. localstack/services/iam/resource_providers/aws_iam_instanceprofile.py +5 -5
  220. localstack/services/iam/resource_providers/aws_iam_instanceprofile_plugin.py +1 -3
  221. localstack/services/iam/resource_providers/aws_iam_managedpolicy.py +9 -9
  222. localstack/services/iam/resource_providers/aws_iam_managedpolicy_plugin.py +1 -3
  223. localstack/services/iam/resource_providers/aws_iam_policy.py +7 -7
  224. localstack/services/iam/resource_providers/aws_iam_policy_plugin.py +1 -3
  225. localstack/services/iam/resource_providers/aws_iam_role.py +16 -16
  226. localstack/services/iam/resource_providers/aws_iam_role_plugin.py +1 -3
  227. localstack/services/iam/resource_providers/aws_iam_servercertificate.py +10 -10
  228. localstack/services/iam/resource_providers/aws_iam_servercertificate_plugin.py +1 -3
  229. localstack/services/iam/resource_providers/aws_iam_servicelinkedrole.py +5 -5
  230. localstack/services/iam/resource_providers/aws_iam_servicelinkedrole_plugin.py +1 -3
  231. localstack/services/iam/resource_providers/aws_iam_user.py +17 -17
  232. localstack/services/iam/resource_providers/aws_iam_user_plugin.py +1 -3
  233. localstack/services/kinesis/kinesis_mock_server.py +7 -8
  234. localstack/services/kinesis/models.py +2 -3
  235. localstack/services/kinesis/packages.py +3 -3
  236. localstack/services/kinesis/resource_providers/aws_kinesis_stream.py +13 -13
  237. localstack/services/kinesis/resource_providers/aws_kinesis_stream_plugin.py +1 -3
  238. localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer.py +7 -7
  239. localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer_plugin.py +1 -3
  240. localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream.py +191 -191
  241. localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream_plugin.py +1 -3
  242. localstack/services/kms/models.py +14 -17
  243. localstack/services/kms/provider.py +2 -3
  244. localstack/services/kms/resource_providers/aws_kms_alias.py +3 -3
  245. localstack/services/kms/resource_providers/aws_kms_alias_plugin.py +1 -3
  246. localstack/services/kms/resource_providers/aws_kms_key.py +14 -14
  247. localstack/services/kms/resource_providers/aws_kms_key_plugin.py +1 -3
  248. localstack/services/kms/utils.py +3 -2
  249. localstack/services/lambda_/api_utils.py +12 -12
  250. localstack/services/lambda_/custom_endpoints.py +2 -2
  251. localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +1 -1
  252. localstack/services/lambda_/event_source_mapping/pipe_utils.py +2 -2
  253. localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
  254. localstack/services/lambda_/event_source_mapping/senders/sender_utils.py +2 -1
  255. localstack/services/lambda_/invocation/assignment.py +1 -2
  256. localstack/services/lambda_/invocation/docker_runtime_executor.py +5 -4
  257. localstack/services/lambda_/invocation/execution_environment.py +4 -4
  258. localstack/services/lambda_/invocation/executor_endpoint.py +5 -5
  259. localstack/services/lambda_/invocation/internal_sqs_queue.py +1 -1
  260. localstack/services/lambda_/invocation/lambda_models.py +23 -23
  261. localstack/services/lambda_/invocation/lambda_service.py +4 -4
  262. localstack/services/lambda_/invocation/logs.py +2 -3
  263. localstack/services/lambda_/invocation/runtime_executor.py +3 -3
  264. localstack/services/lambda_/ldm.py +2 -3
  265. localstack/services/lambda_/packages.py +2 -3
  266. localstack/services/lambda_/provider.py +3 -3
  267. localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig.py +8 -8
  268. localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig_plugin.py +1 -3
  269. localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig.py +11 -11
  270. localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig_plugin.py +1 -3
  271. localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.py +39 -39
  272. localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping_plugin.py +1 -3
  273. localstack/services/lambda_/resource_providers/aws_lambda_function.py +54 -54
  274. localstack/services/lambda_/resource_providers/aws_lambda_function_plugin.py +1 -3
  275. localstack/services/lambda_/resource_providers/aws_lambda_layerversion.py +11 -11
  276. localstack/services/lambda_/resource_providers/aws_lambda_layerversion_plugin.py +1 -3
  277. localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission.py +6 -6
  278. localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission_plugin.py +1 -3
  279. localstack/services/lambda_/resource_providers/aws_lambda_permission.py +10 -10
  280. localstack/services/lambda_/resource_providers/aws_lambda_permission_plugin.py +1 -3
  281. localstack/services/lambda_/resource_providers/aws_lambda_url.py +14 -14
  282. localstack/services/lambda_/resource_providers/aws_lambda_url_plugin.py +1 -3
  283. localstack/services/lambda_/resource_providers/aws_lambda_version.py +8 -8
  284. localstack/services/lambda_/resource_providers/aws_lambda_version_plugin.py +1 -3
  285. localstack/services/lambda_/resource_providers/lambda_alias.py +12 -12
  286. localstack/services/lambda_/resource_providers/lambda_alias_plugin.py +1 -3
  287. localstack/services/lambda_/runtimes.py +1 -3
  288. localstack/services/logs/models.py +1 -3
  289. localstack/services/logs/provider.py +3 -3
  290. localstack/services/logs/resource_providers/aws_logs_loggroup.py +9 -9
  291. localstack/services/logs/resource_providers/aws_logs_loggroup_plugin.py +1 -3
  292. localstack/services/logs/resource_providers/aws_logs_logstream.py +4 -4
  293. localstack/services/logs/resource_providers/aws_logs_logstream_plugin.py +1 -3
  294. localstack/services/logs/resource_providers/aws_logs_subscriptionfilter.py +7 -7
  295. localstack/services/logs/resource_providers/aws_logs_subscriptionfilter_plugin.py +1 -3
  296. localstack/services/moto.py +3 -3
  297. localstack/services/opensearch/cluster.py +13 -13
  298. localstack/services/opensearch/cluster_manager.py +13 -14
  299. localstack/services/opensearch/models.py +1 -3
  300. localstack/services/opensearch/packages.py +1 -2
  301. localstack/services/opensearch/provider.py +7 -8
  302. localstack/services/opensearch/resource_providers/aws_elasticsearch_domain.py +61 -61
  303. localstack/services/opensearch/resource_providers/aws_elasticsearch_domain_plugin.py +1 -3
  304. localstack/services/opensearch/resource_providers/aws_opensearchservice_domain.py +89 -89
  305. localstack/services/opensearch/resource_providers/aws_opensearchservice_domain_plugin.py +1 -3
  306. localstack/services/opensearch/versions.py +1 -3
  307. localstack/services/plugins.py +26 -25
  308. localstack/services/redshift/resource_providers/aws_redshift_cluster.py +57 -57
  309. localstack/services/redshift/resource_providers/aws_redshift_cluster_plugin.py +1 -3
  310. localstack/services/resource_groups/resource_providers/aws_resourcegroups_group.py +21 -21
  311. localstack/services/resource_groups/resource_providers/aws_resourcegroups_group_plugin.py +1 -3
  312. localstack/services/route53/models.py +1 -3
  313. localstack/services/route53/provider.py +1 -2
  314. localstack/services/route53/resource_providers/aws_route53_healthcheck.py +6 -6
  315. localstack/services/route53/resource_providers/aws_route53_healthcheck_plugin.py +1 -3
  316. localstack/services/route53/resource_providers/aws_route53_recordset.py +27 -27
  317. localstack/services/route53/resource_providers/aws_route53_recordset_plugin.py +1 -3
  318. localstack/services/route53resolver/models.py +8 -10
  319. localstack/services/route53resolver/provider.py +12 -12
  320. localstack/services/s3/codec.py +2 -2
  321. localstack/services/s3/cors.py +4 -4
  322. localstack/services/s3/models.py +72 -72
  323. localstack/services/s3/notifications.py +19 -19
  324. localstack/services/s3/presigned_url.py +6 -5
  325. localstack/services/s3/provider.py +13 -14
  326. localstack/services/s3/resource_providers/aws_s3_bucket.py +180 -180
  327. localstack/services/s3/resource_providers/aws_s3_bucket_plugin.py +1 -3
  328. localstack/services/s3/resource_providers/aws_s3_bucketpolicy.py +4 -4
  329. localstack/services/s3/resource_providers/aws_s3_bucketpolicy_plugin.py +1 -3
  330. localstack/services/s3/storage/core.py +4 -3
  331. localstack/services/s3/storage/ephemeral.py +7 -6
  332. localstack/services/s3/utils.py +11 -11
  333. localstack/services/s3/validation.py +1 -1
  334. localstack/services/s3/website_hosting.py +5 -5
  335. localstack/services/scheduler/resource_providers/aws_scheduler_schedule.py +60 -60
  336. localstack/services/scheduler/resource_providers/aws_scheduler_schedule_plugin.py +1 -3
  337. localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup.py +9 -9
  338. localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup_plugin.py +1 -3
  339. localstack/services/secretsmanager/provider.py +9 -11
  340. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy.py +5 -5
  341. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy_plugin.py +1 -3
  342. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule.py +21 -21
  343. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule_plugin.py +1 -3
  344. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret.py +23 -23
  345. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret_plugin.py +1 -3
  346. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment.py +5 -5
  347. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment_plugin.py +1 -3
  348. localstack/services/ses/provider.py +8 -8
  349. localstack/services/ses/resource_providers/aws_ses_emailidentity.py +21 -21
  350. localstack/services/ses/resource_providers/aws_ses_emailidentity_plugin.py +1 -3
  351. localstack/services/sns/models.py +25 -25
  352. localstack/services/sns/provider.py +1 -2
  353. localstack/services/sns/publisher.py +6 -7
  354. localstack/services/sns/resource_providers/aws_sns_subscription.py +13 -13
  355. localstack/services/sns/resource_providers/aws_sns_subscription_plugin.py +1 -3
  356. localstack/services/sns/resource_providers/aws_sns_topic.py +16 -16
  357. localstack/services/sns/resource_providers/aws_sns_topic_plugin.py +1 -3
  358. localstack/services/sns/resource_providers/aws_sns_topicpolicy.py +4 -4
  359. localstack/services/sns/resource_providers/aws_sns_topicpolicy_plugin.py +1 -3
  360. localstack/services/sqs/models.py +21 -22
  361. localstack/services/sqs/provider.py +19 -18
  362. localstack/services/sqs/query_api.py +2 -3
  363. localstack/services/sqs/resource_providers/aws_sqs_queue.py +21 -21
  364. localstack/services/sqs/resource_providers/aws_sqs_queue_plugin.py +1 -3
  365. localstack/services/sqs/resource_providers/aws_sqs_queuepolicy.py +4 -4
  366. localstack/services/sqs/resource_providers/aws_sqs_queuepolicy_plugin.py +1 -3
  367. localstack/services/sqs/utils.py +3 -3
  368. localstack/services/ssm/provider.py +2 -3
  369. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow.py +15 -15
  370. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow_plugin.py +1 -3
  371. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget.py +10 -10
  372. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget_plugin.py +1 -3
  373. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask.py +48 -48
  374. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask_plugin.py +1 -3
  375. localstack/services/ssm/resource_providers/aws_ssm_parameter.py +10 -10
  376. localstack/services/ssm/resource_providers/aws_ssm_parameter_plugin.py +1 -3
  377. localstack/services/ssm/resource_providers/aws_ssm_patchbaseline.py +29 -29
  378. localstack/services/ssm/resource_providers/aws_ssm_patchbaseline_plugin.py +1 -3
  379. localstack/services/stepfunctions/asl/antlt4utils/antlr4utils.py +3 -4
  380. localstack/services/stepfunctions/asl/component/common/catch/catcher_decl.py +9 -9
  381. localstack/services/stepfunctions/asl/component/common/error_name/custom_error_name.py +2 -2
  382. localstack/services/stepfunctions/asl/component/common/error_name/error_name.py +4 -4
  383. localstack/services/stepfunctions/asl/component/common/error_name/failure_event.py +8 -8
  384. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_binding.py +2 -2
  385. localstack/services/stepfunctions/asl/component/common/path/input_path.py +3 -3
  386. localstack/services/stepfunctions/asl/component/common/path/output_path.py +3 -3
  387. localstack/services/stepfunctions/asl/component/common/path/result_path.py +3 -3
  388. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadbinding/payload_binding.py +3 -3
  389. localstack/services/stepfunctions/asl/component/common/retry/retrier_decl.py +8 -8
  390. localstack/services/stepfunctions/asl/component/common/string/string_expression.py +2 -2
  391. localstack/services/stepfunctions/asl/component/common/timeouts/timeout.py +3 -3
  392. localstack/services/stepfunctions/asl/component/eval_component.py +2 -3
  393. localstack/services/stepfunctions/asl/component/intrinsic/argument/argument.py +3 -3
  394. localstack/services/stepfunctions/asl/component/intrinsic/jsonata.py +2 -2
  395. localstack/services/stepfunctions/asl/component/program/program.py +8 -8
  396. localstack/services/stepfunctions/asl/component/state/state.py +10 -11
  397. localstack/services/stepfunctions/asl/component/state/state_choice/choice_rule.py +11 -11
  398. localstack/services/stepfunctions/asl/component/state/state_choice/comparison/operator/implementations/is_operator.py +2 -2
  399. localstack/services/stepfunctions/asl/component/state/state_choice/state_choice.py +1 -3
  400. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +8 -8
  401. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/item_reader_decl.py +6 -6
  402. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/reader_config/reader_config_decl.py +5 -5
  403. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_eval_s3.py +2 -1
  404. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/distributed_iteration_component.py +8 -8
  405. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/inline_iteration_component.py +7 -7
  406. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/distributed_item_processor_worker.py +4 -4
  407. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/inline_item_processor_worker.py +5 -5
  408. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/map_run_record.py +10 -10
  409. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_component.py +3 -3
  410. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_declaration.py +3 -3
  411. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_worker.py +2 -2
  412. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/distributed_iterator_worker.py +3 -5
  413. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator.py +1 -2
  414. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator_worker.py +5 -5
  415. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/job.py +9 -9
  416. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/result_writer/resource_eval/resource_eval_s3.py +2 -1
  417. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +10 -11
  418. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branch_worker.py +3 -3
  419. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branches_decl.py +4 -4
  420. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/state_parallel.py +1 -2
  421. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +6 -6
  422. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/resource.py +3 -3
  423. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +10 -10
  424. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_api_gateway.py +15 -15
  425. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_batch.py +5 -4
  426. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +18 -17
  427. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_dynamodb.py +2 -2
  428. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_ecs.py +5 -4
  429. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_events.py +4 -4
  430. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_glue.py +7 -6
  431. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_lambda.py +4 -4
  432. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sfn.py +9 -8
  433. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sns.py +2 -2
  434. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sqs.py +4 -4
  435. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +2 -2
  436. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task_lambda.py +2 -2
  437. localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +2 -4
  438. localstack/services/stepfunctions/asl/component/state/state_pass/state_pass.py +3 -5
  439. localstack/services/stepfunctions/asl/component/state/state_wait/wait_function/timestamp.py +2 -2
  440. localstack/services/stepfunctions/asl/eval/callback/callback.py +18 -18
  441. localstack/services/stepfunctions/asl/eval/environment.py +15 -17
  442. localstack/services/stepfunctions/asl/eval/evaluation_details.py +3 -5
  443. localstack/services/stepfunctions/asl/eval/event/event_manager.py +9 -9
  444. localstack/services/stepfunctions/asl/eval/event/logging.py +3 -3
  445. localstack/services/stepfunctions/asl/eval/program_state.py +8 -8
  446. localstack/services/stepfunctions/asl/eval/states.py +11 -11
  447. localstack/services/stepfunctions/asl/eval/test_state/environment.py +3 -5
  448. localstack/services/stepfunctions/asl/eval/variable_store.py +3 -3
  449. localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -4
  450. localstack/services/stepfunctions/asl/parse/intrinsic/preprocessor.py +1 -2
  451. localstack/services/stepfunctions/asl/parse/preprocessor.py +30 -30
  452. localstack/services/stepfunctions/asl/parse/typed_props.py +2 -2
  453. localstack/services/stepfunctions/asl/utils/encoding.py +2 -2
  454. localstack/services/stepfunctions/asl/utils/json_path.py +2 -2
  455. localstack/services/stepfunctions/backend/activity.py +4 -4
  456. localstack/services/stepfunctions/backend/alias.py +6 -6
  457. localstack/services/stepfunctions/backend/execution.py +25 -27
  458. localstack/services/stepfunctions/backend/execution_worker.py +7 -7
  459. localstack/services/stepfunctions/backend/state_machine.py +26 -26
  460. localstack/services/stepfunctions/backend/test_state/execution.py +3 -4
  461. localstack/services/stepfunctions/backend/test_state/execution_worker.py +1 -3
  462. localstack/services/stepfunctions/mocking/mock_config.py +5 -5
  463. localstack/services/stepfunctions/mocking/mock_config_file.py +10 -10
  464. localstack/services/stepfunctions/provider.py +27 -37
  465. localstack/services/stepfunctions/quotas.py +2 -3
  466. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity.py +6 -6
  467. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity_plugin.py +1 -3
  468. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine.py +25 -25
  469. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine_plugin.py +1 -3
  470. localstack/services/stepfunctions/stepfunctions_utils.py +1 -2
  471. localstack/services/stores.py +7 -7
  472. localstack/services/transcribe/packages.py +1 -3
  473. localstack/services/transcribe/provider.py +2 -2
  474. localstack/state/inspect.py +4 -4
  475. localstack/state/pickle.py +16 -15
  476. localstack/testing/aws/asf_utils.py +3 -2
  477. localstack/testing/aws/lambda_utils.py +15 -14
  478. localstack/testing/aws/util.py +3 -2
  479. localstack/testing/pytest/cloudformation/fixtures.py +13 -3
  480. localstack/testing/pytest/container.py +5 -4
  481. localstack/testing/pytest/filters.py +1 -3
  482. localstack/testing/pytest/fixtures.py +11 -11
  483. localstack/testing/pytest/marking.py +6 -6
  484. localstack/testing/pytest/path_filter.py +1 -1
  485. localstack/testing/pytest/stepfunctions/utils.py +1 -1
  486. localstack/testing/pytest/validation_tracking.py +3 -3
  487. localstack/testing/scenario/provisioning.py +11 -10
  488. localstack/testing/snapshots/transformer_utility.py +2 -2
  489. localstack/testing/testselection/matching.py +2 -2
  490. localstack/testing/testselection/opt_out.py +1 -1
  491. localstack/testing/testselection/scripts/filter_by_test_selection.py +1 -1
  492. localstack/testing/testselection/scripts/generate_test_selection.py +1 -1
  493. localstack/testing/testselection/testselection.py +2 -2
  494. localstack/utils/analytics/cli.py +2 -3
  495. localstack/utils/analytics/client.py +5 -5
  496. localstack/utils/analytics/events.py +2 -2
  497. localstack/utils/analytics/metrics/registry.py +1 -1
  498. localstack/utils/analytics/publisher.py +4 -4
  499. localstack/utils/analytics/service_request_aggregator.py +3 -3
  500. localstack/utils/aws/arns.py +2 -2
  501. localstack/utils/aws/aws_responses.py +14 -21
  502. localstack/utils/aws/aws_stack.py +7 -11
  503. localstack/utils/aws/dead_letter_queue.py +3 -4
  504. localstack/utils/aws/message_forwarding.py +9 -11
  505. localstack/utils/aws/request_context.py +4 -4
  506. localstack/utils/aws/templating.py +3 -3
  507. localstack/utils/batch_policy.py +2 -2
  508. localstack/utils/bootstrap.py +19 -20
  509. localstack/utils/collections.py +16 -23
  510. localstack/utils/config_listener.py +2 -2
  511. localstack/utils/container_networking.py +3 -3
  512. localstack/utils/container_utils/container_client.py +72 -75
  513. localstack/utils/container_utils/docker_cmd_client.py +33 -33
  514. localstack/utils/container_utils/docker_sdk_client.py +35 -35
  515. localstack/utils/crypto.py +2 -3
  516. localstack/utils/diagnose.py +11 -11
  517. localstack/utils/docker_utils.py +4 -4
  518. localstack/utils/files.py +1 -2
  519. localstack/utils/functions.py +2 -2
  520. localstack/utils/http.py +6 -6
  521. localstack/utils/iputils.py +2 -1
  522. localstack/utils/json.py +1 -1
  523. localstack/utils/net.py +10 -9
  524. localstack/utils/objects.py +10 -10
  525. localstack/utils/patch.py +5 -5
  526. localstack/utils/platform.py +2 -2
  527. localstack/utils/run.py +7 -7
  528. localstack/utils/scheduler.py +3 -2
  529. localstack/utils/strings.py +2 -2
  530. localstack/utils/tagging.py +3 -3
  531. localstack/utils/testutil.py +9 -9
  532. localstack/utils/threads.py +2 -2
  533. localstack/utils/xml.py +1 -1
  534. localstack/version.py +2 -2
  535. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/METADATA +1 -1
  536. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/RECORD +544 -544
  537. localstack_core-4.7.1.dev24.dist-info/plux.json +1 -0
  538. localstack_core-4.7.1.dev22.dist-info/plux.json +0 -1
  539. {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack +0 -0
  540. {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack-supervisor +0 -0
  541. {localstack_core-4.7.1.dev22.data → localstack_core-4.7.1.dev24.data}/scripts/localstack.bat +0 -0
  542. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/WHEEL +0 -0
  543. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/entry_points.txt +0 -0
  544. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/licenses/LICENSE.txt +0 -0
  545. {localstack_core-4.7.1.dev22.dist-info → localstack_core-4.7.1.dev24.dist-info}/top_level.txt +0 -0
@@ -4,7 +4,7 @@ import abc
4
4
  import datetime
5
5
  import json
6
6
  from collections import OrderedDict
7
- from typing import Final, Optional
7
+ from typing import Final
8
8
 
9
9
  from localstack.aws.api.stepfunctions import (
10
10
  Arn,
@@ -37,15 +37,15 @@ from localstack.utils.strings import long_uid
37
37
  class StateMachineInstance:
38
38
  name: Name
39
39
  arn: Arn
40
- revision_id: Optional[RevisionId]
40
+ revision_id: RevisionId | None
41
41
  definition: Definition
42
42
  role_arn: Arn
43
43
  create_date: datetime.datetime
44
44
  sm_type: StateMachineType
45
45
  logging_config: LoggingConfiguration
46
- cloud_watch_logging_configuration: Optional[CloudWatchLoggingConfiguration]
47
- tags: Optional[TagList]
48
- tracing_config: Optional[TracingConfiguration]
46
+ cloud_watch_logging_configuration: CloudWatchLoggingConfiguration | None
47
+ tags: TagList | None
48
+ tracing_config: TracingConfiguration | None
49
49
 
50
50
  def __init__(
51
51
  self,
@@ -54,18 +54,18 @@ class StateMachineInstance:
54
54
  definition: Definition,
55
55
  role_arn: Arn,
56
56
  logging_config: LoggingConfiguration,
57
- cloud_watch_logging_configuration: Optional[CloudWatchLoggingConfiguration] = None,
58
- create_date: Optional[datetime.datetime] = None,
59
- sm_type: Optional[StateMachineType] = None,
60
- tags: Optional[TagList] = None,
61
- tracing_config: Optional[TracingConfiguration] = None,
57
+ cloud_watch_logging_configuration: CloudWatchLoggingConfiguration | None = None,
58
+ create_date: datetime.datetime | None = None,
59
+ sm_type: StateMachineType | None = None,
60
+ tags: TagList | None = None,
61
+ tracing_config: TracingConfiguration | None = None,
62
62
  ):
63
63
  self.name = name
64
64
  self.arn = arn
65
65
  self.revision_id = None
66
66
  self.definition = definition
67
67
  self.role_arn = role_arn
68
- self.create_date = create_date or datetime.datetime.now(tz=datetime.timezone.utc)
68
+ self.create_date = create_date or datetime.datetime.now(tz=datetime.UTC)
69
69
  self.sm_type = sm_type or StateMachineType.STANDARD
70
70
  self.logging_config = logging_config
71
71
  self.cloud_watch_logging_configuration = cloud_watch_logging_configuration
@@ -106,7 +106,7 @@ class TestStateMachine(StateMachineInstance):
106
106
  arn: Arn,
107
107
  definition: Definition,
108
108
  role_arn: Arn,
109
- create_date: Optional[datetime.datetime] = None,
109
+ create_date: datetime.datetime | None = None,
110
110
  ):
111
111
  super().__init__(
112
112
  name,
@@ -125,7 +125,7 @@ class TestStateMachine(StateMachineInstance):
125
125
 
126
126
 
127
127
  class TagManager:
128
- _tags: Final[dict[str, Optional[str]]]
128
+ _tags: Final[dict[str, str | None]]
129
129
 
130
130
  def __init__(self):
131
131
  self._tags = OrderedDict()
@@ -173,11 +173,11 @@ class StateMachineRevision(StateMachineInstance):
173
173
  definition: Definition,
174
174
  role_arn: Arn,
175
175
  logging_config: LoggingConfiguration,
176
- cloud_watch_logging_configuration: Optional[CloudWatchLoggingConfiguration],
177
- create_date: Optional[datetime.datetime] = None,
178
- sm_type: Optional[StateMachineType] = None,
179
- tags: Optional[TagList] = None,
180
- tracing_config: Optional[TracingConfiguration] = None,
176
+ cloud_watch_logging_configuration: CloudWatchLoggingConfiguration | None,
177
+ create_date: datetime.datetime | None = None,
178
+ sm_type: StateMachineType | None = None,
179
+ tags: TagList | None = None,
180
+ tracing_config: TracingConfiguration | None = None,
181
181
  ):
182
182
  super().__init__(
183
183
  name,
@@ -200,10 +200,10 @@ class StateMachineRevision(StateMachineInstance):
200
200
 
201
201
  def create_revision(
202
202
  self,
203
- definition: Optional[str],
204
- role_arn: Optional[Arn],
205
- logging_configuration: Optional[LoggingConfiguration],
206
- ) -> Optional[RevisionId]:
203
+ definition: str | None,
204
+ role_arn: Arn | None,
205
+ logging_configuration: LoggingConfiguration | None,
206
+ ) -> RevisionId | None:
207
207
  update_definition = definition and json.loads(definition) != json.loads(self.definition)
208
208
  if update_definition:
209
209
  self.definition = definition
@@ -228,7 +228,7 @@ class StateMachineRevision(StateMachineInstance):
228
228
 
229
229
  return self.revision_id
230
230
 
231
- def create_version(self, description: Optional[str]) -> Optional[StateMachineVersion]:
231
+ def create_version(self, description: str | None) -> StateMachineVersion | None:
232
232
  if self.revision_id not in self.versions:
233
233
  self._version_number += 1
234
234
  version = StateMachineVersion(
@@ -259,10 +259,10 @@ class StateMachineRevision(StateMachineInstance):
259
259
  class StateMachineVersion(StateMachineInstance):
260
260
  source_arn: Arn
261
261
  version: int
262
- description: Optional[str]
262
+ description: str | None
263
263
 
264
264
  def __init__(
265
- self, state_machine_revision: StateMachineRevision, version: int, description: Optional[str]
265
+ self, state_machine_revision: StateMachineRevision, version: int, description: str | None
266
266
  ):
267
267
  version_arn = f"{state_machine_revision.arn}:{version}"
268
268
  super().__init__(
@@ -270,7 +270,7 @@ class StateMachineVersion(StateMachineInstance):
270
270
  arn=version_arn,
271
271
  definition=state_machine_revision.definition,
272
272
  role_arn=state_machine_revision.role_arn,
273
- create_date=datetime.datetime.now(tz=datetime.timezone.utc),
273
+ create_date=datetime.datetime.now(tz=datetime.UTC),
274
274
  sm_type=state_machine_revision.sm_type,
275
275
  logging_config=state_machine_revision.logging_config,
276
276
  cloud_watch_logging_configuration=state_machine_revision.cloud_watch_logging_configuration,
@@ -2,7 +2,6 @@ from __future__ import annotations
2
2
 
3
3
  import logging
4
4
  import threading
5
- from typing import Optional
6
5
 
7
6
  from localstack.aws.api.stepfunctions import (
8
7
  Arn,
@@ -37,8 +36,8 @@ LOG = logging.getLogger(__name__)
37
36
 
38
37
 
39
38
  class TestStateExecution(Execution):
40
- exec_worker: Optional[TestStateExecutionWorker]
41
- next_state: Optional[str]
39
+ exec_worker: TestStateExecutionWorker | None
40
+ next_state: str | None
42
41
 
43
42
  class TestCaseExecutionWorkerCommunication(BaseExecutionWorkerCommunication):
44
43
  _execution: TestStateExecution
@@ -62,7 +61,7 @@ class TestStateExecution(Execution):
62
61
  state_machine: StateMachineInstance,
63
62
  start_date: Timestamp,
64
63
  activity_store: dict[Arn, Activity],
65
- input_data: Optional[dict] = None,
64
+ input_data: dict | None = None,
66
65
  ):
67
66
  super().__init__(
68
67
  name=name,
@@ -1,5 +1,3 @@
1
- from typing import Optional
2
-
3
1
  from localstack.services.stepfunctions.asl.component.eval_component import EvalComponent
4
2
  from localstack.services.stepfunctions.asl.eval.environment import Environment
5
3
  from localstack.services.stepfunctions.asl.eval.event.event_manager import (
@@ -18,7 +16,7 @@ from localstack.services.stepfunctions.backend.execution_worker import SyncExecu
18
16
 
19
17
 
20
18
  class TestStateExecutionWorker(SyncExecutionWorker):
21
- env: Optional[TestStateEnvironment]
19
+ env: TestStateEnvironment | None
22
20
 
23
21
  def _get_evaluation_entrypoint(self) -> EvalComponent:
24
22
  return TestStateAmazonStateLanguageParser.parse(
@@ -1,5 +1,5 @@
1
1
  import abc
2
- from typing import Any, Final, Optional
2
+ from typing import Any, Final
3
3
 
4
4
  from localstack.services.stepfunctions.mocking.mock_config_file import (
5
5
  RawMockConfig,
@@ -144,8 +144,8 @@ def _mocked_response_from_raw(
144
144
  def _mocked_responses_from_raw(
145
145
  mocked_response_name: str, raw_mock_config: RawMockConfig
146
146
  ) -> list[MockedResponse]:
147
- raw_response_models: Optional[dict[str, RawResponseModel]] = (
148
- raw_mock_config.MockedResponses.get(mocked_response_name)
147
+ raw_response_models: dict[str, RawResponseModel] | None = raw_mock_config.MockedResponses.get(
148
+ mocked_response_name
149
149
  )
150
150
  if not raw_response_models:
151
151
  raise RuntimeError(
@@ -202,8 +202,8 @@ def _mock_test_case_from_raw(
202
202
  )
203
203
 
204
204
 
205
- def load_mock_test_case_for(state_machine_name: str, test_case_name: str) -> Optional[MockTestCase]:
206
- raw_mock_config: Optional[RawMockConfig] = _load_sfn_raw_mock_config()
205
+ def load_mock_test_case_for(state_machine_name: str, test_case_name: str) -> MockTestCase | None:
206
+ raw_mock_config: RawMockConfig | None = _load_sfn_raw_mock_config()
207
207
  if raw_mock_config is None:
208
208
  return None
209
209
  mock_test_case: MockTestCase = _mock_test_case_from_raw(
@@ -2,7 +2,7 @@ import logging
2
2
  import os
3
3
  from functools import lru_cache
4
4
  from json import JSONDecodeError
5
- from typing import Any, Dict, Final, Optional
5
+ from typing import Any, Final, Optional
6
6
 
7
7
  from pydantic import BaseModel, RootModel, ValidationError, model_validator
8
8
 
@@ -44,8 +44,8 @@ class RawResponseModel(BaseModel):
44
44
 
45
45
  model_config = {"frozen": True}
46
46
 
47
- Return: Optional[RawReturnResponse] = None
48
- Throw: Optional[RawThrowResponse] = None
47
+ Return: RawReturnResponse | None = None
48
+ Throw: RawThrowResponse | None = None
49
49
 
50
50
  @model_validator(mode="before")
51
51
  def validate_response(cls, data: dict) -> dict:
@@ -56,7 +56,7 @@ class RawResponseModel(BaseModel):
56
56
  return data
57
57
 
58
58
 
59
- class RawTestCase(RootModel[Dict[str, str]]):
59
+ class RawTestCase(RootModel[dict[str, str]]):
60
60
  """
61
61
  Represents an individual test case.
62
62
  The keys are state names (e.g., 'LambdaState', 'SQSState')
@@ -73,7 +73,7 @@ class RawStateMachine(BaseModel):
73
73
 
74
74
  model_config = {"frozen": True}
75
75
 
76
- TestCases: Dict[str, RawTestCase]
76
+ TestCases: dict[str, RawTestCase]
77
77
 
78
78
 
79
79
  class RawMockConfig(BaseModel):
@@ -86,8 +86,8 @@ class RawMockConfig(BaseModel):
86
86
 
87
87
  model_config = {"frozen": True}
88
88
 
89
- StateMachines: Dict[str, RawStateMachine]
90
- MockedResponses: Dict[str, Dict[str, RawResponseModel]]
89
+ StateMachines: dict[str, RawStateMachine]
90
+ MockedResponses: dict[str, dict[str, RawResponseModel]]
91
91
 
92
92
 
93
93
  @lru_cache(maxsize=1)
@@ -119,11 +119,11 @@ def _read_sfn_raw_mock_config(file_path: str, modified_epoch: int) -> Optional[R
119
119
  - Logging is used to capture warnings if file access or parsing fails.
120
120
  """
121
121
  try:
122
- with open(file_path, "r") as df:
122
+ with open(file_path) as df:
123
123
  mock_config_str = df.read()
124
124
  mock_config: RawMockConfig = RawMockConfig.model_validate_json(mock_config_str)
125
125
  return mock_config
126
- except (OSError, IOError) as file_error:
126
+ except OSError as file_error:
127
127
  LOG.error("Failed to open mock configuration file '%s'. Error: %s", file_path, file_error)
128
128
  return None
129
129
  except ValidationError as validation_error:
@@ -168,7 +168,7 @@ def _read_sfn_raw_mock_config(file_path: str, modified_epoch: int) -> Optional[R
168
168
  return None
169
169
 
170
170
 
171
- def _load_sfn_raw_mock_config() -> Optional[RawMockConfig]:
171
+ def _load_sfn_raw_mock_config() -> RawMockConfig | None:
172
172
  configuration_file_path = config.SFN_MOCK_CONFIG
173
173
  if not configuration_file_path:
174
174
  return None
@@ -4,7 +4,7 @@ import json
4
4
  import logging
5
5
  import re
6
6
  import time
7
- from typing import Final, Optional
7
+ from typing import Final
8
8
 
9
9
  from localstack.aws.api import CommonServiceException, RequestContext
10
10
  from localstack.aws.api.stepfunctions import (
@@ -275,7 +275,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
275
275
  )
276
276
 
277
277
  def _get_execution(self, context: RequestContext, execution_arn: Arn) -> Execution:
278
- execution: Optional[Execution] = self.get_store(context).executions.get(execution_arn)
278
+ execution: Execution | None = self.get_store(context).executions.get(execution_arn)
279
279
  if not execution:
280
280
  raise ExecutionDoesNotExist(f"Execution Does Not Exist: '{execution_arn}'")
281
281
  return execution
@@ -283,7 +283,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
283
283
  def _get_executions(
284
284
  self,
285
285
  context: RequestContext,
286
- execution_status: Optional[ExecutionStatus] = None,
286
+ execution_status: ExecutionStatus | None = None,
287
287
  ):
288
288
  store = self.get_store(context)
289
289
  execution: list[Execution] = list(store.executions.values())
@@ -297,9 +297,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
297
297
  return execution
298
298
 
299
299
  def _get_activity(self, context: RequestContext, activity_arn: Arn) -> Activity:
300
- maybe_activity: Optional[Activity] = self.get_store(context).activities.get(
301
- activity_arn, None
302
- )
300
+ maybe_activity: Activity | None = self.get_store(context).activities.get(activity_arn, None)
303
301
  if maybe_activity is None:
304
302
  raise ActivityDoesNotExist(f"Activity Does Not Exist: '{activity_arn}'")
305
303
  return maybe_activity
@@ -312,7 +310,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
312
310
  state_machine_type: StateMachineType,
313
311
  logging_configuration: LoggingConfiguration,
314
312
  tracing_configuration: TracingConfiguration,
315
- ) -> Optional[StateMachineRevision]:
313
+ ) -> StateMachineRevision | None:
316
314
  # CreateStateMachine's idempotency check is based on the state machine name, definition, type,
317
315
  # LoggingConfiguration and TracingConfiguration.
318
316
  # If a following request has a different roleArn or tags, Step Functions will ignore these differences and
@@ -338,11 +336,11 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
338
336
 
339
337
  def _idempotent_start_execution(
340
338
  self,
341
- execution: Optional[Execution],
339
+ execution: Execution | None,
342
340
  state_machine: StateMachineInstance,
343
341
  name: Name,
344
342
  input_data: SensitiveData,
345
- ) -> Optional[Execution]:
343
+ ) -> Execution | None:
346
344
  # StartExecution is idempotent for STANDARD workflows. For a STANDARD workflow,
347
345
  # if you call StartExecution with the same name and input as a running execution,
348
346
  # the call succeeds and return the same response as the original request.
@@ -366,9 +364,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
366
364
  message=f"Execution Already Exists: '{execution.exec_arn}'",
367
365
  )
368
366
 
369
- def _revision_by_name(
370
- self, context: RequestContext, name: str
371
- ) -> Optional[StateMachineInstance]:
367
+ def _revision_by_name(self, context: RequestContext, name: str) -> StateMachineInstance | None:
372
368
  state_machines: list[StateMachineInstance] = list(
373
369
  self.get_store(context).state_machines.values()
374
370
  )
@@ -445,7 +441,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
445
441
 
446
442
  # CreateStateMachine is an idempotent API. Subsequent requests won't create a duplicate resource if it was
447
443
  # already created.
448
- idem_state_machine: Optional[StateMachineRevision] = self._idempotent_revision(
444
+ idem_state_machine: StateMachineRevision | None = self._idempotent_revision(
449
445
  context=context,
450
446
  name=state_machine_name,
451
447
  definition=state_machine_definition,
@@ -460,7 +456,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
460
456
  )
461
457
 
462
458
  # Assert this state machine name is unique.
463
- state_machine_with_name: Optional[StateMachineRevision] = self._revision_by_name(
459
+ state_machine_with_name: StateMachineRevision | None = self._revision_by_name(
464
460
  context=context, name=state_machine_name
465
461
  )
466
462
  if state_machine_with_name is not None:
@@ -690,9 +686,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
690
686
  self, context: RequestContext, state_machine_alias_arn: Arn, **kwargs
691
687
  ) -> DescribeStateMachineAliasOutput:
692
688
  self._validate_state_machine_alias_arn(state_machine_alias_arn=state_machine_alias_arn)
693
- alias: Optional[Alias] = self.get_store(context=context).aliases.get(
694
- state_machine_alias_arn
695
- )
689
+ alias: Alias | None = self.get_store(context=context).aliases.get(state_machine_alias_arn)
696
690
  if alias is None:
697
691
  # TODO: assemble the correct exception
698
692
  raise ValidationException()
@@ -778,9 +772,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
778
772
  return state_machine_arn.split("#")[0]
779
773
 
780
774
  @staticmethod
781
- def _get_mock_test_case(
782
- state_machine_arn: str, state_machine_name: str
783
- ) -> Optional[MockTestCase]:
775
+ def _get_mock_test_case(state_machine_arn: str, state_machine_name: str) -> MockTestCase | None:
784
776
  """Extract and load a mock test case from a state machine ARN if present."""
785
777
  parts = state_machine_arn.split("#")
786
778
  if len(parts) != 2:
@@ -813,9 +805,9 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
813
805
  base_arn = self._get_state_machine_arn(state_machine_arn)
814
806
  store = self.get_store(context=context)
815
807
 
816
- alias: Optional[Alias] = store.aliases.get(base_arn)
808
+ alias: Alias | None = store.aliases.get(base_arn)
817
809
  alias_sample_state_machine_version_arn = alias.sample() if alias is not None else None
818
- unsafe_state_machine: Optional[StateMachineInstance] = store.state_machines.get(
810
+ unsafe_state_machine: StateMachineInstance | None = store.state_machines.get(
819
811
  alias_sample_state_machine_version_arn or base_arn
820
812
  )
821
813
  if not unsafe_state_machine:
@@ -875,7 +867,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
875
867
  region_name=context.region,
876
868
  state_machine=state_machine_clone,
877
869
  state_machine_alias_arn=alias.state_machine_alias_arn if alias is not None else None,
878
- start_date=datetime.datetime.now(tz=datetime.timezone.utc),
870
+ start_date=datetime.datetime.now(tz=datetime.UTC),
879
871
  cloud_watch_logging_session=cloud_watch_logging_session,
880
872
  input_data=input_data,
881
873
  trace_header=trace_header,
@@ -901,7 +893,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
901
893
  self._validate_state_machine_arn(state_machine_arn)
902
894
 
903
895
  base_arn = self._get_state_machine_arn(state_machine_arn)
904
- unsafe_state_machine: Optional[StateMachineInstance] = self.get_store(
896
+ unsafe_state_machine: StateMachineInstance | None = self.get_store(
905
897
  context
906
898
  ).state_machines.get(base_arn)
907
899
  if not unsafe_state_machine:
@@ -950,7 +942,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
950
942
  account_id=context.account_id,
951
943
  region_name=context.region,
952
944
  state_machine=state_machine_clone,
953
- start_date=datetime.datetime.now(tz=datetime.timezone.utc),
945
+ start_date=datetime.datetime.now(tz=datetime.UTC),
954
946
  cloud_watch_logging_session=cloud_watch_logging_session,
955
947
  input_data=input_data,
956
948
  trace_header=trace_header,
@@ -980,7 +972,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
980
972
 
981
973
  @staticmethod
982
974
  def _list_execution_filter(
983
- ex: Execution, state_machine_arn: str, status_filter: Optional[str]
975
+ ex: Execution, state_machine_arn: str, status_filter: str | None
984
976
  ) -> bool:
985
977
  state_machine_reference_arn_set = {ex.state_machine_arn, ex.state_machine_version_arn}
986
978
  if state_machine_arn not in state_machine_reference_arn_set:
@@ -1275,7 +1267,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1275
1267
  if execution.sm_type != StateMachineType.STANDARD:
1276
1268
  self._raise_resource_type_not_in_context(resource_type=execution.sm_type)
1277
1269
 
1278
- stop_date = datetime.datetime.now(tz=datetime.timezone.utc)
1270
+ stop_date = datetime.datetime.now(tz=datetime.UTC)
1279
1271
  execution.stop(stop_date=stop_date, cause=cause, error=error)
1280
1272
  return StopExecutionOutput(stopDate=stop_date)
1281
1273
 
@@ -1328,9 +1320,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1328
1320
  target_revision_id = revision_id or state_machine.revision_id
1329
1321
  version_arn = state_machine.versions[target_revision_id]
1330
1322
 
1331
- update_output = UpdateStateMachineOutput(
1332
- updateDate=datetime.datetime.now(tz=datetime.timezone.utc)
1333
- )
1323
+ update_output = UpdateStateMachineOutput(updateDate=datetime.datetime.now(tz=datetime.UTC))
1334
1324
  if revision_id is not None:
1335
1325
  update_output["revisionId"] = revision_id
1336
1326
  if version_arn is not None:
@@ -1437,7 +1427,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1437
1427
  ) -> DescribeMapRunOutput:
1438
1428
  store = self.get_store(context)
1439
1429
  for execution in store.executions.values():
1440
- map_run_record: Optional[MapRunRecord] = (
1430
+ map_run_record: MapRunRecord | None = (
1441
1431
  execution.exec_worker.env.map_run_record_pool_manager.get(map_run_arn)
1442
1432
  )
1443
1433
  if map_run_record is not None:
@@ -1477,7 +1467,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1477
1467
  # TODO: investigate behaviour of empty requests.
1478
1468
  store = self.get_store(context)
1479
1469
  for execution in store.executions.values():
1480
- map_run_record: Optional[MapRunRecord] = (
1470
+ map_run_record: MapRunRecord | None = (
1481
1471
  execution.exec_worker.env.map_run_record_pool_manager.get(map_run_arn)
1482
1472
  )
1483
1473
  if map_run_record is not None:
@@ -1507,7 +1497,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1507
1497
  definition=definition, static_analysers=[TestStateStaticAnalyser()]
1508
1498
  )
1509
1499
 
1510
- name: Optional[Name] = f"TestState-{short_uid()}"
1500
+ name: Name | None = f"TestState-{short_uid()}"
1511
1501
  arn = stepfunctions_state_machine_arn(
1512
1502
  name=name, account_id=context.account_id, region_name=context.region
1513
1503
  )
@@ -1527,7 +1517,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1527
1517
  account_id=context.account_id,
1528
1518
  region_name=context.region,
1529
1519
  state_machine=state_machine,
1530
- start_date=datetime.datetime.now(tz=datetime.timezone.utc),
1520
+ start_date=datetime.datetime.now(tz=datetime.UTC),
1531
1521
  input_data=input_json,
1532
1522
  activity_store=self.get_store(context).activities,
1533
1523
  )
@@ -1591,7 +1581,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1591
1581
  self,
1592
1582
  context: RequestContext,
1593
1583
  task_token: TaskToken,
1594
- worker_name: Optional[Name],
1584
+ worker_name: Name | None,
1595
1585
  ) -> None:
1596
1586
  executions: list[Execution] = self._get_executions(context)
1597
1587
  for execution in executions:
@@ -1604,7 +1594,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1604
1594
  raise InvalidToken()
1605
1595
 
1606
1596
  @staticmethod
1607
- def _pull_activity_task(activity: Activity) -> Optional[ActivityTask]:
1597
+ def _pull_activity_task(activity: Activity) -> ActivityTask | None:
1608
1598
  seconds_left = 60
1609
1599
  while seconds_left > 0:
1610
1600
  try:
@@ -1624,7 +1614,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
1624
1614
  self._validate_activity_arn(activity_arn)
1625
1615
 
1626
1616
  activity = self._get_activity(context=context, activity_arn=activity_arn)
1627
- maybe_task: Optional[ActivityTask] = self._pull_activity_task(activity=activity)
1617
+ maybe_task: ActivityTask | None = self._pull_activity_task(activity=activity)
1628
1618
  if maybe_task is not None:
1629
1619
  self._send_activity_task_started(
1630
1620
  context, maybe_task.task_token, worker_name=worker_name
@@ -1,12 +1,11 @@
1
- import json
2
- from typing import Final, Union
1
+ from typing import Any, Final
3
2
 
4
3
  from localstack.services.stepfunctions.asl.utils.encoding import to_json_str
5
4
 
6
5
  MAX_STATE_SIZE_UTF8_BYTES: Final[int] = 256 * 1024 # 256 KB of data as a UTF-8 encoded string.
7
6
 
8
7
 
9
- def is_within_size_quota(value: Union[str, json]) -> bool:
8
+ def is_within_size_quota(value: str | Any) -> bool:
10
9
  item_str = value if isinstance(value, str) else to_json_str(value)
11
10
  item_bytes = item_str.encode("utf-8")
12
11
  len_item_bytes = len(item_bytes)
@@ -2,7 +2,7 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  from pathlib import Path
5
- from typing import Optional, TypedDict
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,14 +14,14 @@ from localstack.services.cloudformation.resource_provider import (
14
14
 
15
15
 
16
16
  class StepFunctionsActivityProperties(TypedDict):
17
- Name: Optional[str]
18
- Arn: Optional[str]
19
- Tags: Optional[list[TagsEntry]]
17
+ Name: str | None
18
+ Arn: str | None
19
+ Tags: list[TagsEntry] | None
20
20
 
21
21
 
22
22
  class TagsEntry(TypedDict):
23
- Key: Optional[str]
24
- Value: Optional[str]
23
+ Key: str | None
24
+ Value: str | None
25
25
 
26
26
 
27
27
  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 StepFunctionsActivityProviderPlugin(CloudFormationResourceProviderPlugin):
10
8
  name = "AWS::StepFunctions::Activity"
11
9
 
12
10
  def __init__(self):
13
- self.factory: Optional[Type[ResourceProvider]] = None
11
+ self.factory: type[ResourceProvider] | None = None
14
12
 
15
13
  def load(self):
16
14
  from localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity import (
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
  import json
5
5
  import re
6
6
  from pathlib import Path
7
- from typing import Optional, TypedDict
7
+ from typing import TypedDict
8
8
 
9
9
  import localstack.services.cloudformation.provider_utils as util
10
10
  from localstack.services.cloudformation.resource_provider import (
@@ -18,48 +18,48 @@ from localstack.utils.strings import to_str
18
18
 
19
19
 
20
20
  class StepFunctionsStateMachineProperties(TypedDict):
21
- RoleArn: Optional[str]
22
- Arn: Optional[str]
23
- Definition: Optional[dict]
24
- DefinitionS3Location: Optional[S3Location]
25
- DefinitionString: Optional[str]
26
- DefinitionSubstitutions: Optional[dict]
27
- LoggingConfiguration: Optional[LoggingConfiguration]
28
- Name: Optional[str]
29
- StateMachineName: Optional[str]
30
- StateMachineRevisionId: Optional[str]
31
- StateMachineType: Optional[str]
32
- Tags: Optional[list[TagsEntry]]
33
- TracingConfiguration: Optional[TracingConfiguration]
21
+ RoleArn: str | None
22
+ Arn: str | None
23
+ Definition: dict | None
24
+ DefinitionS3Location: S3Location | None
25
+ DefinitionString: str | None
26
+ DefinitionSubstitutions: dict | None
27
+ LoggingConfiguration: LoggingConfiguration | None
28
+ Name: str | None
29
+ StateMachineName: str | None
30
+ StateMachineRevisionId: str | None
31
+ StateMachineType: str | None
32
+ Tags: list[TagsEntry] | None
33
+ TracingConfiguration: TracingConfiguration | None
34
34
 
35
35
 
36
36
  class CloudWatchLogsLogGroup(TypedDict):
37
- LogGroupArn: Optional[str]
37
+ LogGroupArn: str | None
38
38
 
39
39
 
40
40
  class LogDestination(TypedDict):
41
- CloudWatchLogsLogGroup: Optional[CloudWatchLogsLogGroup]
41
+ CloudWatchLogsLogGroup: CloudWatchLogsLogGroup | None
42
42
 
43
43
 
44
44
  class LoggingConfiguration(TypedDict):
45
- Destinations: Optional[list[LogDestination]]
46
- IncludeExecutionData: Optional[bool]
47
- Level: Optional[str]
45
+ Destinations: list[LogDestination] | None
46
+ IncludeExecutionData: bool | None
47
+ Level: str | None
48
48
 
49
49
 
50
50
  class TracingConfiguration(TypedDict):
51
- Enabled: Optional[bool]
51
+ Enabled: bool | None
52
52
 
53
53
 
54
54
  class S3Location(TypedDict):
55
- Bucket: Optional[str]
56
- Key: Optional[str]
57
- Version: Optional[str]
55
+ Bucket: str | None
56
+ Key: str | None
57
+ Version: str | None
58
58
 
59
59
 
60
60
  class TagsEntry(TypedDict):
61
- Key: Optional[str]
62
- Value: Optional[str]
61
+ Key: str | None
62
+ Value: str | None
63
63
 
64
64
 
65
65
  REPEATED_INVOCATION = "repeated_invocation"