localstack-core 4.6.1.dev74__py3-none-any.whl → 4.10.1.dev7__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 (672) hide show
  1. localstack/aws/api/apigateway/__init__.py +87 -110
  2. localstack/aws/api/cloudformation/__init__.py +18 -4
  3. localstack/aws/api/cloudwatch/__init__.py +41 -1
  4. localstack/aws/api/config/__init__.py +4 -0
  5. localstack/aws/api/core.py +8 -5
  6. localstack/aws/api/dynamodb/__init__.py +30 -0
  7. localstack/aws/api/ec2/__init__.py +1524 -64
  8. localstack/aws/api/events/__init__.py +12 -16
  9. localstack/aws/api/iam/__init__.py +7 -0
  10. localstack/aws/api/kinesis/__init__.py +19 -0
  11. localstack/aws/api/kms/__init__.py +6 -0
  12. localstack/aws/api/lambda_/__init__.py +13 -0
  13. localstack/aws/api/logs/__init__.py +20 -8
  14. localstack/aws/api/opensearch/__init__.py +16 -0
  15. localstack/aws/api/pipes/__init__.py +24 -32
  16. localstack/aws/api/redshift/__init__.py +9 -3
  17. localstack/aws/api/route53/__init__.py +5 -0
  18. localstack/aws/api/s3/__init__.py +12 -0
  19. localstack/aws/api/s3control/__init__.py +56 -0
  20. localstack/aws/api/scheduler/__init__.py +14 -16
  21. localstack/aws/api/ssm/__init__.py +2 -0
  22. localstack/aws/api/stepfunctions/__init__.py +88 -114
  23. localstack/aws/api/support/__init__.py +8 -9
  24. localstack/aws/api/transcribe/__init__.py +17 -0
  25. localstack/aws/chain.py +2 -2
  26. localstack/aws/client.py +14 -11
  27. localstack/aws/connect.py +42 -41
  28. localstack/aws/forwarder.py +57 -9
  29. localstack/aws/gateway.py +1 -3
  30. localstack/aws/handlers/analytics.py +2 -3
  31. localstack/aws/handlers/cors.py +4 -5
  32. localstack/aws/handlers/internal_requests.py +6 -1
  33. localstack/aws/handlers/logging.py +13 -4
  34. localstack/aws/handlers/metric_handler.py +44 -5
  35. localstack/aws/handlers/service.py +48 -28
  36. localstack/aws/mocking.py +18 -27
  37. localstack/aws/patches.py +2 -2
  38. localstack/aws/protocol/op_router.py +11 -10
  39. localstack/aws/protocol/parser.py +475 -49
  40. localstack/aws/protocol/serializer.py +723 -106
  41. localstack/aws/protocol/service_router.py +133 -33
  42. localstack/aws/protocol/validate.py +6 -6
  43. localstack/aws/scaffold.py +9 -10
  44. localstack/aws/serving/edge.py +5 -6
  45. localstack/aws/serving/hypercorn.py +2 -2
  46. localstack/aws/serving/twisted.py +1 -2
  47. localstack/aws/serving/werkzeug.py +2 -2
  48. localstack/aws/skeleton.py +12 -11
  49. localstack/aws/spec-patches.json +58 -0
  50. localstack/aws/spec.py +66 -46
  51. localstack/cli/exceptions.py +1 -1
  52. localstack/cli/localstack.py +11 -11
  53. localstack/cli/lpm.py +4 -5
  54. localstack/cli/plugins.py +1 -1
  55. localstack/cli/profiles.py +1 -2
  56. localstack/config.py +40 -31
  57. localstack/constants.py +4 -29
  58. localstack/deprecations.py +5 -5
  59. localstack/dev/kubernetes/__main__.py +85 -5
  60. localstack/dev/run/__main__.py +5 -5
  61. localstack/dev/run/configurators.py +1 -4
  62. localstack/dev/run/paths.py +6 -6
  63. localstack/dns/models.py +2 -1
  64. localstack/dns/plugins.py +5 -1
  65. localstack/dns/server.py +16 -6
  66. localstack/http/dispatcher.py +1 -2
  67. localstack/http/response.py +2 -2
  68. localstack/http/router.py +1 -1
  69. localstack/http/trace.py +2 -1
  70. localstack/logging/format.py +6 -6
  71. localstack/packages/api.py +13 -12
  72. localstack/packages/core.py +4 -4
  73. localstack/packages/debugpy.py +1 -3
  74. localstack/packages/ffmpeg.py +1 -2
  75. localstack/packages/java.py +38 -12
  76. localstack/packages/plugins.py +0 -8
  77. localstack/runtime/analytics.py +3 -0
  78. localstack/runtime/hooks.py +1 -1
  79. localstack/runtime/init.py +8 -9
  80. localstack/runtime/main.py +5 -5
  81. localstack/runtime/patches.py +2 -2
  82. localstack/runtime/shutdown.py +2 -1
  83. localstack/services/apigateway/exporter.py +1 -2
  84. localstack/services/apigateway/helpers.py +7 -10
  85. localstack/services/apigateway/legacy/context.py +21 -21
  86. localstack/services/apigateway/legacy/helpers.py +27 -28
  87. localstack/services/apigateway/legacy/integration.py +11 -10
  88. localstack/services/apigateway/legacy/invocations.py +6 -5
  89. localstack/services/apigateway/legacy/provider.py +148 -68
  90. localstack/services/apigateway/legacy/router_asf.py +2 -2
  91. localstack/services/apigateway/legacy/templates.py +6 -6
  92. localstack/services/apigateway/models.py +16 -16
  93. localstack/services/apigateway/next_gen/execute_api/api.py +2 -2
  94. localstack/services/apigateway/next_gen/execute_api/context.py +25 -25
  95. localstack/services/apigateway/next_gen/execute_api/handlers/api_key_validation.py +2 -5
  96. localstack/services/apigateway/next_gen/execute_api/handlers/method_request.py +7 -2
  97. localstack/services/apigateway/next_gen/execute_api/handlers/parse.py +1 -2
  98. localstack/services/apigateway/next_gen/execute_api/handlers/resource_router.py +2 -3
  99. localstack/services/apigateway/next_gen/execute_api/header_utils.py +1 -1
  100. localstack/services/apigateway/next_gen/execute_api/helpers.py +2 -2
  101. localstack/services/apigateway/next_gen/execute_api/integrations/aws.py +9 -6
  102. localstack/services/apigateway/next_gen/execute_api/integrations/http.py +12 -12
  103. localstack/services/apigateway/next_gen/execute_api/router.py +31 -0
  104. localstack/services/apigateway/next_gen/execute_api/template_mapping.py +2 -2
  105. localstack/services/apigateway/next_gen/execute_api/test_invoke.py +114 -9
  106. localstack/services/apigateway/next_gen/execute_api/variables.py +63 -63
  107. localstack/services/apigateway/next_gen/provider.py +5 -0
  108. localstack/services/apigateway/resource_providers/aws_apigateway_account.py +3 -3
  109. localstack/services/apigateway/resource_providers/aws_apigateway_account_plugin.py +1 -3
  110. localstack/services/apigateway/resource_providers/aws_apigateway_apikey.py +14 -14
  111. localstack/services/apigateway/resource_providers/aws_apigateway_apikey_plugin.py +1 -3
  112. localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping.py +5 -5
  113. localstack/services/apigateway/resource_providers/aws_apigateway_basepathmapping_plugin.py +1 -3
  114. localstack/services/apigateway/resource_providers/aws_apigateway_deployment.py +46 -46
  115. localstack/services/apigateway/resource_providers/aws_apigateway_deployment_plugin.py +1 -3
  116. localstack/services/apigateway/resource_providers/aws_apigateway_domainname.py +18 -18
  117. localstack/services/apigateway/resource_providers/aws_apigateway_domainname_plugin.py +1 -3
  118. localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse.py +7 -7
  119. localstack/services/apigateway/resource_providers/aws_apigateway_gatewayresponse_plugin.py +1 -3
  120. localstack/services/apigateway/resource_providers/aws_apigateway_method.py +36 -36
  121. localstack/services/apigateway/resource_providers/aws_apigateway_method_plugin.py +1 -3
  122. localstack/services/apigateway/resource_providers/aws_apigateway_model.py +6 -6
  123. localstack/services/apigateway/resource_providers/aws_apigateway_model_plugin.py +1 -3
  124. localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator.py +6 -6
  125. localstack/services/apigateway/resource_providers/aws_apigateway_requestvalidator_plugin.py +1 -3
  126. localstack/services/apigateway/resource_providers/aws_apigateway_resource.py +6 -6
  127. localstack/services/apigateway/resource_providers/aws_apigateway_resource_plugin.py +1 -3
  128. localstack/services/apigateway/resource_providers/aws_apigateway_restapi.py +26 -26
  129. localstack/services/apigateway/resource_providers/aws_apigateway_restapi_plugin.py +1 -3
  130. localstack/services/apigateway/resource_providers/aws_apigateway_stage.py +33 -33
  131. localstack/services/apigateway/resource_providers/aws_apigateway_stage_plugin.py +1 -3
  132. localstack/services/apigateway/resource_providers/aws_apigateway_usageplan.py +18 -18
  133. localstack/services/apigateway/resource_providers/aws_apigateway_usageplan_plugin.py +1 -3
  134. localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey.py +5 -5
  135. localstack/services/apigateway/resource_providers/aws_apigateway_usageplankey_plugin.py +1 -3
  136. localstack/services/cdk/resource_providers/cdk_metadata.py +4 -3
  137. localstack/services/cdk/resource_providers/cdk_metadata_plugin.py +1 -3
  138. localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate.py +14 -14
  139. localstack/services/certificatemanager/resource_providers/aws_certificatemanager_certificate_plugin.py +1 -3
  140. localstack/services/cloudformation/api_utils.py +4 -8
  141. localstack/services/cloudformation/cfn_utils.py +2 -2
  142. localstack/services/cloudformation/deployment_utils.py +14 -12
  143. localstack/services/cloudformation/engine/changes.py +3 -3
  144. localstack/services/cloudformation/engine/entities.py +27 -17
  145. localstack/services/cloudformation/engine/parameters.py +4 -4
  146. localstack/services/cloudformation/engine/template_deployer.py +15 -14
  147. localstack/services/cloudformation/engine/template_utils.py +34 -12
  148. localstack/services/cloudformation/engine/transformers.py +11 -8
  149. localstack/services/cloudformation/engine/types.py +5 -4
  150. localstack/services/cloudformation/engine/v2/change_set_model.py +336 -39
  151. localstack/services/cloudformation/engine/v2/change_set_model_describer.py +96 -17
  152. localstack/services/cloudformation/engine/v2/change_set_model_executor.py +286 -139
  153. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +315 -146
  154. localstack/services/cloudformation/engine/v2/change_set_model_transform.py +380 -105
  155. localstack/services/cloudformation/engine/v2/change_set_model_validator.py +161 -31
  156. localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +6 -0
  157. localstack/services/cloudformation/engine/v2/resolving.py +102 -0
  158. localstack/services/cloudformation/engine/yaml_parser.py +9 -2
  159. localstack/services/cloudformation/provider.py +8 -6
  160. localstack/services/cloudformation/provider_utils.py +34 -4
  161. localstack/services/cloudformation/resource_provider.py +31 -21
  162. localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py +7 -7
  163. localstack/services/cloudformation/resource_providers/aws_cloudformation_macro_plugin.py +1 -3
  164. localstack/services/cloudformation/resource_providers/aws_cloudformation_stack.py +9 -9
  165. localstack/services/cloudformation/resource_providers/aws_cloudformation_stack_plugin.py +1 -3
  166. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition.py +6 -6
  167. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcondition_plugin.py +1 -3
  168. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle.py +2 -2
  169. localstack/services/cloudformation/resource_providers/aws_cloudformation_waitconditionhandle_plugin.py +1 -3
  170. localstack/services/cloudformation/resources.py +24149 -0
  171. localstack/services/cloudformation/scaffolding/__main__.py +13 -12
  172. localstack/services/cloudformation/scaffolding/propgen.py +2 -2
  173. localstack/services/cloudformation/service_models.py +2 -2
  174. localstack/services/cloudformation/stores.py +31 -22
  175. localstack/services/cloudformation/v2/entities.py +65 -92
  176. localstack/services/cloudformation/v2/provider.py +553 -128
  177. localstack/services/cloudformation/v2/types.py +38 -0
  178. localstack/services/cloudformation/v2/utils.py +4 -1
  179. localstack/services/cloudwatch/alarm_scheduler.py +11 -8
  180. localstack/services/cloudwatch/cloudwatch_database_helper.py +4 -5
  181. localstack/services/cloudwatch/models.py +5 -7
  182. localstack/services/cloudwatch/provider.py +30 -25
  183. localstack/services/cloudwatch/provider_v2.py +27 -32
  184. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.py +40 -40
  185. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm_plugin.py +1 -3
  186. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm.py +12 -12
  187. localstack/services/cloudwatch/resource_providers/aws_cloudwatch_compositealarm_plugin.py +1 -3
  188. localstack/services/dynamodb/packages.py +3 -3
  189. localstack/services/dynamodb/provider.py +49 -8
  190. localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable.py +63 -63
  191. localstack/services/dynamodb/resource_providers/aws_dynamodb_globaltable_plugin.py +1 -3
  192. localstack/services/dynamodb/resource_providers/aws_dynamodb_table.py +57 -57
  193. localstack/services/dynamodb/resource_providers/aws_dynamodb_table_plugin.py +1 -3
  194. localstack/services/dynamodb/server.py +2 -2
  195. localstack/services/dynamodb/utils.py +13 -14
  196. localstack/services/dynamodb/v2/provider.py +48 -7
  197. localstack/services/dynamodbstreams/dynamodbstreams_api.py +2 -2
  198. localstack/services/dynamodbstreams/models.py +1 -3
  199. localstack/services/ec2/patches.py +26 -5
  200. localstack/services/ec2/provider.py +3 -3
  201. localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions.py +10 -10
  202. localstack/services/ec2/resource_providers/aws_ec2_dhcpoptions_plugin.py +1 -3
  203. localstack/services/ec2/resource_providers/aws_ec2_instance.py +96 -96
  204. localstack/services/ec2/resource_providers/aws_ec2_instance_plugin.py +1 -3
  205. localstack/services/ec2/resource_providers/aws_ec2_internetgateway.py +5 -5
  206. localstack/services/ec2/resource_providers/aws_ec2_internetgateway_plugin.py +1 -3
  207. localstack/services/ec2/resource_providers/aws_ec2_keypair.py +10 -10
  208. localstack/services/ec2/resource_providers/aws_ec2_keypair_plugin.py +1 -3
  209. localstack/services/ec2/resource_providers/aws_ec2_natgateway.py +13 -13
  210. localstack/services/ec2/resource_providers/aws_ec2_natgateway_plugin.py +1 -3
  211. localstack/services/ec2/resource_providers/aws_ec2_networkacl.py +6 -6
  212. localstack/services/ec2/resource_providers/aws_ec2_networkacl_plugin.py +1 -3
  213. localstack/services/ec2/resource_providers/aws_ec2_prefixlist.py +14 -14
  214. localstack/services/ec2/resource_providers/aws_ec2_prefixlist_plugin.py +1 -3
  215. localstack/services/ec2/resource_providers/aws_ec2_route.py +15 -15
  216. localstack/services/ec2/resource_providers/aws_ec2_route_plugin.py +1 -3
  217. localstack/services/ec2/resource_providers/aws_ec2_routetable.py +6 -6
  218. localstack/services/ec2/resource_providers/aws_ec2_routetable_plugin.py +1 -3
  219. localstack/services/ec2/resource_providers/aws_ec2_securitygroup.py +29 -29
  220. localstack/services/ec2/resource_providers/aws_ec2_securitygroup_plugin.py +1 -3
  221. localstack/services/ec2/resource_providers/aws_ec2_subnet.py +19 -19
  222. localstack/services/ec2/resource_providers/aws_ec2_subnet_plugin.py +1 -3
  223. localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation.py +4 -4
  224. localstack/services/ec2/resource_providers/aws_ec2_subnetroutetableassociation_plugin.py +1 -3
  225. localstack/services/ec2/resource_providers/aws_ec2_transitgateway.py +16 -16
  226. localstack/services/ec2/resource_providers/aws_ec2_transitgateway_plugin.py +1 -3
  227. localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment.py +9 -9
  228. localstack/services/ec2/resource_providers/aws_ec2_transitgatewayattachment_plugin.py +1 -3
  229. localstack/services/ec2/resource_providers/aws_ec2_vpc.py +15 -15
  230. localstack/services/ec2/resource_providers/aws_ec2_vpc_plugin.py +1 -3
  231. localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint.py +29 -22
  232. localstack/services/ec2/resource_providers/aws_ec2_vpcendpoint_plugin.py +1 -3
  233. localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment.py +5 -5
  234. localstack/services/ec2/resource_providers/aws_ec2_vpcgatewayattachment_plugin.py +1 -3
  235. localstack/services/ecr/resource_providers/aws_ecr_repository.py +22 -19
  236. localstack/services/ecr/resource_providers/aws_ecr_repository_plugin.py +1 -3
  237. localstack/services/edge.py +6 -6
  238. localstack/services/es/provider.py +21 -21
  239. localstack/services/events/archive.py +2 -2
  240. localstack/services/events/connection.py +5 -5
  241. localstack/services/events/event_bus.py +9 -9
  242. localstack/services/events/event_rule_engine.py +31 -13
  243. localstack/services/events/models.py +29 -30
  244. localstack/services/events/provider.py +29 -26
  245. localstack/services/events/replay.py +3 -3
  246. localstack/services/events/resource_providers/aws_events_apidestination.py +8 -8
  247. localstack/services/events/resource_providers/aws_events_apidestination_plugin.py +1 -3
  248. localstack/services/events/resource_providers/aws_events_connection.py +27 -27
  249. localstack/services/events/resource_providers/aws_events_connection_plugin.py +1 -3
  250. localstack/services/events/resource_providers/aws_events_eventbus.py +9 -9
  251. localstack/services/events/resource_providers/aws_events_eventbus_plugin.py +1 -3
  252. localstack/services/events/resource_providers/aws_events_eventbuspolicy.py +11 -11
  253. localstack/services/events/resource_providers/aws_events_eventbuspolicy_plugin.py +1 -3
  254. localstack/services/events/resource_providers/aws_events_rule.py +82 -82
  255. localstack/services/events/resource_providers/aws_events_rule_plugin.py +1 -3
  256. localstack/services/events/rule.py +15 -15
  257. localstack/services/events/target.py +21 -13
  258. localstack/services/events/utils.py +7 -7
  259. localstack/services/events/v1/models.py +1 -3
  260. localstack/services/events/v1/provider.py +15 -15
  261. localstack/services/firehose/models.py +1 -3
  262. localstack/services/firehose/provider.py +25 -16
  263. localstack/services/iam/iam_patches.py +5 -6
  264. localstack/services/iam/provider.py +14 -119
  265. localstack/services/iam/resource_providers/aws_iam_accesskey.py +6 -6
  266. localstack/services/iam/resource_providers/aws_iam_accesskey_plugin.py +1 -3
  267. localstack/services/iam/resource_providers/aws_iam_group.py +9 -9
  268. localstack/services/iam/resource_providers/aws_iam_group_plugin.py +1 -3
  269. localstack/services/iam/resource_providers/aws_iam_instanceprofile.py +5 -5
  270. localstack/services/iam/resource_providers/aws_iam_instanceprofile_plugin.py +1 -3
  271. localstack/services/iam/resource_providers/aws_iam_managedpolicy.py +9 -9
  272. localstack/services/iam/resource_providers/aws_iam_managedpolicy_plugin.py +1 -3
  273. localstack/services/iam/resource_providers/aws_iam_policy.py +7 -7
  274. localstack/services/iam/resource_providers/aws_iam_policy_plugin.py +1 -3
  275. localstack/services/iam/resource_providers/aws_iam_role.py +16 -16
  276. localstack/services/iam/resource_providers/aws_iam_role_plugin.py +1 -3
  277. localstack/services/iam/resource_providers/aws_iam_servercertificate.py +10 -10
  278. localstack/services/iam/resource_providers/aws_iam_servercertificate_plugin.py +1 -3
  279. localstack/services/iam/resource_providers/aws_iam_servicelinkedrole.py +5 -5
  280. localstack/services/iam/resource_providers/aws_iam_servicelinkedrole_plugin.py +1 -3
  281. localstack/services/iam/resource_providers/aws_iam_user.py +17 -17
  282. localstack/services/iam/resource_providers/aws_iam_user_plugin.py +1 -3
  283. localstack/services/iam/resources/policy_simulator.py +133 -0
  284. localstack/services/kinesis/kinesis_mock_server.py +7 -8
  285. localstack/services/kinesis/models.py +17 -5
  286. localstack/services/kinesis/packages.py +3 -3
  287. localstack/services/kinesis/provider.py +86 -3
  288. localstack/services/kinesis/resource_providers/aws_kinesis_stream.py +13 -13
  289. localstack/services/kinesis/resource_providers/aws_kinesis_stream_plugin.py +1 -3
  290. localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer.py +7 -7
  291. localstack/services/kinesis/resource_providers/aws_kinesis_streamconsumer_plugin.py +1 -3
  292. localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream.py +191 -191
  293. localstack/services/kinesisfirehose/resource_providers/aws_kinesisfirehose_deliverystream_plugin.py +1 -3
  294. localstack/services/kms/models.py +21 -18
  295. localstack/services/kms/provider.py +17 -11
  296. localstack/services/kms/resource_providers/aws_kms_alias.py +3 -3
  297. localstack/services/kms/resource_providers/aws_kms_alias_plugin.py +1 -3
  298. localstack/services/kms/resource_providers/aws_kms_key.py +14 -14
  299. localstack/services/kms/resource_providers/aws_kms_key_plugin.py +1 -3
  300. localstack/services/kms/utils.py +4 -3
  301. localstack/services/lambda_/api_utils.py +19 -16
  302. localstack/services/lambda_/custom_endpoints.py +2 -2
  303. localstack/services/lambda_/event_source_mapping/esm_worker_factory.py +4 -7
  304. localstack/services/lambda_/event_source_mapping/pipe_utils.py +2 -2
  305. localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
  306. localstack/services/lambda_/event_source_mapping/senders/sender_utils.py +2 -1
  307. localstack/services/lambda_/hooks.py +6 -1
  308. localstack/services/lambda_/invocation/assignment.py +1 -2
  309. localstack/services/lambda_/invocation/docker_runtime_executor.py +7 -11
  310. localstack/services/lambda_/invocation/event_manager.py +1 -1
  311. localstack/services/lambda_/invocation/execution_environment.py +4 -4
  312. localstack/services/lambda_/invocation/executor_endpoint.py +8 -11
  313. localstack/services/lambda_/invocation/internal_sqs_queue.py +6 -10
  314. localstack/services/lambda_/invocation/lambda_models.py +33 -30
  315. localstack/services/lambda_/invocation/lambda_service.py +12 -5
  316. localstack/services/lambda_/invocation/logs.py +2 -3
  317. localstack/services/lambda_/invocation/runtime_executor.py +3 -3
  318. localstack/services/lambda_/invocation/version_manager.py +31 -8
  319. localstack/services/lambda_/ldm.py +14 -0
  320. localstack/services/lambda_/packages.py +3 -4
  321. localstack/services/lambda_/provider.py +9 -26
  322. localstack/services/lambda_/provider_utils.py +1 -1
  323. localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig.py +8 -8
  324. localstack/services/lambda_/resource_providers/aws_lambda_codesigningconfig_plugin.py +1 -3
  325. localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig.py +11 -11
  326. localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig_plugin.py +1 -3
  327. localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.py +39 -39
  328. localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping_plugin.py +1 -3
  329. localstack/services/lambda_/resource_providers/aws_lambda_function.py +54 -54
  330. localstack/services/lambda_/resource_providers/aws_lambda_function_plugin.py +1 -3
  331. localstack/services/lambda_/resource_providers/aws_lambda_layerversion.py +11 -11
  332. localstack/services/lambda_/resource_providers/aws_lambda_layerversion_plugin.py +1 -3
  333. localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission.py +6 -6
  334. localstack/services/lambda_/resource_providers/aws_lambda_layerversionpermission_plugin.py +1 -3
  335. localstack/services/lambda_/resource_providers/aws_lambda_permission.py +10 -10
  336. localstack/services/lambda_/resource_providers/aws_lambda_permission_plugin.py +1 -3
  337. localstack/services/lambda_/resource_providers/aws_lambda_url.py +15 -15
  338. localstack/services/lambda_/resource_providers/aws_lambda_url_plugin.py +1 -3
  339. localstack/services/lambda_/resource_providers/aws_lambda_version.py +8 -8
  340. localstack/services/lambda_/resource_providers/aws_lambda_version_plugin.py +1 -3
  341. localstack/services/lambda_/resource_providers/lambda_alias.py +12 -12
  342. localstack/services/lambda_/resource_providers/lambda_alias_plugin.py +1 -3
  343. localstack/services/lambda_/runtimes.py +1 -3
  344. localstack/services/lambda_/urlrouter.py +14 -1
  345. localstack/services/logs/models.py +1 -3
  346. localstack/services/logs/provider.py +4 -4
  347. localstack/services/logs/resource_providers/aws_logs_loggroup.py +9 -9
  348. localstack/services/logs/resource_providers/aws_logs_loggroup_plugin.py +1 -3
  349. localstack/services/logs/resource_providers/aws_logs_logstream.py +4 -4
  350. localstack/services/logs/resource_providers/aws_logs_logstream_plugin.py +1 -3
  351. localstack/services/logs/resource_providers/aws_logs_subscriptionfilter.py +7 -7
  352. localstack/services/logs/resource_providers/aws_logs_subscriptionfilter_plugin.py +1 -3
  353. localstack/services/moto.py +5 -4
  354. localstack/services/opensearch/cluster.py +28 -20
  355. localstack/services/opensearch/cluster_manager.py +13 -14
  356. localstack/services/opensearch/models.py +1 -3
  357. localstack/services/opensearch/packages.py +27 -9
  358. localstack/services/opensearch/provider.py +15 -10
  359. localstack/services/opensearch/resource_providers/aws_elasticsearch_domain.py +61 -61
  360. localstack/services/opensearch/resource_providers/aws_elasticsearch_domain_plugin.py +1 -3
  361. localstack/services/opensearch/resource_providers/aws_opensearchservice_domain.py +89 -89
  362. localstack/services/opensearch/resource_providers/aws_opensearchservice_domain_plugin.py +1 -3
  363. localstack/services/opensearch/versions.py +57 -10
  364. localstack/services/plugins.py +37 -32
  365. localstack/services/providers.py +10 -2
  366. localstack/services/redshift/provider.py +0 -21
  367. localstack/services/redshift/resource_providers/aws_redshift_cluster.py +57 -57
  368. localstack/services/redshift/resource_providers/aws_redshift_cluster_plugin.py +1 -3
  369. localstack/services/resource_groups/resource_providers/aws_resourcegroups_group.py +21 -21
  370. localstack/services/resource_groups/resource_providers/aws_resourcegroups_group_plugin.py +1 -3
  371. localstack/services/route53/models.py +1 -3
  372. localstack/services/route53/provider.py +1 -2
  373. localstack/services/route53/resource_providers/aws_route53_healthcheck.py +6 -6
  374. localstack/services/route53/resource_providers/aws_route53_healthcheck_plugin.py +1 -3
  375. localstack/services/route53/resource_providers/aws_route53_recordset.py +27 -27
  376. localstack/services/route53/resource_providers/aws_route53_recordset_plugin.py +1 -3
  377. localstack/services/route53resolver/models.py +8 -10
  378. localstack/services/route53resolver/provider.py +12 -12
  379. localstack/services/s3/codec.py +2 -2
  380. localstack/services/s3/constants.py +5 -2
  381. localstack/services/s3/cors.py +8 -8
  382. localstack/services/s3/models.py +73 -73
  383. localstack/services/s3/notifications.py +74 -58
  384. localstack/services/s3/presigned_url.py +41 -59
  385. localstack/services/s3/provider.py +86 -29
  386. localstack/services/s3/resource_providers/aws_s3_bucket.py +180 -180
  387. localstack/services/s3/resource_providers/aws_s3_bucket_plugin.py +1 -3
  388. localstack/services/s3/resource_providers/aws_s3_bucketpolicy.py +4 -4
  389. localstack/services/s3/resource_providers/aws_s3_bucketpolicy_plugin.py +1 -3
  390. localstack/services/s3/storage/core.py +4 -3
  391. localstack/services/s3/storage/ephemeral.py +7 -6
  392. localstack/services/s3/utils.py +51 -31
  393. localstack/services/s3/validation.py +47 -33
  394. localstack/services/s3/website_hosting.py +9 -7
  395. localstack/services/scheduler/resource_providers/aws_scheduler_schedule.py +60 -60
  396. localstack/services/scheduler/resource_providers/aws_scheduler_schedule_plugin.py +1 -3
  397. localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup.py +9 -9
  398. localstack/services/scheduler/resource_providers/aws_scheduler_schedulegroup_plugin.py +1 -3
  399. localstack/services/secretsmanager/provider.py +10 -12
  400. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy.py +5 -5
  401. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_resourcepolicy_plugin.py +1 -3
  402. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule.py +21 -21
  403. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_rotationschedule_plugin.py +1 -3
  404. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret.py +23 -23
  405. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secret_plugin.py +1 -3
  406. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment.py +5 -5
  407. localstack/services/secretsmanager/resource_providers/aws_secretsmanager_secrettargetattachment_plugin.py +1 -3
  408. localstack/services/ses/models.py +8 -1
  409. localstack/services/ses/provider.py +128 -55
  410. localstack/services/ses/resource_providers/aws_ses_emailidentity.py +21 -21
  411. localstack/services/ses/resource_providers/aws_ses_emailidentity_plugin.py +1 -3
  412. localstack/services/sns/constants.py +7 -1
  413. localstack/services/sns/executor.py +9 -2
  414. localstack/services/sns/models.py +25 -25
  415. localstack/services/sns/provider.py +9 -7
  416. localstack/services/sns/publisher.py +37 -23
  417. localstack/services/sns/resource_providers/aws_sns_subscription.py +13 -13
  418. localstack/services/sns/resource_providers/aws_sns_subscription_plugin.py +1 -3
  419. localstack/services/sns/resource_providers/aws_sns_topic.py +16 -16
  420. localstack/services/sns/resource_providers/aws_sns_topic_plugin.py +1 -3
  421. localstack/services/sns/resource_providers/aws_sns_topicpolicy.py +4 -4
  422. localstack/services/sns/resource_providers/aws_sns_topicpolicy_plugin.py +1 -3
  423. localstack/services/sns/v2/models.py +167 -0
  424. localstack/services/sns/v2/provider.py +867 -0
  425. localstack/services/sns/v2/utils.py +130 -0
  426. localstack/services/sqs/constants.py +2 -2
  427. localstack/services/sqs/developer_api.py +205 -0
  428. localstack/services/sqs/models.py +71 -36
  429. localstack/services/sqs/provider.py +56 -332
  430. localstack/services/sqs/query_api.py +8 -5
  431. localstack/services/sqs/resource_providers/aws_sqs_queue.py +21 -21
  432. localstack/services/sqs/resource_providers/aws_sqs_queue_plugin.py +1 -3
  433. localstack/services/sqs/resource_providers/aws_sqs_queuepolicy.py +4 -4
  434. localstack/services/sqs/resource_providers/aws_sqs_queuepolicy_plugin.py +1 -3
  435. localstack/services/sqs/utils.py +123 -4
  436. localstack/services/ssm/provider.py +3 -4
  437. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow.py +15 -15
  438. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindow_plugin.py +1 -3
  439. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget.py +10 -10
  440. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtarget_plugin.py +1 -3
  441. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask.py +48 -48
  442. localstack/services/ssm/resource_providers/aws_ssm_maintenancewindowtask_plugin.py +1 -3
  443. localstack/services/ssm/resource_providers/aws_ssm_parameter.py +10 -10
  444. localstack/services/ssm/resource_providers/aws_ssm_parameter_plugin.py +1 -3
  445. localstack/services/ssm/resource_providers/aws_ssm_patchbaseline.py +29 -29
  446. localstack/services/ssm/resource_providers/aws_ssm_patchbaseline_plugin.py +1 -3
  447. localstack/services/stepfunctions/asl/antlt4utils/antlr4utils.py +3 -4
  448. localstack/services/stepfunctions/asl/component/common/assign/assign_decl.py +1 -1
  449. localstack/services/stepfunctions/asl/component/common/assign/assign_decl_binding.py +1 -1
  450. localstack/services/stepfunctions/asl/component/common/assign/assign_template_value_array.py +1 -1
  451. localstack/services/stepfunctions/asl/component/common/assign/assign_template_value_object.py +1 -1
  452. localstack/services/stepfunctions/asl/component/common/catch/catcher_decl.py +9 -9
  453. localstack/services/stepfunctions/asl/component/common/error_name/custom_error_name.py +2 -2
  454. localstack/services/stepfunctions/asl/component/common/error_name/error_name.py +4 -4
  455. localstack/services/stepfunctions/asl/component/common/error_name/failure_event.py +8 -8
  456. localstack/services/stepfunctions/asl/component/common/error_name/states_error_name_type.py +1 -1
  457. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_binding.py +2 -2
  458. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_value_array.py +1 -1
  459. localstack/services/stepfunctions/asl/component/common/jsonata/jsonata_template_value_object.py +1 -1
  460. localstack/services/stepfunctions/asl/component/common/path/input_path.py +4 -4
  461. localstack/services/stepfunctions/asl/component/common/path/output_path.py +4 -4
  462. localstack/services/stepfunctions/asl/component/common/path/result_path.py +3 -3
  463. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadarr/payload_arr.py +1 -1
  464. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadbinding/payload_binding.py +3 -3
  465. localstack/services/stepfunctions/asl/component/common/payload/payloadvalue/payloadtmpl/payload_tmpl.py +1 -1
  466. localstack/services/stepfunctions/asl/component/common/retry/retrier_decl.py +8 -8
  467. localstack/services/stepfunctions/asl/component/common/string/string_expression.py +3 -3
  468. localstack/services/stepfunctions/asl/component/common/timeouts/timeout.py +3 -3
  469. localstack/services/stepfunctions/asl/component/eval_component.py +2 -3
  470. localstack/services/stepfunctions/asl/component/intrinsic/argument/argument.py +4 -4
  471. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/array/array_partition.py +1 -1
  472. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/generic/string_format.py +1 -1
  473. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/states_function_array.py +1 -1
  474. localstack/services/stepfunctions/asl/component/intrinsic/function/statesfunction/states_function_format.py +1 -1
  475. localstack/services/stepfunctions/asl/component/intrinsic/jsonata.py +3 -3
  476. localstack/services/stepfunctions/asl/component/intrinsic/member.py +1 -1
  477. localstack/services/stepfunctions/asl/component/program/program.py +9 -9
  478. localstack/services/stepfunctions/asl/component/program/states.py +1 -1
  479. localstack/services/stepfunctions/asl/component/state/state.py +10 -11
  480. localstack/services/stepfunctions/asl/component/state/state_choice/choice_rule.py +11 -11
  481. localstack/services/stepfunctions/asl/component/state/state_choice/comparison/comparison.py +5 -11
  482. localstack/services/stepfunctions/asl/component/state/state_choice/comparison/operator/implementations/is_operator.py +2 -2
  483. localstack/services/stepfunctions/asl/component/state/state_choice/state_choice.py +3 -5
  484. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +9 -9
  485. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/item_reader_decl.py +7 -7
  486. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/reader_config/reader_config_decl.py +5 -5
  487. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_eval_s3.py +2 -1
  488. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/item_reader/resource_eval/resource_output_transformer/resource_output_transformer_csv.py +2 -2
  489. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/distributed_iteration_component.py +8 -8
  490. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/inline_iteration_component.py +7 -7
  491. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/distributed_item_processor_worker.py +4 -4
  492. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/inline_item_processor_worker.py +5 -5
  493. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/itemprocessor/map_run_record.py +10 -10
  494. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_component.py +3 -3
  495. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_declaration.py +3 -3
  496. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iteration_worker.py +2 -2
  497. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/distributed_iterator_worker.py +3 -5
  498. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator.py +1 -2
  499. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/iterator/inline_iterator_worker.py +5 -5
  500. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/iteration/job.py +9 -9
  501. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/result_writer/resource_eval/resource_eval_s3.py +2 -1
  502. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +12 -13
  503. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branch_worker.py +3 -3
  504. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/branches_decl.py +7 -7
  505. localstack/services/stepfunctions/asl/component/state/state_execution/state_parallel/state_parallel.py +2 -3
  506. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +7 -7
  507. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/resource.py +3 -3
  508. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +10 -10
  509. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_api_gateway.py +18 -18
  510. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_aws_sdk.py +1 -1
  511. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_batch.py +8 -7
  512. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +18 -17
  513. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_dynamodb.py +2 -2
  514. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_ecs.py +5 -4
  515. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_events.py +4 -4
  516. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_glue.py +7 -6
  517. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_lambda.py +4 -4
  518. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sfn.py +9 -8
  519. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sns.py +2 -2
  520. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_sqs.py +4 -4
  521. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task.py +5 -5
  522. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/state_task_lambda.py +2 -2
  523. localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +3 -5
  524. localstack/services/stepfunctions/asl/component/state/state_pass/state_pass.py +5 -7
  525. localstack/services/stepfunctions/asl/component/state/state_succeed/state_succeed.py +1 -1
  526. localstack/services/stepfunctions/asl/component/state/state_wait/state_wait.py +1 -1
  527. localstack/services/stepfunctions/asl/component/state/state_wait/wait_function/timestamp.py +2 -2
  528. localstack/services/stepfunctions/asl/eval/callback/callback.py +18 -18
  529. localstack/services/stepfunctions/asl/eval/environment.py +22 -24
  530. localstack/services/stepfunctions/asl/eval/evaluation_details.py +3 -5
  531. localstack/services/stepfunctions/asl/eval/event/event_manager.py +10 -10
  532. localstack/services/stepfunctions/asl/eval/event/logging.py +3 -3
  533. localstack/services/stepfunctions/asl/eval/program_state.py +8 -8
  534. localstack/services/stepfunctions/asl/eval/states.py +12 -12
  535. localstack/services/stepfunctions/asl/eval/test_state/environment.py +3 -5
  536. localstack/services/stepfunctions/asl/eval/variable_store.py +6 -6
  537. localstack/services/stepfunctions/asl/jsonata/jsonata.py +7 -6
  538. localstack/services/stepfunctions/asl/parse/asl_parser.py +1 -1
  539. localstack/services/stepfunctions/asl/parse/intrinsic/preprocessor.py +2 -3
  540. localstack/services/stepfunctions/asl/parse/preprocessor.py +44 -44
  541. localstack/services/stepfunctions/asl/parse/typed_props.py +2 -2
  542. localstack/services/stepfunctions/asl/static_analyser/intrinsic/variable_names_intrinsic_static_analyser.py +1 -1
  543. localstack/services/stepfunctions/asl/static_analyser/variable_references_static_analyser.py +2 -2
  544. localstack/services/stepfunctions/asl/utils/encoding.py +2 -2
  545. localstack/services/stepfunctions/asl/utils/json_path.py +2 -2
  546. localstack/services/stepfunctions/backend/activity.py +4 -4
  547. localstack/services/stepfunctions/backend/alias.py +8 -8
  548. localstack/services/stepfunctions/backend/execution.py +29 -30
  549. localstack/services/stepfunctions/backend/execution_worker.py +7 -7
  550. localstack/services/stepfunctions/backend/state_machine.py +28 -28
  551. localstack/services/stepfunctions/backend/test_state/execution.py +3 -4
  552. localstack/services/stepfunctions/backend/test_state/execution_worker.py +1 -3
  553. localstack/services/stepfunctions/mocking/mock_config.py +9 -9
  554. localstack/services/stepfunctions/mocking/mock_config_file.py +10 -10
  555. localstack/services/stepfunctions/packages.py +14 -5
  556. localstack/services/stepfunctions/provider.py +34 -44
  557. localstack/services/stepfunctions/quotas.py +2 -3
  558. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity.py +6 -6
  559. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_activity_plugin.py +1 -3
  560. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine.py +25 -25
  561. localstack/services/stepfunctions/resource_providers/aws_stepfunctions_statemachine_plugin.py +1 -3
  562. localstack/services/stepfunctions/stepfunctions_utils.py +1 -2
  563. localstack/services/stores.py +8 -8
  564. localstack/services/transcribe/packages.py +1 -3
  565. localstack/services/transcribe/provider.py +8 -3
  566. localstack/state/codecs.py +61 -0
  567. localstack/state/core.py +11 -5
  568. localstack/state/inspect.py +4 -4
  569. localstack/state/pickle.py +22 -60
  570. localstack/testing/aws/asf_utils.py +3 -2
  571. localstack/testing/aws/cloudformation_utils.py +1 -1
  572. localstack/testing/aws/lambda_utils.py +15 -14
  573. localstack/testing/aws/util.py +3 -2
  574. localstack/testing/pytest/cloudformation/fixtures.py +68 -18
  575. localstack/testing/pytest/container.py +5 -5
  576. localstack/testing/pytest/filters.py +1 -3
  577. localstack/testing/pytest/fixtures.py +188 -55
  578. localstack/testing/pytest/in_memory_localstack.py +1 -3
  579. localstack/testing/pytest/marking.py +42 -15
  580. localstack/testing/pytest/path_filter.py +1 -1
  581. localstack/testing/pytest/stepfunctions/fixtures.py +4 -4
  582. localstack/testing/pytest/stepfunctions/utils.py +11 -10
  583. localstack/testing/pytest/util.py +1 -1
  584. localstack/testing/pytest/validation_tracking.py +3 -4
  585. localstack/testing/scenario/provisioning.py +11 -10
  586. localstack/testing/snapshots/transformer_utility.py +8 -3
  587. localstack/testing/testselection/matching.py +2 -2
  588. localstack/testing/testselection/opt_out.py +1 -1
  589. localstack/testing/testselection/scripts/filter_by_test_selection.py +1 -1
  590. localstack/testing/testselection/scripts/generate_test_selection.py +1 -1
  591. localstack/testing/testselection/testselection.py +2 -2
  592. localstack/utils/analytics/cli.py +2 -3
  593. localstack/utils/analytics/client.py +5 -5
  594. localstack/utils/analytics/events.py +2 -2
  595. localstack/utils/analytics/metadata.py +6 -4
  596. localstack/utils/analytics/metrics/counter.py +11 -18
  597. localstack/utils/analytics/metrics/registry.py +2 -2
  598. localstack/utils/analytics/publisher.py +4 -5
  599. localstack/utils/analytics/service_providers.py +19 -0
  600. localstack/utils/analytics/service_request_aggregator.py +4 -4
  601. localstack/utils/archives.py +12 -12
  602. localstack/utils/asyncio.py +2 -2
  603. localstack/utils/aws/arns.py +26 -31
  604. localstack/utils/aws/aws_responses.py +21 -28
  605. localstack/utils/aws/aws_stack.py +7 -12
  606. localstack/utils/aws/dead_letter_queue.py +4 -9
  607. localstack/utils/aws/message_forwarding.py +8 -11
  608. localstack/utils/aws/request_context.py +5 -6
  609. localstack/utils/aws/resources.py +1 -1
  610. localstack/utils/aws/templating.py +4 -4
  611. localstack/utils/batch_policy.py +4 -4
  612. localstack/utils/bootstrap.py +37 -30
  613. localstack/utils/catalog/catalog.py +139 -0
  614. localstack/utils/catalog/catalog_loader.py +11 -0
  615. localstack/utils/catalog/common.py +58 -0
  616. localstack/utils/catalog/plugins.py +28 -0
  617. localstack/utils/cloudwatch/cloudwatch_util.py +5 -5
  618. localstack/utils/collections.py +33 -27
  619. localstack/utils/config_listener.py +2 -2
  620. localstack/utils/container_networking.py +5 -6
  621. localstack/utils/container_utils/container_client.py +156 -160
  622. localstack/utils/container_utils/docker_cmd_client.py +97 -81
  623. localstack/utils/container_utils/docker_sdk_client.py +75 -72
  624. localstack/utils/crypto.py +12 -13
  625. localstack/utils/diagnose.py +11 -12
  626. localstack/utils/docker_utils.py +11 -7
  627. localstack/utils/files.py +34 -15
  628. localstack/utils/functions.py +5 -4
  629. localstack/utils/http.py +14 -14
  630. localstack/utils/iputils.py +2 -1
  631. localstack/utils/json.py +21 -7
  632. localstack/utils/kinesis/kinesis_connector.py +2 -1
  633. localstack/utils/net.py +25 -17
  634. localstack/utils/no_exit_argument_parser.py +2 -2
  635. localstack/utils/numbers.py +9 -2
  636. localstack/utils/objects.py +15 -14
  637. localstack/utils/patch.py +14 -7
  638. localstack/utils/platform.py +2 -2
  639. localstack/utils/run.py +15 -14
  640. localstack/utils/scheduler.py +13 -12
  641. localstack/utils/server/tcp_proxy.py +2 -2
  642. localstack/utils/serving.py +3 -4
  643. localstack/utils/strings.py +15 -16
  644. localstack/utils/sync.py +126 -1
  645. localstack/utils/tagging.py +10 -8
  646. localstack/utils/testutil.py +17 -17
  647. localstack/utils/threads.py +3 -3
  648. localstack/utils/time.py +12 -4
  649. localstack/utils/urls.py +1 -3
  650. localstack/utils/xml.py +1 -1
  651. localstack/utils/xray/traceid.py +1 -1
  652. localstack/version.py +16 -3
  653. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/METADATA +18 -14
  654. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/RECORD +663 -656
  655. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/entry_points.txt +8 -4
  656. localstack_core-4.10.1.dev7.dist-info/plux.json +1 -0
  657. localstack/packages/terraform.py +0 -47
  658. localstack/services/cloudformation/deploy.html +0 -144
  659. localstack/services/cloudformation/deploy_ui.py +0 -47
  660. localstack/services/cloudformation/plugins.py +0 -12
  661. localstack/services/lambda_/lambda_debug_mode/ldm.py +0 -375
  662. localstack/services/lambda_/lambda_debug_mode/ldm_config_file.py +0 -178
  663. localstack/services/lambda_/lambda_debug_mode/ldm_types.py +0 -11
  664. localstack/services/lambda_/lambda_debug_mode/ldm_utils.py +0 -43
  665. localstack_core-4.6.1.dev74.dist-info/plux.json +0 -1
  666. /localstack/{services/lambda_/lambda_debug_mode/__init__.py → testing/pytest/cloudformation/transformers.py} +0 -0
  667. {localstack_core-4.6.1.dev74.data → localstack_core-4.10.1.dev7.data}/scripts/localstack +0 -0
  668. {localstack_core-4.6.1.dev74.data → localstack_core-4.10.1.dev7.data}/scripts/localstack-supervisor +0 -0
  669. {localstack_core-4.6.1.dev74.data → localstack_core-4.10.1.dev7.data}/scripts/localstack.bat +0 -0
  670. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/WHEEL +0 -0
  671. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/licenses/LICENSE.txt +0 -0
  672. {localstack_core-4.6.1.dev74.dist-info → localstack_core-4.10.1.dev7.dist-info}/top_level.txt +0 -0
@@ -893,23 +893,19 @@ class DisableRuleRequest(ServiceRequest):
893
893
  EventBusName: Optional[EventBusNameOrArn]
894
894
 
895
895
 
896
- PlacementStrategy = TypedDict(
897
- "PlacementStrategy",
898
- {
899
- "type": Optional[PlacementStrategyType],
900
- "field": Optional[PlacementStrategyField],
901
- },
902
- total=False,
903
- )
896
+ class PlacementStrategy(TypedDict, total=False):
897
+ type: Optional[PlacementStrategyType]
898
+ field: Optional[PlacementStrategyField]
899
+
900
+
904
901
  PlacementStrategies = List[PlacementStrategy]
905
- PlacementConstraint = TypedDict(
906
- "PlacementConstraint",
907
- {
908
- "type": Optional[PlacementConstraintType],
909
- "expression": Optional[PlacementConstraintExpression],
910
- },
911
- total=False,
912
- )
902
+
903
+
904
+ class PlacementConstraint(TypedDict, total=False):
905
+ type: Optional[PlacementConstraintType]
906
+ expression: Optional[PlacementConstraintExpression]
907
+
908
+
913
909
  PlacementConstraints = List[PlacementConstraint]
914
910
 
915
911
 
@@ -276,6 +276,13 @@ class summaryKeyType(StrEnum):
276
276
  PolicyVersionsInUseQuota = "PolicyVersionsInUseQuota"
277
277
  VersionsPerPolicyQuota = "VersionsPerPolicyQuota"
278
278
  GlobalEndpointTokenVersion = "GlobalEndpointTokenVersion"
279
+ AssumeRolePolicySizeQuota = "AssumeRolePolicySizeQuota"
280
+ InstanceProfiles = "InstanceProfiles"
281
+ InstanceProfilesQuota = "InstanceProfilesQuota"
282
+ Providers = "Providers"
283
+ RolePolicySizeQuota = "RolePolicySizeQuota"
284
+ Roles = "Roles"
285
+ RolesQuota = "RolesQuota"
279
286
 
280
287
 
281
288
  class AccountNotManagementOrDelegatedAdministratorException(ServiceException):
@@ -18,6 +18,7 @@ ListShardsInputLimit = int
18
18
  ListStreamConsumersInputLimit = int
19
19
  ListStreamsInputLimit = int
20
20
  ListTagsForStreamInputLimit = int
21
+ MaxRecordSizeInKiB = int
21
22
  NextToken = str
22
23
  OnDemandStreamCountLimitObject = int
23
24
  OnDemandStreamCountObject = int
@@ -241,6 +242,7 @@ class CreateStreamInput(ServiceRequest):
241
242
  ShardCount: Optional[PositiveIntegerObject]
242
243
  StreamModeDetails: Optional[StreamModeDetails]
243
244
  Tags: Optional[TagMap]
245
+ MaxRecordSizeInKiB: Optional[MaxRecordSizeInKiB]
244
246
 
245
247
 
246
248
  Data = bytes
@@ -357,6 +359,7 @@ class StreamDescriptionSummary(TypedDict, total=False):
357
359
  KeyId: Optional[KeyId]
358
360
  OpenShardCount: ShardCountObject
359
361
  ConsumerCount: Optional[ConsumerCountObject]
362
+ MaxRecordSizeInKiB: Optional[MaxRecordSizeInKiB]
360
363
 
361
364
 
362
365
  class DescribeStreamSummaryOutput(TypedDict, total=False):
@@ -666,6 +669,11 @@ class UntagResourceInput(ServiceRequest):
666
669
  ResourceARN: ResourceARN
667
670
 
668
671
 
672
+ class UpdateMaxRecordSizeInput(ServiceRequest):
673
+ StreamARN: Optional[StreamARN]
674
+ MaxRecordSizeInKiB: MaxRecordSizeInKiB
675
+
676
+
669
677
  class UpdateShardCountInput(ServiceRequest):
670
678
  StreamName: Optional[StreamName]
671
679
  TargetShardCount: PositiveIntegerObject
@@ -708,6 +716,7 @@ class KinesisApi:
708
716
  shard_count: PositiveIntegerObject | None = None,
709
717
  stream_mode_details: StreamModeDetails | None = None,
710
718
  tags: TagMap | None = None,
719
+ max_record_size_in_ki_b: MaxRecordSizeInKiB | None = None,
711
720
  **kwargs,
712
721
  ) -> None:
713
722
  raise NotImplementedError
@@ -1032,6 +1041,16 @@ class KinesisApi:
1032
1041
  ) -> None:
1033
1042
  raise NotImplementedError
1034
1043
 
1044
+ @handler("UpdateMaxRecordSize")
1045
+ def update_max_record_size(
1046
+ self,
1047
+ context: RequestContext,
1048
+ max_record_size_in_ki_b: MaxRecordSizeInKiB,
1049
+ stream_arn: StreamARN | None = None,
1050
+ **kwargs,
1051
+ ) -> None:
1052
+ raise NotImplementedError
1053
+
1035
1054
  @handler("UpdateShardCount")
1036
1055
  def update_shard_count(
1037
1056
  self,
@@ -5,6 +5,7 @@ from typing import Dict, List, Optional, TypedDict
5
5
  from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
6
6
 
7
7
  AWSAccountIdType = str
8
+ AccountIdType = str
8
9
  AliasNameType = str
9
10
  ArnType = str
10
11
  BackingKeyIdResponseType = str
@@ -621,6 +622,7 @@ class CreateCustomKeyStoreRequest(ServiceRequest):
621
622
  XksProxyUriEndpoint: Optional[XksProxyUriEndpointType]
622
623
  XksProxyUriPath: Optional[XksProxyUriPathType]
623
624
  XksProxyVpcEndpointServiceName: Optional[XksProxyVpcEndpointServiceNameType]
625
+ XksProxyVpcEndpointServiceOwner: Optional[AccountIdType]
624
626
  XksProxyAuthenticationCredential: Optional[XksProxyAuthenticationCredentialType]
625
627
  XksProxyConnectivity: Optional[XksProxyConnectivityType]
626
628
 
@@ -744,6 +746,7 @@ class XksProxyConfigurationType(TypedDict, total=False):
744
746
  UriEndpoint: Optional[XksProxyUriEndpointType]
745
747
  UriPath: Optional[XksProxyUriPathType]
746
748
  VpcEndpointServiceName: Optional[XksProxyVpcEndpointServiceNameType]
749
+ VpcEndpointServiceOwner: Optional[AccountIdType]
747
750
 
748
751
 
749
752
  class CustomKeyStoresListEntry(TypedDict, total=False):
@@ -1290,6 +1293,7 @@ class UpdateCustomKeyStoreRequest(ServiceRequest):
1290
1293
  XksProxyUriEndpoint: Optional[XksProxyUriEndpointType]
1291
1294
  XksProxyUriPath: Optional[XksProxyUriPathType]
1292
1295
  XksProxyVpcEndpointServiceName: Optional[XksProxyVpcEndpointServiceNameType]
1296
+ XksProxyVpcEndpointServiceOwner: Optional[AccountIdType]
1293
1297
  XksProxyAuthenticationCredential: Optional[XksProxyAuthenticationCredentialType]
1294
1298
  XksProxyConnectivity: Optional[XksProxyConnectivityType]
1295
1299
 
@@ -1373,6 +1377,7 @@ class KmsApi:
1373
1377
  xks_proxy_uri_endpoint: XksProxyUriEndpointType | None = None,
1374
1378
  xks_proxy_uri_path: XksProxyUriPathType | None = None,
1375
1379
  xks_proxy_vpc_endpoint_service_name: XksProxyVpcEndpointServiceNameType | None = None,
1380
+ xks_proxy_vpc_endpoint_service_owner: AccountIdType | None = None,
1376
1381
  xks_proxy_authentication_credential: XksProxyAuthenticationCredentialType | None = None,
1377
1382
  xks_proxy_connectivity: XksProxyConnectivityType | None = None,
1378
1383
  **kwargs,
@@ -1864,6 +1869,7 @@ class KmsApi:
1864
1869
  xks_proxy_uri_endpoint: XksProxyUriEndpointType | None = None,
1865
1870
  xks_proxy_uri_path: XksProxyUriPathType | None = None,
1866
1871
  xks_proxy_vpc_endpoint_service_name: XksProxyVpcEndpointServiceNameType | None = None,
1872
+ xks_proxy_vpc_endpoint_service_owner: AccountIdType | None = None,
1867
1873
  xks_proxy_authentication_credential: XksProxyAuthenticationCredentialType | None = None,
1868
1874
  xks_proxy_connectivity: XksProxyConnectivityType | None = None,
1869
1875
  **kwargs,
@@ -36,6 +36,7 @@ Handler = str
36
36
  Header = str
37
37
  HttpStatus = int
38
38
  Integer = int
39
+ InvokedViaFunctionUrl = bool
39
40
  KMSKeyArn = str
40
41
  LastUpdateStatusReason = str
41
42
  LayerArn = str
@@ -286,6 +287,9 @@ class Runtime(StrEnum):
286
287
  java21 = "java21"
287
288
  python3_13 = "python3.13"
288
289
  nodejs22_x = "nodejs22.x"
290
+ java25 = "java25"
291
+ nodejs24_x = "nodejs24.x"
292
+ python3_14 = "python3.14"
289
293
 
290
294
 
291
295
  class SchemaRegistryEventRecordFormat(StrEnum):
@@ -594,6 +598,13 @@ class ResourceNotReadyException(ServiceException):
594
598
  Type: Optional[String]
595
599
 
596
600
 
601
+ class SerializedRequestEntityTooLargeException(ServiceException):
602
+ code: str = "SerializedRequestEntityTooLargeException"
603
+ sender_fault: bool = True
604
+ status_code: int = 413
605
+ Type: Optional[String]
606
+
607
+
597
608
  class ServiceException(ServiceException):
598
609
  code: str = "ServiceException"
599
610
  sender_fault: bool = False
@@ -691,6 +702,7 @@ class AddPermissionRequest(ServiceRequest):
691
702
  RevisionId: Optional[String]
692
703
  PrincipalOrgID: Optional[PrincipalOrgID]
693
704
  FunctionUrlAuthType: Optional[FunctionUrlAuthType]
705
+ InvokedViaFunctionUrl: Optional[InvokedViaFunctionUrl]
694
706
 
695
707
 
696
708
  class AddPermissionResponse(TypedDict, total=False):
@@ -1903,6 +1915,7 @@ class LambdaApi:
1903
1915
  revision_id: String | None = None,
1904
1916
  principal_org_id: PrincipalOrgID | None = None,
1905
1917
  function_url_auth_type: FunctionUrlAuthType | None = None,
1918
+ invoked_via_function_url: InvokedViaFunctionUrl | None = None,
1906
1919
  **kwargs,
1907
1920
  ) -> AddPermissionResponse:
1908
1921
  raise NotImplementedError
@@ -57,6 +57,7 @@ Field = str
57
57
  FieldDelimiter = str
58
58
  FieldHeader = str
59
59
  FieldIndexName = str
60
+ FieldSelectionCriteria = str
60
61
  FilterCount = int
61
62
  FilterName = str
62
63
  FilterPattern = str
@@ -137,6 +138,7 @@ SplitStringDelimiter = str
137
138
  StartFromHead = bool
138
139
  StatsValue = float
139
140
  Success = bool
141
+ SystemField = str
140
142
  TagKey = str
141
143
  TagValue = str
142
144
  Target = str
@@ -1139,6 +1141,7 @@ class DescribeMetricFiltersRequest(ServiceRequest):
1139
1141
  metricNamespace: Optional[MetricNamespace]
1140
1142
 
1141
1143
 
1144
+ EmitSystemFields = List[SystemField]
1142
1145
  Dimensions = Dict[DimensionsKey, DimensionsValue]
1143
1146
 
1144
1147
 
@@ -1161,6 +1164,8 @@ class MetricFilter(TypedDict, total=False):
1161
1164
  creationTime: Optional[Timestamp]
1162
1165
  logGroupName: Optional[LogGroupName]
1163
1166
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
1167
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
1168
+ emitSystemFieldDimensions: Optional[EmitSystemFields]
1164
1169
 
1165
1170
 
1166
1171
  MetricFilters = List[MetricFilter]
@@ -1263,6 +1268,8 @@ class SubscriptionFilter(TypedDict, total=False):
1263
1268
  distribution: Optional[Distribution]
1264
1269
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
1265
1270
  creationTime: Optional[Timestamp]
1271
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
1272
+ emitSystemFields: Optional[EmitSystemFields]
1266
1273
 
1267
1274
 
1268
1275
  SubscriptionFilters = List[SubscriptionFilter]
@@ -1585,14 +1592,11 @@ class UpperCaseString(TypedDict, total=False):
1585
1592
  withKeys: UpperCaseStringWithKeys
1586
1593
 
1587
1594
 
1588
- TypeConverterEntry = TypedDict(
1589
- "TypeConverterEntry",
1590
- {
1591
- "key": Key,
1592
- "type": Type,
1593
- },
1594
- total=False,
1595
- )
1595
+ class TypeConverterEntry(TypedDict, total=False):
1596
+ key: Key
1597
+ type: Type
1598
+
1599
+
1596
1600
  TypeConverterEntries = List[TypeConverterEntry]
1597
1601
 
1598
1602
 
@@ -2035,6 +2039,8 @@ class PutMetricFilterRequest(ServiceRequest):
2035
2039
  filterPattern: FilterPattern
2036
2040
  metricTransformations: MetricTransformations
2037
2041
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
2042
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
2043
+ emitSystemFieldDimensions: Optional[EmitSystemFields]
2038
2044
 
2039
2045
 
2040
2046
  class PutQueryDefinitionRequest(ServiceRequest):
@@ -2075,6 +2081,8 @@ class PutSubscriptionFilterRequest(ServiceRequest):
2075
2081
  roleArn: Optional[RoleArn]
2076
2082
  distribution: Optional[Distribution]
2077
2083
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
2084
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
2085
+ emitSystemFields: Optional[EmitSystemFields]
2078
2086
 
2079
2087
 
2080
2088
  class PutTransformerRequest(ServiceRequest):
@@ -2932,6 +2940,8 @@ class LogsApi:
2932
2940
  filter_pattern: FilterPattern,
2933
2941
  metric_transformations: MetricTransformations,
2934
2942
  apply_on_transformed_logs: ApplyOnTransformedLogs | None = None,
2943
+ field_selection_criteria: FieldSelectionCriteria | None = None,
2944
+ emit_system_field_dimensions: EmitSystemFields | None = None,
2935
2945
  **kwargs,
2936
2946
  ) -> None:
2937
2947
  raise NotImplementedError
@@ -2983,6 +2993,8 @@ class LogsApi:
2983
2993
  role_arn: RoleArn | None = None,
2984
2994
  distribution: Distribution | None = None,
2985
2995
  apply_on_transformed_logs: ApplyOnTransformedLogs | None = None,
2996
+ field_selection_criteria: FieldSelectionCriteria | None = None,
2997
+ emit_system_fields: EmitSystemFields | None = None,
2986
2998
  **kwargs,
2987
2999
  ) -> None:
2988
3000
  raise NotImplementedError
@@ -39,6 +39,8 @@ ErrorMessage = str
39
39
  ErrorType = str
40
40
  GUID = str
41
41
  HostedZoneId = str
42
+ IAMFederationRolesKey = str
43
+ IAMFederationSubjectKey = str
42
44
  Id = str
43
45
  IdentityCenterApplicationARN = str
44
46
  IdentityCenterInstanceARN = str
@@ -836,6 +838,12 @@ class AdvancedOptionsStatus(TypedDict, total=False):
836
838
  DisableTimestamp = datetime
837
839
 
838
840
 
841
+ class IAMFederationOptionsOutput(TypedDict, total=False):
842
+ Enabled: Optional[Boolean]
843
+ SubjectKey: Optional[IAMFederationSubjectKey]
844
+ RolesKey: Optional[IAMFederationRolesKey]
845
+
846
+
839
847
  class JWTOptionsOutput(TypedDict, total=False):
840
848
  Enabled: Optional[Boolean]
841
849
  SubjectKey: Optional[String]
@@ -861,10 +869,17 @@ class AdvancedSecurityOptions(TypedDict, total=False):
861
869
  InternalUserDatabaseEnabled: Optional[Boolean]
862
870
  SAMLOptions: Optional[SAMLOptionsOutput]
863
871
  JWTOptions: Optional[JWTOptionsOutput]
872
+ IAMFederationOptions: Optional[IAMFederationOptionsOutput]
864
873
  AnonymousAuthDisableDate: Optional[DisableTimestamp]
865
874
  AnonymousAuthEnabled: Optional[Boolean]
866
875
 
867
876
 
877
+ class IAMFederationOptionsInput(TypedDict, total=False):
878
+ Enabled: Optional[Boolean]
879
+ SubjectKey: Optional[IAMFederationSubjectKey]
880
+ RolesKey: Optional[IAMFederationRolesKey]
881
+
882
+
868
883
  class JWTOptionsInput(TypedDict, total=False):
869
884
  Enabled: Optional[Boolean]
870
885
  SubjectKey: Optional[SubjectKey]
@@ -894,6 +909,7 @@ class AdvancedSecurityOptionsInput(TypedDict, total=False):
894
909
  MasterUserOptions: Optional[MasterUserOptions]
895
910
  SAMLOptions: Optional[SAMLOptionsInput]
896
911
  JWTOptions: Optional[JWTOptionsInput]
912
+ IAMFederationOptions: Optional[IAMFederationOptionsInput]
897
913
  AnonymousAuthEnabled: Optional[Boolean]
898
914
 
899
915
 
@@ -511,23 +511,19 @@ class EcsEphemeralStorage(TypedDict, total=False):
511
511
  sizeInGiB: EphemeralStorageSize
512
512
 
513
513
 
514
- EcsResourceRequirement = TypedDict(
515
- "EcsResourceRequirement",
516
- {
517
- "type": EcsResourceRequirementType,
518
- "value": String,
519
- },
520
- total=False,
521
- )
514
+ class EcsResourceRequirement(TypedDict, total=False):
515
+ type: EcsResourceRequirementType
516
+ value: String
517
+
518
+
522
519
  EcsResourceRequirementsList = List[EcsResourceRequirement]
523
- EcsEnvironmentFile = TypedDict(
524
- "EcsEnvironmentFile",
525
- {
526
- "type": EcsEnvironmentFileType,
527
- "value": String,
528
- },
529
- total=False,
530
- )
520
+
521
+
522
+ class EcsEnvironmentFile(TypedDict, total=False):
523
+ type: EcsEnvironmentFileType
524
+ value: String
525
+
526
+
531
527
  EcsEnvironmentFileList = List[EcsEnvironmentFile]
532
528
 
533
529
 
@@ -563,23 +559,19 @@ class EcsTaskOverride(TypedDict, total=False):
563
559
  TaskRoleArn: Optional[ArnOrJsonPath]
564
560
 
565
561
 
566
- PlacementStrategy = TypedDict(
567
- "PlacementStrategy",
568
- {
569
- "type": Optional[PlacementStrategyType],
570
- "field": Optional[PlacementStrategyField],
571
- },
572
- total=False,
573
- )
562
+ class PlacementStrategy(TypedDict, total=False):
563
+ type: Optional[PlacementStrategyType]
564
+ field: Optional[PlacementStrategyField]
565
+
566
+
574
567
  PlacementStrategies = List[PlacementStrategy]
575
- PlacementConstraint = TypedDict(
576
- "PlacementConstraint",
577
- {
578
- "type": Optional[PlacementConstraintType],
579
- "expression": Optional[PlacementConstraintExpression],
580
- },
581
- total=False,
582
- )
568
+
569
+
570
+ class PlacementConstraint(TypedDict, total=False):
571
+ type: Optional[PlacementConstraintType]
572
+ expression: Optional[PlacementConstraintExpression]
573
+
574
+
583
575
  PlacementConstraints = List[PlacementConstraint]
584
576
 
585
577
 
@@ -1985,6 +1985,9 @@ class CreateIntegrationMessage(ServiceRequest):
1985
1985
  Description: Optional[IntegrationDescription]
1986
1986
 
1987
1987
 
1988
+ TagKeyList = List[String]
1989
+
1990
+
1988
1991
  class ReadWriteAccess(TypedDict, total=False):
1989
1992
  Authorization: ServiceAuthorization
1990
1993
 
@@ -2023,6 +2026,8 @@ class CreateRedshiftIdcApplicationMessage(ServiceRequest):
2023
2026
  IamRoleArn: String
2024
2027
  AuthorizedTokenIssuerList: Optional[AuthorizedTokenIssuerList]
2025
2028
  ServiceIntegrations: Optional[ServiceIntegrationList]
2029
+ Tags: Optional[TagList]
2030
+ SsoTagKeys: Optional[TagKeyList]
2026
2031
 
2027
2032
 
2028
2033
  class RedshiftIdcApplication(TypedDict, total=False):
@@ -2036,6 +2041,8 @@ class RedshiftIdcApplication(TypedDict, total=False):
2036
2041
  IdcOnboardStatus: Optional[String]
2037
2042
  AuthorizedTokenIssuerList: Optional[AuthorizedTokenIssuerList]
2038
2043
  ServiceIntegrations: Optional[ServiceIntegrationList]
2044
+ Tags: Optional[TagList]
2045
+ SsoTagKeys: Optional[TagKeyList]
2039
2046
 
2040
2047
 
2041
2048
  class CreateRedshiftIdcApplicationResult(TypedDict, total=False):
@@ -2247,9 +2254,6 @@ class DeleteSnapshotScheduleMessage(ServiceRequest):
2247
2254
  ScheduleIdentifier: String
2248
2255
 
2249
2256
 
2250
- TagKeyList = List[String]
2251
-
2252
-
2253
2257
  class DeleteTagsMessage(ServiceRequest):
2254
2258
  ResourceName: String
2255
2259
  TagKeys: TagKeyList
@@ -3914,6 +3918,8 @@ class RedshiftApi:
3914
3918
  identity_namespace: IdentityNamespaceString | None = None,
3915
3919
  authorized_token_issuer_list: AuthorizedTokenIssuerList | None = None,
3916
3920
  service_integrations: ServiceIntegrationList | None = None,
3921
+ tags: TagList | None = None,
3922
+ sso_tag_keys: TagKeyList | None = None,
3917
3923
  **kwargs,
3918
3924
  ) -> CreateRedshiftIdcApplicationResult:
3919
3925
  raise NotImplementedError
@@ -166,6 +166,8 @@ class CloudWatchRegion(StrEnum):
166
166
  ap_southeast_7 = "ap-southeast-7"
167
167
  ap_east_2 = "ap-east-2"
168
168
  eu_isoe_west_1 = "eu-isoe-west-1"
169
+ ap_southeast_6 = "ap-southeast-6"
170
+ us_isob_west_1 = "us-isob-west-1"
169
171
 
170
172
 
171
173
  class ComparisonOperator(StrEnum):
@@ -282,6 +284,7 @@ class ResourceRecordSetRegion(StrEnum):
282
284
  us_gov_east_1 = "us-gov-east-1"
283
285
  us_gov_west_1 = "us-gov-west-1"
284
286
  ap_east_2 = "ap-east-2"
287
+ ap_southeast_6 = "ap-southeast-6"
285
288
 
286
289
 
287
290
  class ReusableDelegationSetLimitType(StrEnum):
@@ -345,6 +348,8 @@ class VPCRegion(StrEnum):
345
348
  ap_southeast_7 = "ap-southeast-7"
346
349
  ap_east_2 = "ap-east-2"
347
350
  eu_isoe_west_1 = "eu-isoe-west-1"
351
+ ap_southeast_6 = "ap-southeast-6"
352
+ us_isob_west_1 = "us-isob-west-1"
348
353
 
349
354
 
350
355
  class CidrBlockInUseException(ServiceException):
@@ -1061,6 +1061,14 @@ class BadDigest(ServiceException):
1061
1061
  CalculatedDigest: Optional[ContentMD5]
1062
1062
 
1063
1063
 
1064
+ class AuthorizationHeaderMalformed(ServiceException):
1065
+ code: str = "AuthorizationHeaderMalformed"
1066
+ sender_fault: bool = False
1067
+ status_code: int = 400
1068
+ Region: Optional[BucketRegion]
1069
+ HostId: Optional[HostId]
1070
+
1071
+
1064
1072
  AbortDate = datetime
1065
1073
 
1066
1074
 
@@ -1477,6 +1485,8 @@ class CopyObjectRequest(ServiceRequest):
1477
1485
  GrantRead: Optional[GrantRead]
1478
1486
  GrantReadACP: Optional[GrantReadACP]
1479
1487
  GrantWriteACP: Optional[GrantWriteACP]
1488
+ IfMatch: Optional[IfMatch]
1489
+ IfNoneMatch: Optional[IfNoneMatch]
1480
1490
  Key: ObjectKey
1481
1491
  Metadata: Optional[Metadata]
1482
1492
  MetadataDirective: Optional[MetadataDirective]
@@ -3832,6 +3842,8 @@ class S3Api:
3832
3842
  grant_read: GrantRead | None = None,
3833
3843
  grant_read_acp: GrantReadACP | None = None,
3834
3844
  grant_write_acp: GrantWriteACP | None = None,
3845
+ if_match: IfMatch | None = None,
3846
+ if_none_match: IfNoneMatch | None = None,
3835
3847
  metadata: Metadata | None = None,
3836
3848
  metadata_directive: MetadataDirective | None = None,
3837
3849
  tagging_directive: TaggingDirective | None = None,
@@ -65,6 +65,7 @@ MultiRegionAccessPointClientToken = str
65
65
  MultiRegionAccessPointId = str
66
66
  MultiRegionAccessPointName = str
67
67
  NoSuchPublicAccessBlockConfigurationMessage = str
68
+ NonEmptyKmsKeyArnString = str
68
69
  NonEmptyMaxLength1024String = str
69
70
  NonEmptyMaxLength2048String = str
70
71
  NonEmptyMaxLength256String = str
@@ -147,6 +148,20 @@ class BucketVersioningStatus(StrEnum):
147
148
  Suspended = "Suspended"
148
149
 
149
150
 
151
+ class ComputeObjectChecksumAlgorithm(StrEnum):
152
+ CRC32 = "CRC32"
153
+ CRC32C = "CRC32C"
154
+ CRC64NVME = "CRC64NVME"
155
+ MD5 = "MD5"
156
+ SHA1 = "SHA1"
157
+ SHA256 = "SHA256"
158
+
159
+
160
+ class ComputeObjectChecksumType(StrEnum):
161
+ FULL_OBJECT = "FULL_OBJECT"
162
+ COMPOSITE = "COMPOSITE"
163
+
164
+
150
165
  class DeleteMarkerReplicationStatus(StrEnum):
151
166
  Enabled = "Enabled"
152
167
  Disabled = "Disabled"
@@ -272,6 +287,7 @@ class OperationName(StrEnum):
272
287
  S3PutObjectLegalHold = "S3PutObjectLegalHold"
273
288
  S3PutObjectRetention = "S3PutObjectRetention"
274
289
  S3ReplicateObject = "S3ReplicateObject"
290
+ S3ComputeObjectChecksum = "S3ComputeObjectChecksum"
275
291
 
276
292
 
277
293
  class OutputSchemaVersion(StrEnum):
@@ -857,6 +873,7 @@ class CreateAccessPointRequest(ServiceRequest):
857
873
  PublicAccessBlockConfiguration: Optional[PublicAccessBlockConfiguration]
858
874
  BucketAccountId: Optional[AccountId]
859
875
  Scope: Optional[Scope]
876
+ Tags: Optional[TagList]
860
877
 
861
878
 
862
879
  class CreateAccessPointResult(TypedDict, total=False):
@@ -886,6 +903,36 @@ class CreateBucketResult(TypedDict, total=False):
886
903
  BucketArn: Optional[S3RegionalBucketArn]
887
904
 
888
905
 
906
+ class NotSSEFilter(TypedDict, total=False):
907
+ pass
908
+
909
+
910
+ class SSECFilter(TypedDict, total=False):
911
+ pass
912
+
913
+
914
+ class DSSEKMSFilter(TypedDict, total=False):
915
+ KmsKeyArn: Optional[NonEmptyKmsKeyArnString]
916
+
917
+
918
+ class SSEKMSFilter(TypedDict, total=False):
919
+ KmsKeyArn: Optional[NonEmptyKmsKeyArnString]
920
+ BucketKeyEnabled: Optional[Boolean]
921
+
922
+
923
+ class SSES3Filter(TypedDict, total=False):
924
+ pass
925
+
926
+
927
+ class ObjectEncryptionFilter(TypedDict, total=False):
928
+ SSES3: Optional[SSES3Filter]
929
+ SSEKMS: Optional[SSEKMSFilter]
930
+ DSSEKMS: Optional[DSSEKMSFilter]
931
+ SSEC: Optional[SSECFilter]
932
+ NOTSSE: Optional[NotSSEFilter]
933
+
934
+
935
+ ObjectEncryptionFilterList = List[ObjectEncryptionFilter]
889
936
  StorageClassList = List[S3StorageClass]
890
937
  ObjectSizeLessThanBytes = int
891
938
  ObjectSizeGreaterThanBytes = int
@@ -911,6 +958,7 @@ class JobManifestGeneratorFilter(TypedDict, total=False):
911
958
  ObjectSizeGreaterThanBytes: Optional[ObjectSizeGreaterThanBytes]
912
959
  ObjectSizeLessThanBytes: Optional[ObjectSizeLessThanBytes]
913
960
  MatchAnyStorageClass: Optional[StorageClassList]
961
+ MatchAnyObjectEncryption: Optional[ObjectEncryptionFilterList]
914
962
 
915
963
 
916
964
  class SSEKMSEncryption(TypedDict, total=False):
@@ -979,6 +1027,12 @@ class JobReport(TypedDict, total=False):
979
1027
  Enabled: Boolean
980
1028
  Prefix: Optional[ReportPrefixString]
981
1029
  ReportScope: Optional[JobReportScope]
1030
+ ExpectedBucketOwner: Optional[AccountId]
1031
+
1032
+
1033
+ class S3ComputeObjectChecksumOperation(TypedDict, total=False):
1034
+ ChecksumAlgorithm: Optional[ComputeObjectChecksumAlgorithm]
1035
+ ChecksumType: Optional[ComputeObjectChecksumType]
982
1036
 
983
1037
 
984
1038
  class S3ReplicateObjectOperation(TypedDict, total=False):
@@ -1110,6 +1164,7 @@ class JobOperation(TypedDict, total=False):
1110
1164
  S3PutObjectLegalHold: Optional[S3SetObjectLegalHoldOperation]
1111
1165
  S3PutObjectRetention: Optional[S3SetObjectRetentionOperation]
1112
1166
  S3ReplicateObject: Optional[S3ReplicateObjectOperation]
1167
+ S3ComputeObjectChecksum: Optional[S3ComputeObjectChecksumOperation]
1113
1168
 
1114
1169
 
1115
1170
  class CreateJobRequest(ServiceRequest):
@@ -2423,6 +2478,7 @@ class S3ControlApi:
2423
2478
  public_access_block_configuration: PublicAccessBlockConfiguration | None = None,
2424
2479
  bucket_account_id: AccountId | None = None,
2425
2480
  scope: Scope | None = None,
2481
+ tags: TagList | None = None,
2426
2482
  **kwargs,
2427
2483
  ) -> CreateAccessPointResult:
2428
2484
  raise NotImplementedError
@@ -201,23 +201,21 @@ class EventBridgeParameters(TypedDict, total=False):
201
201
 
202
202
  TagMap = Dict[TagKey, TagValue]
203
203
  Tags = List[TagMap]
204
- PlacementStrategy = TypedDict(
205
- "PlacementStrategy",
206
- {
207
- "field": Optional[PlacementStrategyField],
208
- "type": Optional[PlacementStrategyType],
209
- },
210
- total=False,
211
- )
204
+
205
+
206
+ class PlacementStrategy(TypedDict, total=False):
207
+ field: Optional[PlacementStrategyField]
208
+ type: Optional[PlacementStrategyType]
209
+
210
+
212
211
  PlacementStrategies = List[PlacementStrategy]
213
- PlacementConstraint = TypedDict(
214
- "PlacementConstraint",
215
- {
216
- "expression": Optional[PlacementConstraintExpression],
217
- "type": Optional[PlacementConstraintType],
218
- },
219
- total=False,
220
- )
212
+
213
+
214
+ class PlacementConstraint(TypedDict, total=False):
215
+ expression: Optional[PlacementConstraintExpression]
216
+ type: Optional[PlacementConstraintType]
217
+
218
+
221
219
  PlacementConstraints = List[PlacementConstraint]
222
220
 
223
221