localstack-core 4.4.1.dev1__py3-none-any.whl → 4.4.1.dev2__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.
@@ -367,15 +367,17 @@ ExportKey: Final[str] = "Export"
367
367
  OutputsKey: Final[str] = "Outputs"
368
368
  # TODO: expand intrinsic functions set.
369
369
  RefKey: Final[str] = "Ref"
370
- FnIf: Final[str] = "Fn::If"
371
- FnNot: Final[str] = "Fn::Not"
370
+ FnIfKey: Final[str] = "Fn::If"
371
+ FnNotKey: Final[str] = "Fn::Not"
372
+ FnJoinKey: Final[str] = "Fn::Join"
372
373
  FnGetAttKey: Final[str] = "Fn::GetAtt"
373
374
  FnEqualsKey: Final[str] = "Fn::Equals"
374
375
  FnFindInMapKey: Final[str] = "Fn::FindInMap"
375
376
  INTRINSIC_FUNCTIONS: Final[set[str]] = {
376
377
  RefKey,
377
- FnIf,
378
- FnNot,
378
+ FnIfKey,
379
+ FnNotKey,
380
+ FnJoinKey,
379
381
  FnEqualsKey,
380
382
  FnGetAttKey,
381
383
  FnFindInMapKey,
@@ -587,7 +589,12 @@ class ChangeSetModel:
587
589
  scope=value_scope, before_value=before_value, after_value=after_value
588
590
  )
589
591
  array.append(value)
590
- change_type = self._change_type_for_parent_of([value.change_type for value in array])
592
+ if self._is_created(before=before_array, after=after_array):
593
+ change_type = ChangeType.CREATED
594
+ elif self._is_removed(before=before_array, after=after_array):
595
+ change_type = ChangeType.REMOVED
596
+ else:
597
+ change_type = self._change_type_for_parent_of([value.change_type for value in array])
591
598
  return NodeArray(scope=scope, change_type=change_type, array=array)
592
599
 
593
600
  def _visit_object(
@@ -596,8 +603,12 @@ class ChangeSetModel:
596
603
  node_object = self._visited_scopes.get(scope)
597
604
  if isinstance(node_object, NodeObject):
598
605
  return node_object
599
-
600
- change_type = ChangeType.UNCHANGED
606
+ if self._is_created(before=before_object, after=after_object):
607
+ change_type = ChangeType.CREATED
608
+ elif self._is_removed(before=before_object, after=after_object):
609
+ change_type = ChangeType.REMOVED
610
+ else:
611
+ change_type = ChangeType.UNCHANGED
601
612
  binding_names = self._safe_keys_of(before_object, after_object)
602
613
  bindings: dict[str, ChangeSetEntity] = dict()
603
614
  for binding_name in binding_names:
@@ -44,7 +44,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
44
44
  def visit_node_intrinsic_function_fn_get_att(
45
45
  self, node_intrinsic_function: NodeIntrinsicFunction
46
46
  ) -> PreprocEntityDelta:
47
- # TODO: If we can properly compute the before and after value, why should we
47
+ # Consideration: If we can properly compute the before and after value, why should we
48
48
  # artificially limit the precision of our output to match AWS's?
49
49
 
50
50
  arguments_delta = self.visit(node_intrinsic_function.arguments)
@@ -71,10 +71,14 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
71
71
  after_node_resource = self._get_node_resource_for(
72
72
  resource_name=after_logical_name_of_resource, node_template=self._node_template
73
73
  )
74
+ after_property_delta: PreprocEntityDelta
74
75
  after_node_property = self._get_node_property_for(
75
76
  property_name=after_attribute_name, node_resource=after_node_resource
76
77
  )
77
- after_property_delta = self.visit(after_node_property)
78
+ if after_node_property is not None:
79
+ after_property_delta = self.visit(after_node_property)
80
+ else:
81
+ after_property_delta = PreprocEntityDelta(after=CHANGESET_KNOWN_AFTER_APPLY)
78
82
  if after_property_delta.before == after_property_delta.after:
79
83
  after = after_property_delta.after
80
84
  else:
@@ -82,6 +86,22 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
82
86
 
83
87
  return PreprocEntityDelta(before=before, after=after)
84
88
 
89
+ def visit_node_intrinsic_function_fn_join(
90
+ self, node_intrinsic_function: NodeIntrinsicFunction
91
+ ) -> PreprocEntityDelta:
92
+ # TODO: investigate the behaviour and impact of this logic with the user defining
93
+ # {{changeSet:KNOWN_AFTER_APPLY}} string literals as delimiters or arguments.
94
+ delta = super().visit_node_intrinsic_function_fn_join(
95
+ node_intrinsic_function=node_intrinsic_function
96
+ )
97
+ delta_before = delta.before
98
+ if isinstance(delta_before, str) and CHANGESET_KNOWN_AFTER_APPLY in delta_before:
99
+ delta.before = CHANGESET_KNOWN_AFTER_APPLY
100
+ delta_after = delta.after
101
+ if isinstance(delta_after, str) and CHANGESET_KNOWN_AFTER_APPLY in delta_after:
102
+ delta.after = CHANGESET_KNOWN_AFTER_APPLY
103
+ return delta
104
+
85
105
  def _register_resource_change(
86
106
  self,
87
107
  logical_id: str,
@@ -66,7 +66,17 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
66
66
  self.resolved_parameters[node_parameter.name] = delta.after
67
67
  return delta
68
68
 
69
- def _after_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
69
+ def _after_deployed_property_value_of(
70
+ self, resource_logical_id: str, property_name: str
71
+ ) -> str:
72
+ after_resolved_resources = self.resources
73
+ return self._deployed_property_value_of(
74
+ resource_logical_id=resource_logical_id,
75
+ property_name=property_name,
76
+ resolved_resources=after_resolved_resources,
77
+ )
78
+
79
+ def _after_resource_physical_id(self, resource_logical_id: str) -> str:
70
80
  after_resolved_resources = self.resources
71
81
  return self._resource_physical_resource_id_from(
72
82
  logical_resource_id=resource_logical_id, resolved_resources=after_resolved_resources
@@ -18,7 +18,6 @@ from localstack.services.cloudformation.engine.v2.change_set_model import (
18
18
  NodeProperty,
19
19
  NodeResource,
20
20
  NodeTemplate,
21
- NothingType,
22
21
  Scope,
23
22
  TerminalValue,
24
23
  TerminalValueCreated,
@@ -147,18 +146,50 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
147
146
  for node_resource in node_template.resources.resources:
148
147
  if node_resource.name == resource_name:
149
148
  return node_resource
150
- # TODO
151
- raise RuntimeError()
149
+ raise RuntimeError(f"No resource '{resource_name}' was found")
152
150
 
153
151
  def _get_node_property_for(
154
152
  self, property_name: str, node_resource: NodeResource
155
- ) -> NodeProperty:
153
+ ) -> Optional[NodeProperty]:
156
154
  # TODO: this could be improved with hashmap lookups if the Node contained bindings and not lists.
157
155
  for node_property in node_resource.properties.properties:
158
156
  if node_property.name == property_name:
159
157
  return node_property
160
- # TODO
161
- raise RuntimeError()
158
+ return None
159
+
160
+ @staticmethod
161
+ def _deployed_property_value_of(
162
+ resource_logical_id: str, property_name: str, resolved_resources: dict
163
+ ) -> Any:
164
+ # TODO: typing around resolved resources is needed and should be reflected here.
165
+ resolved_resource = resolved_resources.get(resource_logical_id)
166
+ if resolved_resource is None:
167
+ raise RuntimeError(
168
+ f"No deployed instances of resource '{resource_logical_id}' were found"
169
+ )
170
+ properties = resolved_resource.get("Properties", dict())
171
+ property_value: Optional[Any] = properties.get(property_name)
172
+ if property_value is None:
173
+ raise RuntimeError(
174
+ f"No '{property_name}' found for deployed resource '{resource_logical_id}' was found"
175
+ )
176
+ return property_value
177
+
178
+ def _before_deployed_property_value_of(
179
+ self, resource_logical_id: str, property_name: str
180
+ ) -> Any:
181
+ return self._deployed_property_value_of(
182
+ resource_logical_id=resource_logical_id,
183
+ property_name=property_name,
184
+ resolved_resources=self._before_resolved_resources,
185
+ )
186
+
187
+ def _after_deployed_property_value_of(
188
+ self, resource_logical_id: str, property_name: str
189
+ ) -> Optional[str]:
190
+ return self._before_deployed_property_value_of(
191
+ resource_logical_id=resource_logical_id, property_name=property_name
192
+ )
162
193
 
163
194
  def _get_node_mapping(self, map_name: str) -> NodeMapping:
164
195
  mappings: list[NodeMapping] = self._node_template.mappings.mappings
@@ -185,18 +216,19 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
185
216
  return condition
186
217
  return None
187
218
 
188
- def _resolve_reference(self, logical_id: str) -> PreprocEntityDelta:
219
+ def _resolve_condition(self, logical_id: str) -> PreprocEntityDelta:
189
220
  node_condition = self._get_node_condition_if_exists(condition_name=logical_id)
190
221
  if isinstance(node_condition, NodeCondition):
191
222
  condition_delta = self.visit(node_condition)
192
223
  return condition_delta
224
+ raise RuntimeError(f"No condition '{logical_id}' was found.")
193
225
 
226
+ def _resolve_reference(self, logical_id: str) -> PreprocEntityDelta:
194
227
  node_parameter = self._get_node_parameter_if_exists(parameter_name=logical_id)
195
228
  if isinstance(node_parameter, NodeParameter):
196
229
  parameter_delta = self.visit(node_parameter)
197
230
  return parameter_delta
198
231
 
199
- # TODO: check for KNOWN AFTER APPLY values for logical ids coming from intrinsic functions as arguments.
200
232
  node_resource = self._get_node_resource_for(
201
233
  resource_name=logical_id, node_template=self._node_template
202
234
  )
@@ -217,19 +249,6 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
217
249
  mapping_value_delta = self.visit(second_level_value)
218
250
  return mapping_value_delta
219
251
 
220
- def _resolve_reference_binding(
221
- self, before_logical_id: Optional[str], after_logical_id: Optional[str]
222
- ) -> PreprocEntityDelta:
223
- before = None
224
- if before_logical_id is not None:
225
- before_delta = self._resolve_reference(logical_id=before_logical_id)
226
- before = before_delta.before
227
- after = None
228
- if after_logical_id is not None:
229
- after_delta = self._resolve_reference(logical_id=after_logical_id)
230
- after = after_delta.after
231
- return PreprocEntityDelta(before=before, after=after)
232
-
233
252
  def visit(self, change_set_entity: ChangeSetEntity) -> PreprocEntityDelta:
234
253
  delta = self._processed.get(change_set_entity.scope)
235
254
  if delta is not None:
@@ -299,18 +318,27 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
299
318
  if before_argument_list:
300
319
  before_logical_name_of_resource = before_argument_list[0]
301
320
  before_attribute_name = before_argument_list[1]
321
+
302
322
  before_node_resource = self._get_node_resource_for(
303
323
  resource_name=before_logical_name_of_resource, node_template=self._node_template
304
324
  )
305
- before_node_property = self._get_node_property_for(
325
+ before_node_property: Optional[NodeProperty] = self._get_node_property_for(
306
326
  property_name=before_attribute_name, node_resource=before_node_resource
307
327
  )
308
- before_property_delta = self.visit(before_node_property)
309
- before = before_property_delta.before
328
+ if before_node_property is not None:
329
+ # The property is statically defined in the template and its value can be computed.
330
+ before_property_delta = self.visit(before_node_property)
331
+ before = before_property_delta.before
332
+ else:
333
+ # The property is not statically defined and must therefore be available in
334
+ # the properties deployed set.
335
+ before = self._before_deployed_property_value_of(
336
+ resource_logical_id=before_logical_name_of_resource,
337
+ property_name=before_attribute_name,
338
+ )
310
339
 
311
340
  after = None
312
341
  if after_argument_list:
313
- # TODO: when are values only accessible at runtime?
314
342
  after_logical_name_of_resource = after_argument_list[0]
315
343
  after_attribute_name = after_argument_list[1]
316
344
  after_node_resource = self._get_node_resource_for(
@@ -319,15 +347,23 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
319
347
  after_node_property = self._get_node_property_for(
320
348
  property_name=after_attribute_name, node_resource=after_node_resource
321
349
  )
322
- after_property_delta = self.visit(after_node_property)
323
- after = after_property_delta.after
350
+ if after_node_property is not None:
351
+ # The property is statically defined in the template and its value can be computed.
352
+ after_property_delta = self.visit(after_node_property)
353
+ after = after_property_delta.after
354
+ else:
355
+ # The property is not statically defined and must therefore be available in
356
+ # the properties deployed set.
357
+ after = self._after_deployed_property_value_of(
358
+ resource_logical_id=after_logical_name_of_resource,
359
+ property_name=after_attribute_name,
360
+ )
324
361
 
325
362
  return PreprocEntityDelta(before=before, after=after)
326
363
 
327
364
  def visit_node_intrinsic_function_fn_equals(
328
365
  self, node_intrinsic_function: NodeIntrinsicFunction
329
366
  ) -> PreprocEntityDelta:
330
- # TODO: check for KNOWN AFTER APPLY values for logical ids coming from intrinsic functions as arguments.
331
367
  arguments_delta = self.visit(node_intrinsic_function.arguments)
332
368
  before_values = arguments_delta.before
333
369
  after_values = arguments_delta.after
@@ -342,12 +378,11 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
342
378
  def visit_node_intrinsic_function_fn_if(
343
379
  self, node_intrinsic_function: NodeIntrinsicFunction
344
380
  ) -> PreprocEntityDelta:
345
- # TODO: check for KNOWN AFTER APPLY values for logical ids coming from intrinsic functions as arguments.
346
381
  arguments_delta = self.visit(node_intrinsic_function.arguments)
347
382
 
348
383
  def _compute_delta_for_if_statement(args: list[Any]) -> PreprocEntityDelta:
349
384
  condition_name = args[0]
350
- boolean_expression_delta = self._resolve_reference(logical_id=condition_name)
385
+ boolean_expression_delta = self._resolve_condition(logical_id=condition_name)
351
386
  return PreprocEntityDelta(
352
387
  before=args[1] if boolean_expression_delta.before else args[2],
353
388
  after=args[1] if boolean_expression_delta.after else args[2],
@@ -363,8 +398,6 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
363
398
  def visit_node_intrinsic_function_fn_not(
364
399
  self, node_intrinsic_function: NodeIntrinsicFunction
365
400
  ) -> PreprocEntityDelta:
366
- # TODO: check for KNOWN AFTER APPLY values for logical ids coming from intrinsic functions as arguments.
367
- # TODO: add type checking/validation for result unit?
368
401
  arguments_delta = self.visit(node_intrinsic_function.arguments)
369
402
  before_condition = arguments_delta.before
370
403
  after_condition = arguments_delta.after
@@ -382,10 +415,34 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
382
415
  # Implicit change type computation.
383
416
  return PreprocEntityDelta(before=before, after=after)
384
417
 
418
+ def visit_node_intrinsic_function_fn_join(
419
+ self, node_intrinsic_function: NodeIntrinsicFunction
420
+ ) -> PreprocEntityDelta:
421
+ arguments_delta = self.visit(node_intrinsic_function.arguments)
422
+ arguments_before = arguments_delta.before
423
+ arguments_after = arguments_delta.after
424
+
425
+ def _compute_join(args: list[Any]) -> str:
426
+ # TODO: add support for schema validation.
427
+ # TODO: add tests for joining non string values.
428
+ delimiter: str = str(args[0])
429
+ values: list[Any] = args[1]
430
+ if not isinstance(values, list):
431
+ raise RuntimeError("Invalid arguments list definition for Fn::Join")
432
+ join_result = delimiter.join(map(str, values))
433
+ return join_result
434
+
435
+ before = None
436
+ if isinstance(arguments_before, list) and len(arguments_before) == 2:
437
+ before = _compute_join(arguments_before)
438
+ after = None
439
+ if isinstance(arguments_after, list) and len(arguments_after) == 2:
440
+ after = _compute_join(arguments_after)
441
+ return PreprocEntityDelta(before=before, after=after)
442
+
385
443
  def visit_node_intrinsic_function_fn_find_in_map(
386
444
  self, node_intrinsic_function: NodeIntrinsicFunction
387
445
  ) -> PreprocEntityDelta:
388
- # TODO: check for KNOWN AFTER APPLY values for logical ids coming from intrinsic functions as arguments.
389
446
  # TODO: add type checking/validation for result unit?
390
447
  arguments_delta = self.visit(node_intrinsic_function.arguments)
391
448
  before_arguments = arguments_delta.before
@@ -424,24 +481,22 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
424
481
 
425
482
  def _resource_physical_resource_id_from(
426
483
  self, logical_resource_id: str, resolved_resources: dict
427
- ) -> Optional[str]:
484
+ ) -> str:
428
485
  # TODO: typing around resolved resources is needed and should be reflected here.
429
- resolved_resource = resolved_resources.get(logical_resource_id)
430
- if resolved_resource is None:
431
- return None
486
+ resolved_resource = resolved_resources.get(logical_resource_id, dict())
432
487
  physical_resource_id: Optional[str] = resolved_resource.get("PhysicalResourceId")
433
488
  if not isinstance(physical_resource_id, str):
434
489
  raise RuntimeError(f"No PhysicalResourceId found for resource '{logical_resource_id}'")
435
490
  return physical_resource_id
436
491
 
437
- def _before_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
492
+ def _before_resource_physical_id(self, resource_logical_id: str) -> str:
438
493
  # TODO: typing around resolved resources is needed and should be reflected here.
439
494
  return self._resource_physical_resource_id_from(
440
495
  logical_resource_id=resource_logical_id,
441
496
  resolved_resources=self._before_resolved_resources,
442
497
  )
443
498
 
444
- def _after_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
499
+ def _after_resource_physical_id(self, resource_logical_id: str) -> str:
445
500
  return self._before_resource_physical_id(resource_logical_id=resource_logical_id)
446
501
 
447
502
  def visit_node_intrinsic_function_ref(
@@ -473,9 +528,9 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
473
528
  after = list()
474
529
  for change_set_entity in node_array.array:
475
530
  delta: PreprocEntityDelta = self.visit(change_set_entity=change_set_entity)
476
- if delta.before:
531
+ if delta.before is not None:
477
532
  before.append(delta.before)
478
- if delta.after:
533
+ if delta.after is not None:
479
534
  after.append(delta.after)
480
535
  return PreprocEntityDelta(before=before, after=after)
481
536
 
@@ -501,12 +556,15 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
501
556
  def _resolve_resource_condition_reference(self, reference: TerminalValue) -> PreprocEntityDelta:
502
557
  reference_delta = self.visit(reference)
503
558
  before_reference = reference_delta.before
559
+ before = None
560
+ if before_reference is not None:
561
+ before_delta = self._resolve_condition(logical_id=before_reference)
562
+ before = before_delta.before
563
+ after = None
504
564
  after_reference = reference_delta.after
505
- condition_delta = self._resolve_reference_binding(
506
- before_logical_id=before_reference, after_logical_id=after_reference
507
- )
508
- before = condition_delta.before if not isinstance(before_reference, NothingType) else True
509
- after = condition_delta.after if not isinstance(after_reference, NothingType) else True
565
+ if after_reference is not None:
566
+ after_delta = self._resolve_condition(logical_id=after_reference)
567
+ after = after_delta.after
510
568
  return PreprocEntityDelta(before=before, after=after)
511
569
 
512
570
  def visit_node_resource(
@@ -543,9 +601,12 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
543
601
  )
544
602
  if change_type != ChangeType.REMOVED and condition_after is None or condition_after:
545
603
  logical_resource_id = node_resource.name
546
- after_physical_resource_id = self._after_resource_physical_id(
547
- resource_logical_id=logical_resource_id
548
- )
604
+ try:
605
+ after_physical_resource_id = self._after_resource_physical_id(
606
+ resource_logical_id=logical_resource_id
607
+ )
608
+ except RuntimeError:
609
+ after_physical_resource_id = None
549
610
  after = PreprocResource(
550
611
  logical_id=logical_resource_id,
551
612
  physical_resource_id=after_physical_resource_id,
@@ -110,6 +110,9 @@ class ChangeSetModelVisitor(abc.ABC):
110
110
  def visit_node_intrinsic_function_fn_not(self, node_intrinsic_function: NodeIntrinsicFunction):
111
111
  self.visit_children(node_intrinsic_function)
112
112
 
113
+ def visit_node_intrinsic_function_fn_join(self, node_intrinsic_function: NodeIntrinsicFunction):
114
+ self.visit_children(node_intrinsic_function)
115
+
113
116
  def visit_node_intrinsic_function_fn_find_in_map(
114
117
  self, node_intrinsic_function: NodeIntrinsicFunction
115
118
  ):
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.4.1.dev1'
21
- __version_tuple__ = version_tuple = (4, 4, 1, 'dev1')
20
+ __version__ = version = '4.4.1.dev2'
21
+ __version_tuple__ = version_tuple = (4, 4, 1, 'dev2')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.4.1.dev1
3
+ Version: 4.4.1.dev2
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=mNXTebZ8kSbQjFKz0LbT-g1Kdr0CE8bhEgZfHV3IX0s,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=rruYZ9kNQHz_gtXOBkoT8YAsnCnSzohUNMMufzZ8UMs,524
7
+ localstack/version.py,sha256=r4PHovn5a-E3qSMNyp2vjrSY4EtWXtlpPpCtOXs32qQ,524
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
@@ -310,11 +310,11 @@ localstack/services/cloudformation/engine/types.py,sha256=YIhmTrO__obIviYvzzCovK
310
310
  localstack/services/cloudformation/engine/validations.py,sha256=brq7s8O8exA5kvnfzR9ulOtQ7i4konrWQs07-0h_ByE,2847
311
311
  localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUGen9Mz8SjosBuodpV5XvsCSn9bDg,2164
312
312
  localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
313
- localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=8-jMLREDOwSINBI4UfebsJx8nXbkqJQ_m4KYTqD783U,48264
314
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=W2gbMS-qL_9-PM4NBtEuFDBIqVSewKDSErHowsDBNAM,7350
315
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=ySNO25GzNf-fAc9P2U_lk-DrdQLImhb6XxO0KJnnlcg,13368
316
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=dtsz_Y2eCsJHX_BFZE5JpVyyp9cBT0rVGCmHlfIDrr0,25564
317
- localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=NF97l94cHxxBuqNJ6kR3EarNyjLM9KnT8zPV4puOtZQ,5163
313
+ localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=T4Gtah3UcRjN4U4rYlI7PucF6yTZHgQf2b-vtfa6gv8,48825
314
+ localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=Ws-NUXebjTD6lPScMv0-iqYi8hq_gZgKteUuVIQ5MgM,8406
315
+ localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=VgRWpKsOIuOZX7qsv_nKIr_AQat2AEkGq3mVPntR810,13735
316
+ localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=Sq0m27Kc4OQaznD5_WjjsKz9v1Q5nU6IvRGw289jP_w,28164
317
+ localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=2tggKZ74ShtKOgZjzczeEibB7WUFamf5nfS1tRGDkss,5318
318
318
  localstack/services/cloudformation/models/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
319
319
  localstack/services/cloudformation/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
320
320
  localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py,sha256=Grn3dP1jANRlVO9HyKQV5GHv0x1eNRBeaIYhgn-FKv4,2812
@@ -1279,13 +1279,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1279
1279
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1280
1280
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1281
1281
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1282
- localstack_core-4.4.1.dev1.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
- localstack_core-4.4.1.dev1.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
- localstack_core-4.4.1.dev1.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
- localstack_core-4.4.1.dev1.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
- localstack_core-4.4.1.dev1.dist-info/METADATA,sha256=wh2vvEr7b1CgqIVtySphJ8aJkeDRkMMyVici7ENrdbc,5527
1287
- localstack_core-4.4.1.dev1.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
1288
- localstack_core-4.4.1.dev1.dist-info/entry_points.txt,sha256=K5M7il9Vwev64SlQiOaZVUhYpVNIE6IFHiWJ0znpbHQ,20491
1289
- localstack_core-4.4.1.dev1.dist-info/plux.json,sha256=u0WlIFs7hG3ccXMzuUt4hr_pgMGf9erOu9z2J3byvPc,20712
1290
- localstack_core-4.4.1.dev1.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
- localstack_core-4.4.1.dev1.dist-info/RECORD,,
1282
+ localstack_core-4.4.1.dev2.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
+ localstack_core-4.4.1.dev2.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
+ localstack_core-4.4.1.dev2.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
+ localstack_core-4.4.1.dev2.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
+ localstack_core-4.4.1.dev2.dist-info/METADATA,sha256=SGMTp76Y1EVQz_dwT6YV5QXiBdBwU809CTixz7akQ0U,5527
1287
+ localstack_core-4.4.1.dev2.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
1288
+ localstack_core-4.4.1.dev2.dist-info/entry_points.txt,sha256=K5M7il9Vwev64SlQiOaZVUhYpVNIE6IFHiWJ0znpbHQ,20491
1289
+ localstack_core-4.4.1.dev2.dist-info/plux.json,sha256=D6TnYFqBjqWQlue5SHmyLXkSO1A9aIqd7P7zlWdGtuY,20712
1290
+ localstack_core-4.4.1.dev2.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
+ localstack_core-4.4.1.dev2.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"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", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "stop_server=localstack.dns.plugins:stop_server"], "localstack.cloudformation.resource_providers": ["AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "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::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin"], "localstack.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_package", "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", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package"], "localstack.hooks.on_infra_start": ["register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "_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", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "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.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.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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"]}
@@ -1 +0,0 @@
1
- {"localstack.cloudformation.resource_providers": ["AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "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::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "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::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin"], "localstack.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_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", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package"], "localstack.hooks.on_infra_start": ["_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", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "_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", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "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", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "_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.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "publish_metrics=localstack.utils.analytics.metrics: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", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "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.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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "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"]}