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.
- localstack/services/cloudformation/engine/v2/change_set_model.py +18 -7
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +22 -2
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +11 -1
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +110 -49
- localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +3 -0
- localstack/version.py +2 -2
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/METADATA +1 -1
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/RECORD +16 -16
- localstack_core-4.4.1.dev2.dist-info/plux.json +1 -0
- localstack_core-4.4.1.dev1.dist-info/plux.json +0 -1
- {localstack_core-4.4.1.dev1.data → localstack_core-4.4.1.dev2.data}/scripts/localstack +0 -0
- {localstack_core-4.4.1.dev1.data → localstack_core-4.4.1.dev2.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.4.1.dev1.data → localstack_core-4.4.1.dev2.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/WHEEL +0 -0
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/top_level.txt +0 -0
@@ -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
|
-
|
371
|
-
|
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
|
-
|
378
|
-
|
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
|
-
|
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
|
-
|
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
|
-
#
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
161
|
-
|
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
|
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
|
-
|
309
|
-
|
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
|
-
|
323
|
-
|
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.
|
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
|
-
) ->
|
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) ->
|
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) ->
|
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
|
-
|
506
|
-
|
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
|
-
|
547
|
-
|
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.
|
21
|
-
__version_tuple__ = version_tuple = (4, 4, 1, '
|
20
|
+
__version__ = version = '4.4.1.dev2'
|
21
|
+
__version_tuple__ = version_tuple = (4, 4, 1, 'dev2')
|
@@ -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=
|
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=
|
314
|
-
localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=
|
315
|
-
localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=
|
316
|
-
localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=
|
317
|
-
localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=
|
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.
|
1283
|
-
localstack_core-4.4.1.
|
1284
|
-
localstack_core-4.4.1.
|
1285
|
-
localstack_core-4.4.1.
|
1286
|
-
localstack_core-4.4.1.
|
1287
|
-
localstack_core-4.4.1.
|
1288
|
-
localstack_core-4.4.1.
|
1289
|
-
localstack_core-4.4.1.
|
1290
|
-
localstack_core-4.4.1.
|
1291
|
-
localstack_core-4.4.1.
|
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"]}
|
File without changes
|
{localstack_core-4.4.1.dev1.data → localstack_core-4.4.1.dev2.data}/scripts/localstack-supervisor
RENAMED
File without changes
|
File without changes
|
File without changes
|
{localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/entry_points.txt
RENAMED
File without changes
|
{localstack_core-4.4.1.dev1.dist-info → localstack_core-4.4.1.dev2.dist-info}/licenses/LICENSE.txt
RENAMED
File without changes
|
File without changes
|