localstack-core 4.7.1.dev27__py3-none-any.whl → 4.7.1.dev29__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.
@@ -441,7 +441,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
441
441
  LOG.warning(
442
442
  "Resource provider operation failed: '%s'",
443
443
  reason,
444
- exc_info=LOG.isEnabledFor(logging.DEBUG),
444
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
445
445
  )
446
446
  event = ProgressEvent(
447
447
  OperationStatus.FAILED,
@@ -47,6 +47,7 @@ from localstack.services.cloudformation.engine.v2.resolving import (
47
47
  extract_dynamic_reference,
48
48
  perform_dynamic_reference_lookup,
49
49
  )
50
+ from localstack.services.cloudformation.engine.validations import ValidationError
50
51
  from localstack.services.cloudformation.stores import (
51
52
  exports_map,
52
53
  )
@@ -75,6 +76,8 @@ TAfter = TypeVar("TAfter")
75
76
 
76
77
  MOCKED_REFERENCE = "unknown"
77
78
 
79
+ VALID_LOGICAL_RESOURCE_ID_RE = re.compile(r"^[A-Za-z0-9]+$")
80
+
78
81
 
79
82
  class PreprocEntityDelta(Generic[TBefore, TAfter]):
80
83
  before: Maybe[TBefore]
@@ -223,7 +226,9 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
223
226
  if node_resource.name == resource_name:
224
227
  self.visit(node_resource)
225
228
  return node_resource
226
- raise RuntimeError(f"No resource '{resource_name}' was found")
229
+ raise ValidationError(
230
+ f"Template format error: Unresolved resource dependencies [{resource_name}] in the Resources block of the template"
231
+ )
227
232
 
228
233
  def _get_node_property_for(
229
234
  self, property_name: str, node_resource: NodeResource
@@ -238,7 +243,8 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
238
243
  def _deployed_property_value_of(
239
244
  self, resource_logical_id: str, property_name: str, resolved_resources: dict
240
245
  ) -> Any:
241
- # TODO: typing around resolved resources is needed and should be reflected here.
246
+ # We have to override this function to make sure it does not try to access the
247
+ # resolved resource
242
248
 
243
249
  # Before we can obtain deployed value for a resource, we need to first ensure to
244
250
  # process the resource if this wasn't processed already. Ideally, values should only
@@ -372,8 +378,12 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
372
378
  node_mapping: NodeMapping = self._get_node_mapping(map_name=map_name)
373
379
  top_level_value = node_mapping.bindings.bindings.get(top_level_key)
374
380
  if not isinstance(top_level_value, NodeObject):
375
- raise RuntimeError()
381
+ error_key = "::".join([map_name, top_level_key, second_level_key])
382
+ raise ValidationError(f"Template error: Unable to get mapping for {error_key}")
376
383
  second_level_value = top_level_value.bindings.get(second_level_key)
384
+ if not isinstance(second_level_value, TerminalValue):
385
+ error_key = "::".join([map_name, top_level_key, second_level_key])
386
+ raise ValidationError(f"Template error: Unable to get mapping for {error_key}")
377
387
  mapping_value_delta = self.visit(second_level_value)
378
388
  return mapping_value_delta
379
389
 
@@ -1070,6 +1080,10 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
1070
1080
  def visit_node_resource(
1071
1081
  self, node_resource: NodeResource
1072
1082
  ) -> PreprocEntityDelta[PreprocResource, PreprocResource]:
1083
+ if not VALID_LOGICAL_RESOURCE_ID_RE.match(node_resource.name):
1084
+ raise ValidationError(
1085
+ f"Template format error: Resource name {node_resource.name} is non alphanumeric."
1086
+ )
1073
1087
  change_type = node_resource.change_type
1074
1088
  condition_before = Nothing
1075
1089
  condition_after = Nothing
@@ -1,53 +1,141 @@
1
1
  import re
2
+ from typing import Any
2
3
 
3
4
  from localstack.services.cloudformation.engine.v2.change_set_model import (
4
- NodeParameters,
5
- NodeResource,
5
+ Maybe,
6
+ NodeIntrinsicFunction,
6
7
  NodeTemplate,
8
+ Nothing,
7
9
  is_nothing,
8
10
  )
9
11
  from localstack.services.cloudformation.engine.v2.change_set_model_preproc import (
12
+ _PSEUDO_PARAMETERS,
13
+ ChangeSetModelPreproc,
10
14
  PreprocEntityDelta,
15
+ PreprocResource,
11
16
  )
12
- from localstack.services.cloudformation.engine.v2.change_set_model_visitor import (
13
- ChangeSetModelVisitor,
14
- )
15
- from localstack.services.cloudformation.engine.validations import ValidationError
16
- from localstack.services.cloudformation.v2.entities import ChangeSet
17
-
18
- VALID_LOGICAL_RESOURCE_ID_RE = re.compile(r"^[A-Za-z0-9]+$")
19
17
 
20
18
 
21
- class ChangeSetModelValidator(ChangeSetModelVisitor):
22
- def __init__(self, change_set: ChangeSet):
23
- self._change_set = change_set
24
-
19
+ class ChangeSetModelValidator(ChangeSetModelPreproc):
25
20
  def validate(self):
26
- self.visit(self._change_set.update_model.node_template)
21
+ self.process()
27
22
 
28
23
  def visit_node_template(self, node_template: NodeTemplate):
29
- self.visit(node_template.parameters)
24
+ self.visit(node_template.mappings)
30
25
  self.visit(node_template.resources)
31
26
 
32
- def visit_node_parameters(self, node_parameters: NodeParameters) -> PreprocEntityDelta:
33
- # check that all parameters have values
34
- invalid_parameters = []
35
- for node_parameter in node_parameters.parameters:
36
- self.visit(node_parameter)
37
- if is_nothing(node_parameter.default_value.value) and is_nothing(
38
- node_parameter.dynamic_value.value
27
+ def visit_node_intrinsic_function_fn_get_att(
28
+ self, node_intrinsic_function: NodeIntrinsicFunction
29
+ ) -> PreprocEntityDelta:
30
+ arguments_delta = self.visit(node_intrinsic_function.arguments)
31
+ before_arguments: Maybe[str | list[str]] = arguments_delta.before
32
+ after_arguments: Maybe[str | list[str]] = arguments_delta.after
33
+
34
+ before = self._before_cache.get(node_intrinsic_function.scope, Nothing)
35
+ if is_nothing(before) and not is_nothing(before_arguments):
36
+ before = ".".join(before_arguments)
37
+
38
+ after = self._after_cache.get(node_intrinsic_function.scope, Nothing)
39
+ if is_nothing(after) and not is_nothing(after_arguments):
40
+ after = ".".join(after_arguments)
41
+
42
+ return PreprocEntityDelta(before=before, after=after)
43
+
44
+ def visit_node_intrinsic_function_fn_sub(
45
+ self, node_intrinsic_function: NodeIntrinsicFunction
46
+ ) -> PreprocEntityDelta:
47
+ def _compute_sub(args: str | list[Any], select_before: bool) -> str:
48
+ # TODO: add further schema validation.
49
+ string_template: str
50
+ sub_parameters: dict
51
+ if isinstance(args, str):
52
+ string_template = args
53
+ sub_parameters = dict()
54
+ elif (
55
+ isinstance(args, list)
56
+ and len(args) == 2
57
+ and isinstance(args[0], str)
58
+ and isinstance(args[1], dict)
39
59
  ):
40
- invalid_parameters.append(node_parameter.name)
60
+ string_template = args[0]
61
+ sub_parameters = args[1]
62
+ else:
63
+ raise RuntimeError(
64
+ "Invalid arguments shape for Fn::Sub, expected a String "
65
+ f"or a Tuple of String and Map but got '{args}'"
66
+ )
67
+ sub_string = string_template
68
+ template_variable_names = re.findall("\\${([^}]+)}", string_template)
69
+ for template_variable_name in template_variable_names:
70
+ template_variable_value = Nothing
71
+
72
+ # Try to resolve the variable name as pseudo parameter.
73
+ if template_variable_name in _PSEUDO_PARAMETERS:
74
+ template_variable_value = self._resolve_pseudo_parameter(
75
+ pseudo_parameter_name=template_variable_name
76
+ )
77
+
78
+ # Try to resolve the variable name as an entry to the defined parameters.
79
+ elif template_variable_name in sub_parameters:
80
+ template_variable_value = sub_parameters[template_variable_name]
81
+
82
+ # Try to resolve the variable name as GetAtt.
83
+ elif "." in template_variable_name:
84
+ try:
85
+ template_variable_value = self._resolve_attribute(
86
+ arguments=template_variable_name, select_before=select_before
87
+ )
88
+ except RuntimeError:
89
+ pass
90
+
91
+ # Try to resolve the variable name as Ref.
92
+ else:
93
+ try:
94
+ resource_delta = self._resolve_reference(logical_id=template_variable_name)
95
+ template_variable_value = (
96
+ resource_delta.before if select_before else resource_delta.after
97
+ )
98
+ if isinstance(template_variable_value, PreprocResource):
99
+ template_variable_value = template_variable_value.physical_resource_id
100
+ except RuntimeError:
101
+ pass
102
+
103
+ if is_nothing(template_variable_value):
104
+ # override the base method just for this line to prevent accessing the
105
+ # resource properties since we are not deploying any resources
106
+ template_variable_value = ""
107
+
108
+ if not isinstance(template_variable_value, str):
109
+ template_variable_value = str(template_variable_value)
41
110
 
42
- if invalid_parameters:
43
- raise ValidationError(f"Parameters: [{','.join(invalid_parameters)}] must have values")
111
+ sub_string = sub_string.replace(
112
+ f"${{{template_variable_name}}}", template_variable_value
113
+ )
44
114
 
45
- # continue visiting
46
- return super().visit_node_parameters(node_parameters)
115
+ # FIXME: the following type reduction is ported from v1; however it appears as though such
116
+ # reduction is not performed by the engine, and certainly not at this depth given the
117
+ # lack of context. This section should be removed with Fn::Sub always retuning a string
118
+ # and the resource providers reviewed.
119
+ account_id = self._change_set.account_id
120
+ is_another_account_id = sub_string.isdigit() and len(sub_string) == len(account_id)
121
+ if sub_string == account_id or is_another_account_id:
122
+ result = sub_string
123
+ elif sub_string.isdigit():
124
+ result = int(sub_string)
125
+ else:
126
+ try:
127
+ result = float(sub_string)
128
+ except ValueError:
129
+ result = sub_string
130
+ return result
47
131
 
48
- def visit_node_resource(self, node_resource: NodeResource) -> PreprocEntityDelta:
49
- if not VALID_LOGICAL_RESOURCE_ID_RE.match(node_resource.name):
50
- raise ValidationError(
51
- f"Template format error: Resource name {node_resource.name} is non alphanumeric."
52
- )
53
- return super().visit_node_resource(node_resource)
132
+ arguments_delta = self.visit(node_intrinsic_function.arguments)
133
+ arguments_before = arguments_delta.before
134
+ arguments_after = arguments_delta.after
135
+ before = self._before_cache.get(node_intrinsic_function.scope, Nothing)
136
+ if is_nothing(before) and not is_nothing(arguments_before):
137
+ before = _compute_sub(args=arguments_before, select_before=True)
138
+ after = self._after_cache.get(node_intrinsic_function.scope, Nothing)
139
+ if is_nothing(after) and not is_nothing(arguments_after):
140
+ after = _compute_sub(args=arguments_after, select_before=False)
141
+ return PreprocEntityDelta(before=before, after=after)
@@ -236,7 +236,7 @@ def get_resource_type(resource: dict) -> str:
236
236
  LOG.warning(
237
237
  "Failed to retrieve resource type %s",
238
238
  resource.get("Type"),
239
- exc_info=LOG.isEnabledFor(logging.DEBUG),
239
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
240
240
  )
241
241
 
242
242
 
@@ -577,7 +577,7 @@ class ResourceProviderExecutor:
577
577
  LOG.warning(
578
578
  "Failed to load PRO resource type %s as a ResourceProvider.",
579
579
  resource_type,
580
- exc_info=LOG.isEnabledFor(logging.DEBUG),
580
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
581
581
  )
582
582
 
583
583
  # 2. try to load community resource provider
@@ -592,7 +592,7 @@ class ResourceProviderExecutor:
592
592
  LOG.warning(
593
593
  "Failed to load community resource type %s as a ResourceProvider.",
594
594
  resource_type,
595
- exc_info=LOG.isEnabledFor(logging.DEBUG),
595
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
596
596
  )
597
597
 
598
598
  # we could not find the resource provider
@@ -5,8 +5,10 @@ from collections import defaultdict
5
5
  from datetime import UTC, datetime
6
6
  from typing import Any
7
7
 
8
+ from localstack import config
8
9
  from localstack.aws.api import RequestContext, handler
9
10
  from localstack.aws.api.cloudformation import (
11
+ AlreadyExistsException,
10
12
  CallAs,
11
13
  Changes,
12
14
  ChangeSetNameOrId,
@@ -173,7 +175,7 @@ def find_change_set_v2(
173
175
  state: CloudFormationStore, change_set_name: str, stack_name: str | None = None
174
176
  ) -> ChangeSet | None:
175
177
  if is_changeset_arn(change_set_name):
176
- return state.change_sets[change_set_name]
178
+ return state.change_sets.get(change_set_name)
177
179
  else:
178
180
  if stack_name is not None:
179
181
  stack = find_stack_v2(state, stack_name)
@@ -185,7 +187,9 @@ def find_change_set_v2(
185
187
  if change_set_candidate.change_set_name == change_set_name:
186
188
  return change_set_candidate
187
189
  else:
188
- raise ValueError("No stack name specified when finding change set")
190
+ raise ValidationError(
191
+ "StackName must be specified if ChangeSetName is not specified as an ARN."
192
+ )
189
193
 
190
194
 
191
195
  def find_stack_set_v2(state: CloudFormationStore, stack_set_name: str) -> StackSet | None:
@@ -213,6 +217,7 @@ class CloudformationProviderV2(CloudformationProvider):
213
217
  ) -> dict[str, EngineParameter]:
214
218
  template_parameters = template.get("Parameters", {})
215
219
  resolved_parameters = {}
220
+ invalid_parameters = []
216
221
  for name, parameter in template_parameters.items():
217
222
  given_value = parameters.get(name)
218
223
  default_value = parameter.get("Default")
@@ -231,10 +236,14 @@ class CloudformationProviderV2(CloudformationProvider):
231
236
  f"Parameter {name} should either have input value or default value"
232
237
  )
233
238
  elif given_value is None and default_value is None:
234
- raise ValidationError(f"Parameters: [{name}] must have values")
239
+ invalid_parameters.append(name)
240
+ continue
235
241
 
236
242
  resolved_parameters[name] = resolved_parameter
237
243
 
244
+ if invalid_parameters:
245
+ raise ValidationError(f"Parameters: [{','.join(invalid_parameters)}] must have values")
246
+
238
247
  for name, parameter in resolved_parameters.items():
239
248
  if (
240
249
  parameter.get("resolved_value") is None
@@ -539,7 +548,9 @@ class CloudformationProviderV2(CloudformationProvider):
539
548
  change_set.stack.template_body = change_set.template_body
540
549
  except Exception as e:
541
550
  LOG.error(
542
- "Execute change set failed: %s", e, exc_info=LOG.isEnabledFor(logging.WARNING)
551
+ "Execute change set failed: %s",
552
+ e,
553
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
543
554
  )
544
555
  new_stack_status = StackStatus.UPDATE_FAILED
545
556
  if change_set.change_set_type == ChangeSetType.CREATE:
@@ -618,16 +629,7 @@ class CloudformationProviderV2(CloudformationProvider):
618
629
  **kwargs,
619
630
  ) -> DeleteChangeSetOutput:
620
631
  state = get_cloudformation_store(context.account_id, context.region)
621
-
622
- if is_changeset_arn(change_set_name):
623
- change_set = state.change_sets.get(change_set_name)
624
- elif not is_changeset_arn(change_set_name) and stack_name:
625
- change_set = find_change_set_v2(state, change_set_name, stack_name)
626
- else:
627
- raise ValidationError(
628
- "StackName must be specified if ChangeSetName is not specified as an ARN."
629
- )
630
-
632
+ change_set = find_change_set_v2(state, change_set_name, stack_name)
631
633
  if not change_set:
632
634
  return DeleteChangeSetOutput()
633
635
 
@@ -645,6 +647,26 @@ class CloudformationProviderV2(CloudformationProvider):
645
647
  raise ValidationError("StackName must be specified")
646
648
 
647
649
  state = get_cloudformation_store(context.account_id, context.region)
650
+
651
+ active_stack_candidates = [
652
+ stack
653
+ for stack in state.stacks_v2.values()
654
+ if stack.stack_name == stack_name and stack.status not in [StackStatus.DELETE_COMPLETE]
655
+ ]
656
+
657
+ # TODO: fix/implement this code path
658
+ # this needs more investigation how Cloudformation handles it (e.g. normal stack create or does it create a separate changeset?)
659
+ # REVIEW_IN_PROGRESS is another special status
660
+ # in this case existing changesets are set to obsolete and the stack is created
661
+ # review_stack_candidates = [s for s in stack_candidates if s.status == StackStatus.REVIEW_IN_PROGRESS]
662
+ # if review_stack_candidates:
663
+ # set changesets to obsolete
664
+ # for cs in review_stack_candidates[0].change_sets:
665
+ # cs.execution_status = ExecutionStatus.OBSOLETE
666
+
667
+ if active_stack_candidates:
668
+ raise AlreadyExistsException(f"Stack [{stack_name}] already exists")
669
+
648
670
  # TODO: copied from create_change_set, consider unifying
649
671
  template_body = request.get("TemplateBody")
650
672
  # s3 or secretsmanager url
@@ -724,7 +746,9 @@ class CloudformationProviderV2(CloudformationProvider):
724
746
  stack.resolved_parameters = change_set.resolved_parameters
725
747
  except Exception as e:
726
748
  LOG.error(
727
- "Create Stack set failed: %s", e, exc_info=LOG.isEnabledFor(logging.WARNING)
749
+ "Create Stack set failed: %s",
750
+ e,
751
+ exc_info=LOG.isEnabledFor(logging.WARNING) and config.CFN_VERBOSE_ERRORS,
728
752
  )
729
753
  stack.set_stack_status(StackStatus.CREATE_FAILED)
730
754
 
@@ -754,9 +778,7 @@ class CloudformationProviderV2(CloudformationProvider):
754
778
  if stack_name:
755
779
  stack = find_stack_v2(state, stack_name)
756
780
  if not stack:
757
- raise StackNotFoundError(
758
- stack_name, message_override=f"Stack with id {stack_name} does not exist"
759
- )
781
+ raise ValidationError(f"Stack with id {stack_name} does not exist")
760
782
  stacks = [stack]
761
783
  else:
762
784
  stacks = state.stacks_v2.values()
@@ -1356,7 +1378,11 @@ class CloudformationProviderV2(CloudformationProvider):
1356
1378
  stack.template_body = change_set.template_body
1357
1379
  stack.resolved_parameters = change_set.resolved_parameters
1358
1380
  except Exception as e:
1359
- LOG.error("Update Stack failed: %s", e, exc_info=LOG.isEnabledFor(logging.WARNING))
1381
+ LOG.error(
1382
+ "Update Stack failed: %s",
1383
+ e,
1384
+ exc_info=LOG.isEnabledFor(logging.WARNING) and config.CFN_VERBOSE_ERRORS,
1385
+ )
1360
1386
  stack.set_stack_status(StackStatus.UPDATE_FAILED)
1361
1387
 
1362
1388
  start_worker_thread(_run)
@@ -1419,7 +1445,7 @@ class CloudformationProviderV2(CloudformationProvider):
1419
1445
  "Failed to delete stack '%s': %s",
1420
1446
  stack.stack_name,
1421
1447
  e,
1422
- exc_info=LOG.isEnabledFor(logging.DEBUG),
1448
+ exc_info=LOG.isEnabledFor(logging.DEBUG) and config.CFN_VERBOSE_ERRORS,
1423
1449
  )
1424
1450
  stack.set_stack_status(StackStatus.DELETE_FAILED)
1425
1451
 
localstack/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.7.1.dev27'
21
- __version_tuple__ = version_tuple = (4, 7, 1, 'dev27')
20
+ __version__ = version = '4.7.1.dev29'
21
+ __version_tuple__ = version_tuple = (4, 7, 1, 'dev29')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.7.1.dev27
3
+ Version: 4.7.1.dev29
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ localstack/deprecations.py,sha256=78Sf99fgH3ckJ20a9SMqsu01r1cm5GgcomkuY4yDMDo,15
4
4
  localstack/openapi.yaml,sha256=B803NmpwsxG8PHpHrdZYBrUYjnrRh7B_JX0XuNynuFs,30237
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
6
  localstack/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- localstack/version.py,sha256=shQ1eUIy2LwveOq2YBbfosS2PTDrEIMjLGrfFnw1pVA,526
7
+ localstack/version.py,sha256=VKV9Ryo2j4yvtwDWo_9A8Icp_pOtJKpXiKnCOcbGsPg,526
8
8
  localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
10
10
  localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
@@ -291,7 +291,7 @@ localstack/services/cloudformation/deployment_utils.py,sha256=Owe6QgvJ0rpqPlwLlt
291
291
  localstack/services/cloudformation/plugins.py,sha256=8E1i9U65RnjZJoXz214ceV8OXcnpHNU44unK3raXkWs,336
292
292
  localstack/services/cloudformation/provider.py,sha256=U79fqNKc8X6po8Gv4fuzuhSoMq-xIhXa3Q516PBooNo,52921
293
293
  localstack/services/cloudformation/provider_utils.py,sha256=CBHP5AkfKbgVhO_JEDkiHpvksN2Kv6szLdjBtYjXc2w,8984
294
- localstack/services/cloudformation/resource_provider.py,sha256=VsdoBwEnHs_7cQyTeWVg8xk8ZfzB_s_wGS69mCYQ3IU,23071
294
+ localstack/services/cloudformation/resource_provider.py,sha256=ORwN3rRow6XvxN6zZnly7FdzW75wsfEKapPx0yZM89g,23161
295
295
  localstack/services/cloudformation/service_models.py,sha256=uo2sr2PIazsdE0-PfdoaaG9BEbKpjPP8ChCIJfX0pm8,5186
296
296
  localstack/services/cloudformation/stores.py,sha256=fEFa93666XDJMkfQl04tYaLBZNPwhEL8v3XDrDZ1sMk,5495
297
297
  localstack/services/cloudformation/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -313,10 +313,10 @@ localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUG
313
313
  localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
314
  localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=EErVcOi3PtMfDSTJfPpgM0LabgnkE95JyG6AM8-6a3o,58218
315
315
  localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=m5L2DRkQjxU-CXEHhdMwptQuYWwXHpcDNv1kqt15cYI,10401
316
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=PEiO0HioNXAjISUNDRRAaWWsgcibbJl4tUwsS-a5tOM,25809
317
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=7JH88z2_3HDLw5zRr7AaJlI5jpKsM36qTyuob7wnIHo,51693
316
+ localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=P26nKtTcK_bxSONY9JiS0DSYpxjQIooXQAOlbX-cTmk,25839
317
+ localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=QnH7Ok9RMV8KlfLU9FtsWGdMdJdka_QHvmMiHOybbek,52550
318
318
  localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=vynAvpnRQv7F0G0Z6g3gFmwtfdaeX71TBlZWMKctawg,13395
319
- localstack/services/cloudformation/engine/v2/change_set_model_validator.py,sha256=NfS6TxbmMSXLbqba4be6wyWMgCGiQhsbqJ-9r49D_-E,2044
319
+ localstack/services/cloudformation/engine/v2/change_set_model_validator.py,sha256=tfFIQaY27v0PI9L2tMZfhQ47ODrMWg9czucXa6iePeE,6345
320
320
  localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=ygUVPgM3b8SAXLLhLeGSD2k_Oo81ukFkug6bcmvRSJg,7843
321
321
  localstack/services/cloudformation/engine/v2/resolving.py,sha256=ot76GycQsw6Y9SvxB8sAlK7tRntJb5CTrKYqyEnfiHc,4002
322
322
  localstack/services/cloudformation/models/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
@@ -337,7 +337,7 @@ localstack/services/cloudformation/scaffolding/__main__.py,sha256=K25POLQlhmM_-l
337
337
  localstack/services/cloudformation/scaffolding/propgen.py,sha256=id7l43zsJsTgUyQ8F3jpfbpEoicc8GC6cB2ESEktDxc,7936
338
338
  localstack/services/cloudformation/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
339
339
  localstack/services/cloudformation/v2/entities.py,sha256=LOqBpe-H0eKumd9HSbXwriUumrjrmw5YO2hvChbv7aQ,10944
340
- localstack/services/cloudformation/v2/provider.py,sha256=-inBZatqTzt50ujjtlmxZD5xLCB4ku_MoIyROz6r9-0,59048
340
+ localstack/services/cloudformation/v2/provider.py,sha256=2jPv6-d5Mvk-BtaYpIGUDyFgO6158ZXe4gEfKV6Qn0c,60169
341
341
  localstack/services/cloudformation/v2/utils.py,sha256=xy4Lcp4X8XGJ0OKfnsE7pnfMcFrtIH0Chw35qwjhZuw,148
342
342
  localstack/services/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
343
343
  localstack/services/cloudwatch/alarm_scheduler.py,sha256=ZgvNwcWn-uI51zCz2Vecchu2jhLlJr2eh9QryE34Pv0,15630
@@ -1285,13 +1285,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1285
1285
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1286
1286
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1287
1287
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1288
- localstack_core-4.7.1.dev27.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1289
- localstack_core-4.7.1.dev27.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1290
- localstack_core-4.7.1.dev27.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1291
- localstack_core-4.7.1.dev27.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1292
- localstack_core-4.7.1.dev27.dist-info/METADATA,sha256=mXF1ieYST-zjLHWWGfctxlBuCA7H9hj1nrrMw1z6Fys,5570
1293
- localstack_core-4.7.1.dev27.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1294
- localstack_core-4.7.1.dev27.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
1295
- localstack_core-4.7.1.dev27.dist-info/plux.json,sha256=IRYicp2H0EDzudisawtbuRyL8HlmswkehQ8CyHsgWl0,20891
1296
- localstack_core-4.7.1.dev27.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1297
- localstack_core-4.7.1.dev27.dist-info/RECORD,,
1288
+ localstack_core-4.7.1.dev29.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1289
+ localstack_core-4.7.1.dev29.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1290
+ localstack_core-4.7.1.dev29.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1291
+ localstack_core-4.7.1.dev29.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1292
+ localstack_core-4.7.1.dev29.dist-info/METADATA,sha256=Yu9nkdlRP3LUXzMwIvmt0LQNQDQyyg77_7PWC_Gt29Y,5570
1293
+ localstack_core-4.7.1.dev29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1294
+ localstack_core-4.7.1.dev29.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
1295
+ localstack_core-4.7.1.dev29.dist-info/plux.json,sha256=nlcKBnorvZd2IKhzfqVZqvDsUHIWPuCpqYZkLhgyI5w,20891
1296
+ localstack_core-4.7.1.dev29.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1297
+ localstack_core-4.7.1.dev29.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin"], "localstack.packages": ["kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package"], "localstack.hooks.on_infra_shutdown": ["run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics"], "localstack.hooks.on_infra_start": ["eager_load_services=localstack.services.plugins:eager_load_services", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"]}
@@ -1 +0,0 @@
1
- {"localstack.cloudformation.resource_providers": ["AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin"], "localstack.hooks.on_infra_start": ["register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "eager_load_services=localstack.services.plugins:eager_load_services", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server"], "localstack.packages": ["ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.hooks.on_infra_shutdown": ["_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "stop_server=localstack.dns.plugins:stop_server"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"]}