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.
Files changed (23) hide show
  1. localstack/services/cloudformation/engine/v2/change_set_model.py +2 -0
  2. localstack/services/cloudformation/engine/v2/change_set_model_describer.py +17 -0
  3. localstack/services/cloudformation/engine/v2/change_set_model_executor.py +12 -1
  4. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +24 -65
  5. localstack/services/cloudformation/engine/v2/change_set_model_transform.py +51 -10
  6. localstack/services/cloudformation/engine/v2/change_set_model_visitor.py +5 -0
  7. localstack/services/cloudformation/provider.py +1 -1
  8. localstack/services/cloudformation/stores.py +29 -19
  9. localstack/services/cloudformation/v2/entities.py +2 -0
  10. localstack/services/cloudformation/v2/provider.py +10 -0
  11. localstack/testing/pytest/cloudformation/fixtures.py +10 -0
  12. localstack/version.py +2 -2
  13. {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/METADATA +1 -1
  14. {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/RECORD +22 -22
  15. localstack_core-4.7.1.dev15.dist-info/plux.json +1 -0
  16. localstack_core-4.7.1.dev13.dist-info/plux.json +0 -1
  17. {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack +0 -0
  18. {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack-supervisor +0 -0
  19. {localstack_core-4.7.1.dev13.data → localstack_core-4.7.1.dev15.data}/scripts/localstack.bat +0 -0
  20. {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/WHEEL +0 -0
  21. {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/entry_points.txt +0 -0
  22. {localstack_core-4.7.1.dev13.dist-info → localstack_core-4.7.1.dev15.dist-info}/licenses/LICENSE.txt +0 -0
  23. {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, parameters=self.resolved_parameters, outputs=self.outputs
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 get_cloudformation_store
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
- transformed_before_template = self._apply_global_transform(
217
- global_transform=before_global_transform,
218
- parameters=parameters_before,
219
- template=transformed_before_template,
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
- transformed_after_template = self._apply_global_transform(
230
- global_transform=after_global_transform,
231
- parameters=parameters_after,
232
- template=transformed_after_template,
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
- output_keys = {}
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 output_keys:
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
- output_keys[export_name],
45
+ output["OutputValue"],
44
46
  stack.stack_id,
45
47
  )
46
- entry = {
47
- "ExportingStackId": stack.stack_id,
48
- "Name": export_name,
49
- "Value": output["OutputValue"],
50
- }
51
- exports.append(entry)
52
- output_keys[export_name] = stack.stack_id
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
- for export in store.exports:
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.dev13'
21
- __version_tuple__ = version_tuple = (4, 7, 1, 'dev13')
20
+ __version__ = version = '4.7.1.dev15'
21
+ __version_tuple__ = version_tuple = (4, 7, 1, 'dev15')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.7.1.dev13
3
+ Version: 4.7.1.dev15
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ localstack/deprecations.py,sha256=mNXTebZ8kSbQjFKz0LbT-g1Kdr0CE8bhEgZfHV3IX0s,15
4
4
  localstack/openapi.yaml,sha256=B803NmpwsxG8PHpHrdZYBrUYjnrRh7B_JX0XuNynuFs,30237
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
6
  localstack/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- localstack/version.py,sha256=ZHYZoK0ncN1JyesyQrwpthcw4UlPadQ0IeocG1Pin1U,526
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=MpC_VjsHjUKSOvSpjUtQSc2zUVWEV6xEfshCPFWp0l0,52912
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=WVJTEt0nmd8Jj1w87Mo_ryPTSEnbwvzZAVFs9b9WUtc,5125
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=AYAUElBjNjJsjXFHm1E3xisGeKrBZ6t1FU-4TmN_PgU,55570
315
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=Y1mvD57gBCSQ4VjVTwebDGeaDv9_a8dNCqOEZq5u5Fg,9075
316
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=67fR-G_xqbYoFUYB7M-SJ5DtuICsY2oetLiRhECbwHc,21350
317
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=fwz-Jj0-3g6nalCiTuF28qOdzh2tUa9edEW9EmlTeS8,51791
318
- localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=P3iJhAJd2w2E4WevqifAgdBs8tPqk5BuSJYxXs5HpOY,11398
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=JERT55YkPF-UHzG-sk958mpyEq2Gxz4smY8xwDbhIRQ,7666
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=XBbHVZIvCsyKhw6IO7vmozRsobFpObznhSGBJm9WSA0,10415
339
- localstack/services/cloudformation/v2/provider.py,sha256=UUJ3atTHM-crj23hk-q5h5tI45kp3BnEP8SqP6o_Kpk,53021
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=JDuRf6joMhR60GwLhRT9NWCpXghvf5JNAVNVws9wWqk,8978
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.dev13.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1288
- localstack_core-4.7.1.dev13.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1289
- localstack_core-4.7.1.dev13.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1290
- localstack_core-4.7.1.dev13.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1291
- localstack_core-4.7.1.dev13.dist-info/METADATA,sha256=rFqEzzwIILkGypz8JJ2rOs3E3fGUmOAWBouneThj7PE,5570
1292
- localstack_core-4.7.1.dev13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1293
- localstack_core-4.7.1.dev13.dist-info/entry_points.txt,sha256=-GFtw80qM_1GQIDUcyqXojJvnqvP_8lK1Vc-M9ShaJE,20668
1294
- localstack_core-4.7.1.dev13.dist-info/plux.json,sha256=cal0vj-hd2jMt5T6ObmPfEuPUgVjyo8o7dGC_PWBvx4,20891
1295
- localstack_core-4.7.1.dev13.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1296
- localstack_core-4.7.1.dev13.dist-info/RECORD,,
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"]}