localstack-core 4.7.1.dev13__py3-none-any.whl → 4.7.1.dev15__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 +2 -0
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py +17 -0
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +12 -1
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +24 -65
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py +51 -10
- localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +5 -0
- localstack/services/cloudformation/provider.py +1 -1
- localstack/services/cloudformation/stores.py +29 -19
- localstack/services/cloudformation/v2/entities.py +2 -0
- localstack/services/cloudformation/v2/provider.py +10 -0
- localstack/testing/pytest/cloudformation/fixtures.py +10 -0
- localstack/version.py +2 -2
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/METADATA +1 -1
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/RECORD +22 -22
- localstack_core-4.7.1.dev15.dist-info/plux.json +1 -0
- localstack_core-4.7.1.dev13.dist-info/plux.json +0 -1
- {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack +0 -0
- {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/WHEEL +0 -0
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/top_level.txt +0 -0
|
@@ -490,6 +490,7 @@ FnSelect: Final[str] = "Fn::Select"
|
|
|
490
490
|
FnSplit: Final[str] = "Fn::Split"
|
|
491
491
|
FnGetAZs: Final[str] = "Fn::GetAZs"
|
|
492
492
|
FnBase64: Final[str] = "Fn::Base64"
|
|
493
|
+
FnImportValue: Final[str] = "Fn::ImportValue"
|
|
493
494
|
INTRINSIC_FUNCTIONS: Final[set[str]] = {
|
|
494
495
|
RefKey,
|
|
495
496
|
RefConditionKey,
|
|
@@ -507,6 +508,7 @@ INTRINSIC_FUNCTIONS: Final[set[str]] = {
|
|
|
507
508
|
FnSplit,
|
|
508
509
|
FnGetAZs,
|
|
509
510
|
FnBase64,
|
|
511
|
+
FnImportValue,
|
|
510
512
|
}
|
|
511
513
|
|
|
512
514
|
|
|
@@ -213,3 +213,20 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
|
|
|
213
213
|
if not is_nothing(after_resource) and after_resource.physical_resource_id is None:
|
|
214
214
|
after_resource.physical_resource_id = CHANGESET_KNOWN_AFTER_APPLY
|
|
215
215
|
return delta
|
|
216
|
+
|
|
217
|
+
def visit_node_intrinsic_function_fn_import_value(
|
|
218
|
+
self, node_intrinsic_function: NodeIntrinsicFunction
|
|
219
|
+
) -> PreprocEntityDelta:
|
|
220
|
+
delta = super().visit_node_intrinsic_function_fn_import_value(
|
|
221
|
+
node_intrinsic_function=node_intrinsic_function
|
|
222
|
+
)
|
|
223
|
+
after_value = delta.after
|
|
224
|
+
if is_nothing(after_value) and self._include_property_values:
|
|
225
|
+
# TODO find correct way to obtain parent resource
|
|
226
|
+
resource_name = node_intrinsic_function.scope.split("/")[2]
|
|
227
|
+
export_name = node_intrinsic_function.arguments.value
|
|
228
|
+
|
|
229
|
+
self._change_set.status_reason = f"[WARN] --include-property-values option can return incomplete ChangeSet data because: ChangeSet creation failed for resource [{resource_name}] because: No export named {export_name}"
|
|
230
|
+
delta.after = "{{changeSet:KNOWN_AFTER_APPLY}}"
|
|
231
|
+
|
|
232
|
+
return delta
|
|
@@ -49,6 +49,7 @@ class ChangeSetModelExecutorResult:
|
|
|
49
49
|
resources: dict[str, ResolvedResource]
|
|
50
50
|
parameters: dict
|
|
51
51
|
outputs: dict
|
|
52
|
+
exports: dict
|
|
52
53
|
|
|
53
54
|
|
|
54
55
|
class ChangeSetModelExecutor(ChangeSetModelPreproc):
|
|
@@ -56,18 +57,23 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
|
|
|
56
57
|
resources: Final[dict[str, ResolvedResource]]
|
|
57
58
|
outputs: Final[dict]
|
|
58
59
|
resolved_parameters: Final[dict]
|
|
60
|
+
exports: Final[dict]
|
|
59
61
|
|
|
60
62
|
def __init__(self, change_set: ChangeSet):
|
|
61
63
|
super().__init__(change_set=change_set)
|
|
62
64
|
self.resources = dict()
|
|
63
65
|
self.outputs = dict()
|
|
64
66
|
self.resolved_parameters = dict()
|
|
67
|
+
self.exports = dict()
|
|
65
68
|
|
|
66
69
|
# TODO: use a structured type for the return value
|
|
67
70
|
def execute(self) -> ChangeSetModelExecutorResult:
|
|
68
71
|
self.process()
|
|
69
72
|
return ChangeSetModelExecutorResult(
|
|
70
|
-
resources=self.resources,
|
|
73
|
+
resources=self.resources,
|
|
74
|
+
parameters=self.resolved_parameters,
|
|
75
|
+
outputs=self.outputs,
|
|
76
|
+
exports=self.exports,
|
|
71
77
|
)
|
|
72
78
|
|
|
73
79
|
def visit_node_parameter(self, node_parameter: NodeParameter) -> PreprocEntityDelta:
|
|
@@ -221,6 +227,11 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
|
|
|
221
227
|
after = delta.after
|
|
222
228
|
if is_nothing(after) or (isinstance(after, PreprocOutput) and after.condition is False):
|
|
223
229
|
return delta
|
|
230
|
+
|
|
231
|
+
# TODO validate export name duplication in same template and all exports
|
|
232
|
+
if delta.after.export:
|
|
233
|
+
self.exports[delta.after.export.get("Name")] = delta.after.value
|
|
234
|
+
|
|
224
235
|
self.outputs[delta.after.name] = delta.after.value
|
|
225
236
|
return delta
|
|
226
237
|
|
|
@@ -10,11 +10,6 @@ from botocore.exceptions import ClientError
|
|
|
10
10
|
from localstack import config
|
|
11
11
|
from localstack.aws.api.ec2 import AvailabilityZoneList, DescribeAvailabilityZonesResult
|
|
12
12
|
from localstack.aws.connect import connect_to
|
|
13
|
-
from localstack.services.cloudformation.engine.transformers import (
|
|
14
|
-
Transformer,
|
|
15
|
-
execute_macro,
|
|
16
|
-
transformers,
|
|
17
|
-
)
|
|
18
13
|
from localstack.services.cloudformation.engine.v2.change_set_model import (
|
|
19
14
|
ChangeSetEntity,
|
|
20
15
|
ChangeType,
|
|
@@ -47,7 +42,9 @@ from localstack.services.cloudformation.engine.v2.change_set_model import (
|
|
|
47
42
|
from localstack.services.cloudformation.engine.v2.change_set_model_visitor import (
|
|
48
43
|
ChangeSetModelVisitor,
|
|
49
44
|
)
|
|
50
|
-
from localstack.services.cloudformation.stores import
|
|
45
|
+
from localstack.services.cloudformation.stores import (
|
|
46
|
+
exports_map,
|
|
47
|
+
)
|
|
51
48
|
from localstack.services.cloudformation.v2.entities import ChangeSet
|
|
52
49
|
from localstack.utils.aws.arns import get_partition
|
|
53
50
|
from localstack.utils.objects import get_value_from_path
|
|
@@ -609,65 +606,6 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
|
|
|
609
606
|
)
|
|
610
607
|
return delta
|
|
611
608
|
|
|
612
|
-
def _compute_fn_transform(self, args: dict[str, Any]) -> Any:
|
|
613
|
-
# TODO: add typing to arguments before this level.
|
|
614
|
-
# TODO: add schema validation
|
|
615
|
-
# TODO: add support for other transform types
|
|
616
|
-
|
|
617
|
-
account_id = self._change_set.account_id
|
|
618
|
-
region_name = self._change_set.region_name
|
|
619
|
-
transform_name: str = args.get("Name")
|
|
620
|
-
if not isinstance(transform_name, str):
|
|
621
|
-
raise RuntimeError("Invalid or missing Fn::Transform 'Name' argument")
|
|
622
|
-
transform_parameters: dict = args.get("Parameters")
|
|
623
|
-
if not isinstance(transform_parameters, dict):
|
|
624
|
-
raise RuntimeError("Invalid or missing Fn::Transform 'Parameters' argument")
|
|
625
|
-
|
|
626
|
-
if transform_name in transformers:
|
|
627
|
-
# TODO: port and refactor this 'transformers' logic to this package.
|
|
628
|
-
builtin_transformer_class = transformers[transform_name]
|
|
629
|
-
builtin_transformer: Transformer = builtin_transformer_class()
|
|
630
|
-
transform_output: Any = builtin_transformer.transform(
|
|
631
|
-
account_id=account_id, region_name=region_name, parameters=transform_parameters
|
|
632
|
-
)
|
|
633
|
-
return transform_output
|
|
634
|
-
|
|
635
|
-
macros_store = get_cloudformation_store(
|
|
636
|
-
account_id=account_id, region_name=region_name
|
|
637
|
-
).macros
|
|
638
|
-
if transform_name in macros_store:
|
|
639
|
-
# TODO: this formatting of stack parameters is odd but required to integrate with v1 execute_macro util.
|
|
640
|
-
# consider porting this utils and passing the plain list of parameters instead.
|
|
641
|
-
stack_parameters = {
|
|
642
|
-
parameter["ParameterKey"]: parameter
|
|
643
|
-
for parameter in self._change_set.stack.parameters
|
|
644
|
-
}
|
|
645
|
-
transform_output: Any = execute_macro(
|
|
646
|
-
account_id=account_id,
|
|
647
|
-
region_name=region_name,
|
|
648
|
-
parsed_template=dict(), # TODO: review the requirements for this argument.
|
|
649
|
-
macro=args, # TODO: review support for non dict bindings (v1).
|
|
650
|
-
stack_parameters=stack_parameters,
|
|
651
|
-
transformation_parameters=transform_parameters,
|
|
652
|
-
is_intrinsic=True,
|
|
653
|
-
)
|
|
654
|
-
return transform_output
|
|
655
|
-
|
|
656
|
-
raise RuntimeError(
|
|
657
|
-
f"Unsupported transform function '{transform_name}' in '{self._change_set.stack.stack_name}'"
|
|
658
|
-
)
|
|
659
|
-
|
|
660
|
-
def visit_node_intrinsic_function_fn_transform(
|
|
661
|
-
self, node_intrinsic_function: NodeIntrinsicFunction
|
|
662
|
-
) -> PreprocEntityDelta:
|
|
663
|
-
arguments_delta = self.visit(node_intrinsic_function.arguments)
|
|
664
|
-
delta = self._cached_apply(
|
|
665
|
-
scope=node_intrinsic_function.scope,
|
|
666
|
-
arguments_delta=arguments_delta,
|
|
667
|
-
resolver=self._compute_fn_transform,
|
|
668
|
-
)
|
|
669
|
-
return delta
|
|
670
|
-
|
|
671
609
|
def visit_node_intrinsic_function_fn_sub(
|
|
672
610
|
self, node_intrinsic_function: NodeIntrinsicFunction
|
|
673
611
|
) -> PreprocEntityDelta:
|
|
@@ -1200,3 +1138,24 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
|
|
|
1200
1138
|
if not is_nothing(output_after):
|
|
1201
1139
|
after.append(output_after)
|
|
1202
1140
|
return PreprocEntityDelta(before=before, after=after)
|
|
1141
|
+
|
|
1142
|
+
def visit_node_intrinsic_function_fn_import_value(
|
|
1143
|
+
self, node_intrinsic_function: NodeIntrinsicFunction
|
|
1144
|
+
) -> PreprocEntityDelta:
|
|
1145
|
+
def _compute_fn_import_value(string) -> str:
|
|
1146
|
+
if not isinstance(string, str):
|
|
1147
|
+
raise RuntimeError(f"Invalid parameter for import: '{string}'")
|
|
1148
|
+
|
|
1149
|
+
exports = exports_map(
|
|
1150
|
+
account_id=self._change_set.account_id, region_name=self._change_set.region_name
|
|
1151
|
+
)
|
|
1152
|
+
|
|
1153
|
+
return exports.get(string, {}).get("Value") or Nothing
|
|
1154
|
+
|
|
1155
|
+
arguments_delta = self.visit(node_intrinsic_function.arguments)
|
|
1156
|
+
delta = self._cached_apply(
|
|
1157
|
+
scope=node_intrinsic_function.scope,
|
|
1158
|
+
arguments_delta=arguments_delta,
|
|
1159
|
+
resolver=_compute_fn_import_value,
|
|
1160
|
+
)
|
|
1161
|
+
return delta
|
|
@@ -4,9 +4,12 @@ import os
|
|
|
4
4
|
from typing import Any, Final, Optional, TypedDict
|
|
5
5
|
|
|
6
6
|
import boto3
|
|
7
|
+
from botocore.exceptions import ClientError
|
|
7
8
|
from samtranslator.translator.transform import transform as transform_sam
|
|
8
9
|
|
|
10
|
+
from localstack.aws.connect import connect_to
|
|
9
11
|
from localstack.services.cloudformation.engine.policy_loader import create_policy_loader
|
|
12
|
+
from localstack.services.cloudformation.engine.template_preparer import parse_template
|
|
10
13
|
from localstack.services.cloudformation.engine.transformers import (
|
|
11
14
|
FailedTransformationException,
|
|
12
15
|
execute_macro,
|
|
@@ -27,12 +30,14 @@ from localstack.services.cloudformation.engine.v2.change_set_model_preproc impor
|
|
|
27
30
|
)
|
|
28
31
|
from localstack.services.cloudformation.stores import get_cloudformation_store
|
|
29
32
|
from localstack.services.cloudformation.v2.entities import ChangeSet
|
|
33
|
+
from localstack.utils import testutil
|
|
30
34
|
|
|
31
35
|
LOG = logging.getLogger(__name__)
|
|
32
36
|
|
|
33
37
|
SERVERLESS_TRANSFORM = "AWS::Serverless-2016-10-31"
|
|
34
38
|
EXTENSIONS_TRANSFORM = "AWS::LanguageExtensions"
|
|
35
39
|
SECRETSMANAGER_TRANSFORM = "AWS::SecretsManager-2020-07-23"
|
|
40
|
+
INCLUDE_TRANSFORM = "AWS::Include"
|
|
36
41
|
|
|
37
42
|
_SCOPE_TRANSFORM_TEMPLATE_OUTCOME: Final[Scope] = Scope("TRANSFORM_TEMPLATE_OUTCOME")
|
|
38
43
|
|
|
@@ -138,6 +143,32 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
|
|
|
138
143
|
if region_before is not None:
|
|
139
144
|
os.environ["AWS_DEFAULT_REGION"] = region_before
|
|
140
145
|
|
|
146
|
+
@staticmethod
|
|
147
|
+
def _apply_global_include(
|
|
148
|
+
global_transform: GlobalTransform, template: dict, parameters: dict, account_id, region_name
|
|
149
|
+
) -> dict:
|
|
150
|
+
location = global_transform.parameters.get("Location")
|
|
151
|
+
if not location or not location.startswith("s3://"):
|
|
152
|
+
raise FailedTransformationException(
|
|
153
|
+
transformation=INCLUDE_TRANSFORM,
|
|
154
|
+
message="Unexpected Location parameter for AWS::Include transformer: %s" % location,
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
s3_client = connect_to(aws_access_key_id=account_id, region_name=region_name).s3
|
|
158
|
+
bucket, _, path = location.removeprefix("s3://").partition("/")
|
|
159
|
+
try:
|
|
160
|
+
content = testutil.download_s3_object(s3_client, bucket, path)
|
|
161
|
+
except ClientError:
|
|
162
|
+
raise FailedTransformationException(
|
|
163
|
+
transformation=INCLUDE_TRANSFORM,
|
|
164
|
+
message="Error downloading S3 object '%s/%s'" % (bucket, path),
|
|
165
|
+
)
|
|
166
|
+
try:
|
|
167
|
+
template_to_include = parse_template(content)
|
|
168
|
+
except Exception as e:
|
|
169
|
+
raise FailedTransformationException(transformation=INCLUDE_TRANSFORM, message=str(e))
|
|
170
|
+
return {**template, **template_to_include}
|
|
171
|
+
|
|
141
172
|
@staticmethod
|
|
142
173
|
def _apply_global_macro_transformation(
|
|
143
174
|
account_id: str,
|
|
@@ -182,6 +213,14 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
|
|
|
182
213
|
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-secretsmanager.html
|
|
183
214
|
LOG.warning("%s is not yet supported. Ignoring.", SECRETSMANAGER_TRANSFORM)
|
|
184
215
|
transformed_template = template
|
|
216
|
+
elif transform_name == INCLUDE_TRANSFORM:
|
|
217
|
+
transformed_template = self._apply_global_include(
|
|
218
|
+
global_transform=global_transform,
|
|
219
|
+
region_name=self._change_set.region_name,
|
|
220
|
+
account_id=self._change_set.account_id,
|
|
221
|
+
template=template,
|
|
222
|
+
parameters=parameters,
|
|
223
|
+
)
|
|
185
224
|
else:
|
|
186
225
|
transformed_template = self._apply_global_macro_transformation(
|
|
187
226
|
account_id=self._change_set.account_id,
|
|
@@ -213,11 +252,12 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
|
|
|
213
252
|
if not transformed_before_template:
|
|
214
253
|
transformed_before_template = self._before_template
|
|
215
254
|
for before_global_transform in transform_before:
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
255
|
+
if not is_nothing(before_global_transform.name):
|
|
256
|
+
transformed_before_template = self._apply_global_transform(
|
|
257
|
+
global_transform=before_global_transform,
|
|
258
|
+
parameters=parameters_before,
|
|
259
|
+
template=transformed_before_template,
|
|
260
|
+
)
|
|
221
261
|
self._before_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_before_template
|
|
222
262
|
|
|
223
263
|
transformed_after_template = self._after_template
|
|
@@ -226,11 +266,12 @@ class ChangeSetModelTransform(ChangeSetModelPreproc):
|
|
|
226
266
|
if not transformed_after_template:
|
|
227
267
|
transformed_after_template = self._after_template
|
|
228
268
|
for after_global_transform in transform_after:
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
269
|
+
if not is_nothing(after_global_transform.name):
|
|
270
|
+
transformed_after_template = self._apply_global_transform(
|
|
271
|
+
global_transform=after_global_transform,
|
|
272
|
+
parameters=parameters_after,
|
|
273
|
+
template=transformed_after_template,
|
|
274
|
+
)
|
|
234
275
|
self._after_cache[_SCOPE_TRANSFORM_TEMPLATE_OUTCOME] = transformed_after_template
|
|
235
276
|
|
|
236
277
|
self._save_runtime_cache()
|
|
@@ -177,6 +177,11 @@ class ChangeSetModelVisitor(abc.ABC):
|
|
|
177
177
|
):
|
|
178
178
|
self.visit_children(node_intrinsic_function)
|
|
179
179
|
|
|
180
|
+
def visit_node_intrinsic_function_fn_import_value(
|
|
181
|
+
self, node_intrinsic_function: NodeIntrinsicFunction
|
|
182
|
+
):
|
|
183
|
+
self.visit_children(node_intrinsic_function)
|
|
184
|
+
|
|
180
185
|
def visit_node_divergence(self, node_divergence: NodeDivergence):
|
|
181
186
|
self.visit_children(node_divergence)
|
|
182
187
|
|
|
@@ -927,7 +927,7 @@ class CloudformationProvider(CloudformationApi):
|
|
|
927
927
|
self, context: RequestContext, next_token: NextToken = None, **kwargs
|
|
928
928
|
) -> ListExportsOutput:
|
|
929
929
|
state = get_cloudformation_store(context.account_id, context.region)
|
|
930
|
-
return ListExportsOutput(Exports=state.exports)
|
|
930
|
+
return ListExportsOutput(Exports=state.exports.values())
|
|
931
931
|
|
|
932
932
|
@handler("ListImports")
|
|
933
933
|
def list_imports(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from typing import Optional
|
|
3
3
|
|
|
4
|
-
from localstack.aws.api.cloudformation import StackStatus
|
|
4
|
+
from localstack.aws.api.cloudformation import Export, StackStatus
|
|
5
5
|
from localstack.services.cloudformation.engine.entities import Stack, StackChangeSet, StackSet
|
|
6
6
|
from localstack.services.cloudformation.v2.entities import ChangeSet as ChangeSetV2
|
|
7
7
|
from localstack.services.cloudformation.v2.entities import Stack as StackV2
|
|
@@ -25,31 +25,44 @@ class CloudFormationStore(BaseStore):
|
|
|
25
25
|
# maps macro ID to macros
|
|
26
26
|
macros: dict[str, dict] = LocalAttribute(default=dict)
|
|
27
27
|
|
|
28
|
-
# exports: dict[str, str]
|
|
29
28
|
@property
|
|
30
|
-
def exports(self):
|
|
31
|
-
exports =
|
|
32
|
-
|
|
29
|
+
def exports(self) -> dict[str, Export]:
|
|
30
|
+
exports = {}
|
|
31
|
+
|
|
33
32
|
for stack_id, stack in self.stacks.items():
|
|
33
|
+
if stack.status == StackStatus.DELETE_COMPLETE:
|
|
34
|
+
continue
|
|
35
|
+
|
|
34
36
|
for output in stack.resolved_outputs:
|
|
35
37
|
export_name = output.get("ExportName")
|
|
36
38
|
if not export_name:
|
|
37
39
|
continue
|
|
38
|
-
if export_name in
|
|
40
|
+
if export_name in exports.keys():
|
|
39
41
|
# TODO: raise exception on stack creation in case of duplicate exports
|
|
40
42
|
LOG.warning(
|
|
41
43
|
"Found duplicate export name %s in stacks: %s %s",
|
|
42
44
|
export_name,
|
|
43
|
-
|
|
45
|
+
output["OutputValue"],
|
|
44
46
|
stack.stack_id,
|
|
45
47
|
)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
exports[export_name] = Export(
|
|
49
|
+
ExportingStackId=stack.stack_id, Name=export_name, Value=output["OutputValue"]
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
return exports
|
|
53
|
+
|
|
54
|
+
@property
|
|
55
|
+
def exports_v2(self) -> dict[str, Export]:
|
|
56
|
+
exports = dict()
|
|
57
|
+
stacks_v2 = self.stacks_v2.values()
|
|
58
|
+
for stack in stacks_v2:
|
|
59
|
+
if stack.status == StackStatus.DELETE_COMPLETE:
|
|
60
|
+
continue
|
|
61
|
+
for export_name, export_value in stack.resolved_exports.items():
|
|
62
|
+
exports[export_name] = Export(
|
|
63
|
+
ExportingStackId=stack.stack_id, Name=export_name, Value=export_value
|
|
64
|
+
)
|
|
65
|
+
|
|
53
66
|
return exports
|
|
54
67
|
|
|
55
68
|
|
|
@@ -128,9 +141,6 @@ def find_change_set(
|
|
|
128
141
|
return None
|
|
129
142
|
|
|
130
143
|
|
|
131
|
-
def exports_map(account_id: str, region_name: str):
|
|
132
|
-
result = {}
|
|
144
|
+
def exports_map(account_id: str, region_name: str) -> dict[str, Export]:
|
|
133
145
|
store = get_cloudformation_store(account_id, region_name)
|
|
134
|
-
|
|
135
|
-
result[export["Name"]] = export
|
|
136
|
-
return result
|
|
146
|
+
return {**store.exports, **store.exports_v2}
|
|
@@ -66,6 +66,7 @@ class Stack:
|
|
|
66
66
|
resolved_resources: dict[str, ResolvedResource]
|
|
67
67
|
resolved_outputs: dict[str, str]
|
|
68
68
|
resource_states: dict[str, StackResource]
|
|
69
|
+
resolved_exports: dict[str, str]
|
|
69
70
|
|
|
70
71
|
def __init__(
|
|
71
72
|
self,
|
|
@@ -111,6 +112,7 @@ class Stack:
|
|
|
111
112
|
self.resolved_outputs = {}
|
|
112
113
|
self.resource_states = {}
|
|
113
114
|
self.events = []
|
|
115
|
+
self.resolved_exports = {}
|
|
114
116
|
|
|
115
117
|
def set_stack_status(self, status: StackStatus, reason: StackStatusReason | None = None):
|
|
116
118
|
self.status = status
|
|
@@ -43,6 +43,7 @@ from localstack.aws.api.cloudformation import (
|
|
|
43
43
|
IncludePropertyValues,
|
|
44
44
|
InsufficientCapabilitiesException,
|
|
45
45
|
InvalidChangeSetStatusException,
|
|
46
|
+
ListExportsOutput,
|
|
46
47
|
ListStackResourcesOutput,
|
|
47
48
|
ListStacksOutput,
|
|
48
49
|
LogicalResourceId,
|
|
@@ -459,6 +460,8 @@ class CloudformationProviderV2(CloudformationProvider):
|
|
|
459
460
|
change_set.stack.resolved_resources = result.resources
|
|
460
461
|
change_set.stack.resolved_parameters = result.parameters
|
|
461
462
|
change_set.stack.resolved_outputs = result.outputs
|
|
463
|
+
change_set.stack.resolved_exports = result.exports
|
|
464
|
+
|
|
462
465
|
# if the deployment succeeded, update the stack's template representation to that
|
|
463
466
|
# which was just deployed
|
|
464
467
|
change_set.stack.template = change_set.template
|
|
@@ -1286,3 +1289,10 @@ class CloudformationProviderV2(CloudformationProvider):
|
|
|
1286
1289
|
stack.set_stack_status(StackStatus.DELETE_FAILED)
|
|
1287
1290
|
|
|
1288
1291
|
start_worker_thread(_run)
|
|
1292
|
+
|
|
1293
|
+
@handler("ListExports")
|
|
1294
|
+
def list_exports(
|
|
1295
|
+
self, context: RequestContext, next_token: NextToken = None, **kwargs
|
|
1296
|
+
) -> ListExportsOutput:
|
|
1297
|
+
store = get_cloudformation_store(account_id=context.account_id, region_name=context.region)
|
|
1298
|
+
return ListExportsOutput(Exports=store.exports_v2.values())
|
|
@@ -131,6 +131,11 @@ def capture_update_process(aws_client_no_retry, cleanups, capture_per_resource_e
|
|
|
131
131
|
ChangeSetName=change_set_name,
|
|
132
132
|
TemplateBody=t1,
|
|
133
133
|
ChangeSetType="CREATE",
|
|
134
|
+
Capabilities=[
|
|
135
|
+
"CAPABILITY_IAM",
|
|
136
|
+
"CAPABILITY_NAMED_IAM",
|
|
137
|
+
"CAPABILITY_AUTO_EXPAND",
|
|
138
|
+
],
|
|
134
139
|
Parameters=[{"ParameterKey": k, "ParameterValue": v} for (k, v) in p1.items()],
|
|
135
140
|
)
|
|
136
141
|
snapshot.match("create-change-set-1", change_set_details)
|
|
@@ -189,6 +194,11 @@ def capture_update_process(aws_client_no_retry, cleanups, capture_per_resource_e
|
|
|
189
194
|
TemplateBody=t2,
|
|
190
195
|
ChangeSetType="UPDATE",
|
|
191
196
|
Parameters=[{"ParameterKey": k, "ParameterValue": v} for (k, v) in p2.items()],
|
|
197
|
+
Capabilities=[
|
|
198
|
+
"CAPABILITY_IAM",
|
|
199
|
+
"CAPABILITY_NAMED_IAM",
|
|
200
|
+
"CAPABILITY_AUTO_EXPAND",
|
|
201
|
+
],
|
|
192
202
|
)
|
|
193
203
|
snapshot.match("create-change-set-2", change_set_details)
|
|
194
204
|
stack_id = change_set_details["StackId"]
|
localstack/version.py
CHANGED
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '4.7.1.
|
|
21
|
-
__version_tuple__ = version_tuple = (4, 7, 1, '
|
|
20
|
+
__version__ = version = '4.7.1.dev15'
|
|
21
|
+
__version_tuple__ = version_tuple = (4, 7, 1, 'dev15')
|
|
@@ -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=PutLXlh2o1f811NejUfsQj1x2i7sIymd3TtB87P0_1k,526
|
|
8
8
|
localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
|
|
10
10
|
localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
|
|
@@ -289,11 +289,11 @@ localstack/services/cloudformation/deploy.html,sha256=g_t0nI5Z44bsPYFynbisF3GLl8
|
|
|
289
289
|
localstack/services/cloudformation/deploy_ui.py,sha256=w5v_pfn62TG72JiwRibmfCKXFiZKB4qPxxWfXgxscDE,1671
|
|
290
290
|
localstack/services/cloudformation/deployment_utils.py,sha256=86NQNVZ7fwFHPrtV_H1ZtpT7fQVGOWnp1jYTPSWuFDw,10074
|
|
291
291
|
localstack/services/cloudformation/plugins.py,sha256=8E1i9U65RnjZJoXz214ceV8OXcnpHNU44unK3raXkWs,336
|
|
292
|
-
localstack/services/cloudformation/provider.py,sha256=
|
|
292
|
+
localstack/services/cloudformation/provider.py,sha256=U79fqNKc8X6po8Gv4fuzuhSoMq-xIhXa3Q516PBooNo,52921
|
|
293
293
|
localstack/services/cloudformation/provider_utils.py,sha256=37GrPaTuLEqOT57J1AVETQl6pav0bC7ItiRzyyZgstc,8994
|
|
294
294
|
localstack/services/cloudformation/resource_provider.py,sha256=Sv5_-odlKjKooMwgDSWyeG8_eeDR1nV3rByeW0Klo5o,22919
|
|
295
295
|
localstack/services/cloudformation/service_models.py,sha256=uo2sr2PIazsdE0-PfdoaaG9BEbKpjPP8ChCIJfX0pm8,5186
|
|
296
|
-
localstack/services/cloudformation/stores.py,sha256=
|
|
296
|
+
localstack/services/cloudformation/stores.py,sha256=rBY3yDLW-DZB8dAjHuncZbNE1Jsj_OpOxQX7xRHgLhc,5529
|
|
297
297
|
localstack/services/cloudformation/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
298
298
|
localstack/services/cloudformation/engine/changes.py,sha256=xeRkoHuf9hdqgWzIwfpjExAyjh622hmjX8ehNh3rfDs,363
|
|
299
299
|
localstack/services/cloudformation/engine/entities.py,sha256=2Cw5kP1ubOGWegqy9692cCwpkwmztf4GiftMybO5VVU,15969
|
|
@@ -311,13 +311,13 @@ localstack/services/cloudformation/engine/types.py,sha256=YIhmTrO__obIviYvzzCovK
|
|
|
311
311
|
localstack/services/cloudformation/engine/validations.py,sha256=brq7s8O8exA5kvnfzR9ulOtQ7i4konrWQs07-0h_ByE,2847
|
|
312
312
|
localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUGen9Mz8SjosBuodpV5XvsCSn9bDg,2164
|
|
313
313
|
localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
314
|
-
localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=
|
|
315
|
-
localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=
|
|
316
|
-
localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=
|
|
317
|
-
localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=
|
|
318
|
-
localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=
|
|
314
|
+
localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=SDeY8xS3VI7fZEZv35AeN4yGmji_JSM1O_hWFgJvb-Y,55635
|
|
315
|
+
localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=wIk3tphi60zB6o4e1_TflftRGWmqQiTOea1o3NDwVe8,9979
|
|
316
|
+
localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=_nrUmslOjPTY1o6EUCxD3Heul4pDAYbh-wiMYXVEG7w,21673
|
|
317
|
+
localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=poNC0gVfyD_dS7G-giaHJ-e-GKFG5u-PJvBS9X2UFkg,49679
|
|
318
|
+
localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=qZz3TcfLnuBkp5HvpkmWxqIYJKNvlEqsQZ5WYVekBZ8,13417
|
|
319
319
|
localstack/services/cloudformation/engine/v2/change_set_model_validator.py,sha256=NfS6TxbmMSXLbqba4be6wyWMgCGiQhsbqJ-9r49D_-E,2044
|
|
320
|
-
localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=
|
|
320
|
+
localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=ygUVPgM3b8SAXLLhLeGSD2k_Oo81ukFkug6bcmvRSJg,7843
|
|
321
321
|
localstack/services/cloudformation/models/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
|
|
322
322
|
localstack/services/cloudformation/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
323
323
|
localstack/services/cloudformation/resource_providers/aws_cloudformation_macro.py,sha256=Grn3dP1jANRlVO9HyKQV5GHv0x1eNRBeaIYhgn-FKv4,2812
|
|
@@ -335,8 +335,8 @@ localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcon
|
|
|
335
335
|
localstack/services/cloudformation/scaffolding/__main__.py,sha256=lshYhoz-xAFleqE75cDG1hwsfGT9ohP30ODAIHd9bx4,30960
|
|
336
336
|
localstack/services/cloudformation/scaffolding/propgen.py,sha256=9YsSCkDegcU_Yp8Sfw8eNV26N5ibOlLC6Hg6lxPeBBM,7949
|
|
337
337
|
localstack/services/cloudformation/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
338
|
-
localstack/services/cloudformation/v2/entities.py,sha256=
|
|
339
|
-
localstack/services/cloudformation/v2/provider.py,sha256=
|
|
338
|
+
localstack/services/cloudformation/v2/entities.py,sha256=xXQ53aB_DcDlCucwe3iUFNKtasrYgFU2zyFEnXhkyQU,10487
|
|
339
|
+
localstack/services/cloudformation/v2/provider.py,sha256=OCM1bU6fF0xNOD96XVH7gcKMVw6dyVQzB8xJWeVANuU,53437
|
|
340
340
|
localstack/services/cloudformation/v2/utils.py,sha256=xy4Lcp4X8XGJ0OKfnsE7pnfMcFrtIH0Chw35qwjhZuw,148
|
|
341
341
|
localstack/services/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
342
342
|
localstack/services/cloudwatch/alarm_scheduler.py,sha256=XFllg0gI_WNV7cNxOcgXifzmbNA07OPpuEUuf37keP4,15663
|
|
@@ -1182,7 +1182,7 @@ localstack/testing/pytest/path_filter.py,sha256=U1V5qy23H7yZ6Tznr-MdveeH7TvCM_u4
|
|
|
1182
1182
|
localstack/testing/pytest/util.py,sha256=TQAAb_Cj5gTSX0VkenAbSabvyCkl7THxEj70PrT_H7Y,941
|
|
1183
1183
|
localstack/testing/pytest/validation_tracking.py,sha256=zGYn2r2n1xEe2Xq2JLPhS5dQJ9s29pIQEFpiF7ifehM,5630
|
|
1184
1184
|
localstack/testing/pytest/cloudformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1185
|
-
localstack/testing/pytest/cloudformation/fixtures.py,sha256=
|
|
1185
|
+
localstack/testing/pytest/cloudformation/fixtures.py,sha256=JWfNeT-GedkJ3tAfZivMwOwoNlmATRpORb8AHl666cg,9294
|
|
1186
1186
|
localstack/testing/pytest/stepfunctions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1187
1187
|
localstack/testing/pytest/stepfunctions/fixtures.py,sha256=m9gdU7opK1LoDKuUDTJKcuUfWi4LWHw0idL0_GNlkfo,32817
|
|
1188
1188
|
localstack/testing/pytest/stepfunctions/utils.py,sha256=L_Zc6-iDC76E5JsGAXltBIi_ZB3-vrCBTGcOcmfEO3g,32819
|
|
@@ -1284,13 +1284,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
|
|
|
1284
1284
|
localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1285
1285
|
localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
|
|
1286
1286
|
localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
|
|
1287
|
-
localstack_core-4.7.1.
|
|
1288
|
-
localstack_core-4.7.1.
|
|
1289
|
-
localstack_core-4.7.1.
|
|
1290
|
-
localstack_core-4.7.1.
|
|
1291
|
-
localstack_core-4.7.1.
|
|
1292
|
-
localstack_core-4.7.1.
|
|
1293
|
-
localstack_core-4.7.1.
|
|
1294
|
-
localstack_core-4.7.1.
|
|
1295
|
-
localstack_core-4.7.1.
|
|
1296
|
-
localstack_core-4.7.1.
|
|
1287
|
+
localstack_core-4.7.1.dev15.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
|
|
1288
|
+
localstack_core-4.7.1.dev15.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
|
|
1289
|
+
localstack_core-4.7.1.dev15.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
|
|
1290
|
+
localstack_core-4.7.1.dev15.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
|
|
1291
|
+
localstack_core-4.7.1.dev15.dist-info/METADATA,sha256=LLnorDYdKkMtwWFiz9OCCd7EqdfLsZCQHN5S1WInDAE,5570
|
|
1292
|
+
localstack_core-4.7.1.dev15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1293
|
+
localstack_core-4.7.1.dev15.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
|
|
1294
|
+
localstack_core-4.7.1.dev15.dist-info/plux.json,sha256=NYalxbsIHKq_GcOidSpagZPgNaDif6sdn71Hh-yFIu4,20891
|
|
1295
|
+
localstack_core-4.7.1.dev15.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
|
|
1296
|
+
localstack_core-4.7.1.dev15.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"localstack.cloudformation.resource_providers": ["AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "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::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "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::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "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::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.hooks.on_infra_start": ["delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "eager_load_services=localstack.services.plugins:eager_load_services", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints"], "localstack.packages": ["elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package"], "localstack.hooks.on_infra_shutdown": ["remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "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"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "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.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"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"localstack.hooks.on_infra_start": ["register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "_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", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "eager_load_services=localstack.services.plugins:eager_load_services", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info"], "localstack.cloudformation.resource_providers": ["AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "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::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "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::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "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::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package"], "localstack.hooks.on_infra_shutdown": ["remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_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.publisher:publish_metrics", "stop_server=localstack.dns.plugins:stop_server"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.hooks.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.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"]}
|
|
File without changes
|
{localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack-supervisor
RENAMED
|
File without changes
|
{localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack.bat
RENAMED
|
File without changes
|
|
File without changes
|
{localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/licenses/LICENSE.txt
RENAMED
|
File without changes
|
{localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/top_level.txt
RENAMED
|
File without changes
|