localstack-core 4.3.1.dev73__py3-none-any.whl → 4.3.1.dev75__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.
@@ -24,8 +24,15 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
24
24
  _include_property_values: Final[bool]
25
25
  _changes: Final[cfn_api.Changes]
26
26
 
27
- def __init__(self, node_template: NodeTemplate, include_property_values: bool):
28
- super().__init__(node_template=node_template)
27
+ def __init__(
28
+ self,
29
+ node_template: NodeTemplate,
30
+ before_resolved_resources: dict,
31
+ include_property_values: bool,
32
+ ):
33
+ super().__init__(
34
+ node_template=node_template, before_resolved_resources=before_resolved_resources
35
+ )
29
36
  self._include_property_values = include_property_values
30
37
  self._changes = list()
31
38
 
@@ -79,6 +86,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
79
86
  self,
80
87
  logical_id: str,
81
88
  type_: str,
89
+ physical_id: Optional[str],
82
90
  before_properties: Optional[PreprocProperties],
83
91
  after_properties: Optional[PreprocProperties],
84
92
  ) -> None:
@@ -92,6 +100,8 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
92
100
  resource_change["Action"] = action
93
101
  resource_change["LogicalResourceId"] = logical_id
94
102
  resource_change["ResourceType"] = type_
103
+ if physical_id:
104
+ resource_change["PhysicalResourceId"] = physical_id
95
105
  if self._include_property_values and before_properties is not None:
96
106
  before_context_properties = {PropertiesKey: before_properties.properties}
97
107
  before_context_properties_json_str = json.dumps(before_context_properties)
@@ -116,6 +126,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
116
126
  # Register a Modified if changed.
117
127
  self._register_resource_change(
118
128
  logical_id=name,
129
+ physical_id=before.physical_resource_id,
119
130
  type_=before.resource_type,
120
131
  before_properties=before.properties,
121
132
  after_properties=after.properties,
@@ -126,6 +137,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
126
137
  # Register a Removed for the previous type.
127
138
  self._register_resource_change(
128
139
  logical_id=name,
140
+ physical_id=before.physical_resource_id,
129
141
  type_=before.resource_type,
130
142
  before_properties=before.properties,
131
143
  after_properties=None,
@@ -133,6 +145,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
133
145
  # Register a Create for the next type.
134
146
  self._register_resource_change(
135
147
  logical_id=name,
148
+ physical_id=None,
136
149
  type_=after.resource_type,
137
150
  before_properties=None,
138
151
  after_properties=after.properties,
@@ -141,6 +154,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
141
154
  # Case: removal
142
155
  self._register_resource_change(
143
156
  logical_id=name,
157
+ physical_id=before.physical_resource_id,
144
158
  type_=before.resource_type,
145
159
  before_properties=before.properties,
146
160
  after_properties=None,
@@ -149,6 +163,7 @@ class ChangeSetModelDescriber(ChangeSetModelPreproc):
149
163
  # Case: addition
150
164
  self._register_resource_change(
151
165
  logical_id=name,
166
+ physical_id=None,
152
167
  type_=after.resource_type,
153
168
  before_properties=None,
154
169
  after_properties=after.properties,
@@ -1,7 +1,7 @@
1
1
  import copy
2
2
  import logging
3
3
  import uuid
4
- from typing import Any, Final, Optional
4
+ from typing import Final, Optional
5
5
 
6
6
  from localstack.aws.api.cloudformation import ChangeAction, StackStatus
7
7
  from localstack.constants import INTERNAL_AWS_SECRET_ACCESS_KEY
@@ -28,14 +28,17 @@ LOG = logging.getLogger(__name__)
28
28
 
29
29
 
30
30
  class ChangeSetModelExecutor(ChangeSetModelPreproc):
31
- change_set: Final[ChangeSet]
32
- # TODO: add typing.
31
+ _change_set: Final[ChangeSet]
32
+ # TODO: add typing for resolved resources and parameters.
33
33
  resources: Final[dict]
34
34
  resolved_parameters: Final[dict]
35
35
 
36
36
  def __init__(self, change_set: ChangeSet):
37
- super().__init__(node_template=change_set.update_graph)
38
- self.change_set = change_set
37
+ super().__init__(
38
+ node_template=change_set.update_graph,
39
+ before_resolved_resources=change_set.stack.resolved_resources,
40
+ )
41
+ self._change_set = change_set
39
42
  self.resources = dict()
40
43
  self.resolved_parameters = dict()
41
44
 
@@ -49,44 +52,35 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
49
52
  self.resolved_parameters[node_parameter.name] = delta.after
50
53
  return delta
51
54
 
55
+ def _after_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
56
+ after_resolved_resources = self.resources
57
+ return self._resource_physical_resource_id_from(
58
+ logical_resource_id=resource_logical_id, resolved_resources=after_resolved_resources
59
+ )
60
+
52
61
  def visit_node_resource(
53
62
  self, node_resource: NodeResource
54
63
  ) -> PreprocEntityDelta[PreprocResource, PreprocResource]:
64
+ """
65
+ Overrides the default preprocessing for NodeResource objects by annotating the
66
+ `after` delta with the physical resource ID, if side effects resulted in an update.
67
+ """
55
68
  delta = super().visit_node_resource(node_resource=node_resource)
56
69
  self._execute_on_resource_change(
57
70
  name=node_resource.name, before=delta.before, after=delta.after
58
71
  )
59
- return delta
60
-
61
- def _reduce_intrinsic_function_ref_value(self, preproc_value: Any) -> PreprocEntityDelta:
62
- if not isinstance(preproc_value, PreprocResource):
63
- return super()._reduce_intrinsic_function_ref_value(preproc_value=preproc_value)
64
-
65
- logical_id = preproc_value.name
66
-
67
- def _get_physical_id_of_resolved_resource(resolved_resource: dict) -> str:
68
- physical_resource_id = resolved_resource.get("PhysicalResourceId")
69
- if not isinstance(physical_resource_id, str):
72
+ after_resource = delta.after
73
+ if after_resource is not None and delta.before != delta.after:
74
+ after_logical_id = after_resource.logical_id
75
+ after_physical_id: Optional[str] = self._after_resource_physical_id(
76
+ resource_logical_id=after_logical_id
77
+ )
78
+ if after_physical_id is None:
70
79
  raise RuntimeError(
71
- f"No physical resource id found for resource '{logical_id}' during ChangeSet execution"
80
+ f"No PhysicalResourceId was found for resource '{after_physical_id}' post-update."
72
81
  )
73
- return physical_resource_id
74
-
75
- before_resolved_resources = self.change_set.stack.resolved_resources
76
- after_resolved_resources = self.resources
77
-
78
- before_physical_id = None
79
- if logical_id in before_resolved_resources:
80
- before_resolved_resource = before_resolved_resources[logical_id]
81
- before_physical_id = _get_physical_id_of_resolved_resource(before_resolved_resource)
82
- after_physical_id = None
83
- if logical_id in after_resolved_resources:
84
- after_resolved_resource = after_resolved_resources[logical_id]
85
- after_physical_id = _get_physical_id_of_resolved_resource(after_resolved_resource)
86
-
87
- if before_physical_id is None and after_physical_id is None:
88
- raise RuntimeError(f"No resource '{logical_id}' found during ChangeSet execution")
89
- return PreprocEntityDelta(before=before_physical_id, after=after_physical_id)
82
+ after_resource.physical_resource_id = after_physical_id
83
+ return delta
90
84
 
91
85
  def _execute_on_resource_change(
92
86
  self, name: str, before: Optional[PreprocResource], after: Optional[PreprocResource]
@@ -156,7 +150,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
156
150
  def _merge_before_properties(
157
151
  self, name: str, preproc_resource: PreprocResource
158
152
  ) -> PreprocProperties:
159
- if previous_resource_properties := self.change_set.stack.resolved_resources.get(
153
+ if previous_resource_properties := self._change_set.stack.resolved_resources.get(
160
154
  name, {}
161
155
  ).get("Properties"):
162
156
  return PreprocProperties(properties=previous_resource_properties)
@@ -174,7 +168,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
174
168
  ) -> None:
175
169
  LOG.debug("Executing resource action: %s for resource '%s'", action, logical_resource_id)
176
170
  resource_provider_executor = ResourceProviderExecutor(
177
- stack_name=self.change_set.stack.stack_name, stack_id=self.change_set.stack.stack_id
171
+ stack_name=self._change_set.stack.stack_name, stack_id=self._change_set.stack.stack_id
178
172
  )
179
173
  payload = self.create_resource_provider_payload(
180
174
  action=action,
@@ -199,7 +193,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
199
193
  reason,
200
194
  exc_info=LOG.isEnabledFor(logging.DEBUG),
201
195
  )
202
- stack = self.change_set.stack
196
+ stack = self._change_set.stack
203
197
  stack_status = stack.status
204
198
  if stack_status == StackStatus.CREATE_IN_PROGRESS:
205
199
  stack.set_stack_status(StackStatus.CREATE_FAILED, reason=reason)
@@ -226,7 +220,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
226
220
  reason,
227
221
  )
228
222
  # TODO: duplication
229
- stack = self.change_set.stack
223
+ stack = self._change_set.stack
230
224
  stack_status = stack.status
231
225
  if stack_status == StackStatus.CREATE_IN_PROGRESS:
232
226
  stack.set_stack_status(StackStatus.CREATE_FAILED, reason=reason)
@@ -247,7 +241,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
247
241
  ) -> Optional[ResourceProviderPayload]:
248
242
  # FIXME: use proper credentials
249
243
  creds: Credentials = {
250
- "accessKeyId": self.change_set.stack.account_id,
244
+ "accessKeyId": self._change_set.stack.account_id,
251
245
  "secretAccessKey": INTERNAL_AWS_SECRET_ACCESS_KEY,
252
246
  "sessionToken": "",
253
247
  }
@@ -268,14 +262,14 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
268
262
  raise NotImplementedError(f"Action '{action}' not handled")
269
263
 
270
264
  resource_provider_payload: ResourceProviderPayload = {
271
- "awsAccountId": self.change_set.stack.account_id,
265
+ "awsAccountId": self._change_set.stack.account_id,
272
266
  "callbackContext": {},
273
- "stackId": self.change_set.stack.stack_name,
267
+ "stackId": self._change_set.stack.stack_name,
274
268
  "resourceType": resource_type,
275
269
  "resourceTypeVersion": "000000",
276
270
  # TODO: not actually a UUID
277
271
  "bearerToken": str(uuid.uuid4()),
278
- "region": self.change_set.stack.region_name,
272
+ "region": self._change_set.stack.region_name,
279
273
  "action": str(action),
280
274
  "requestData": {
281
275
  "logicalResourceId": logical_resource_id,
@@ -61,20 +61,23 @@ class PreprocProperties:
61
61
 
62
62
 
63
63
  class PreprocResource:
64
- name: str
64
+ logical_id: str
65
+ physical_resource_id: Optional[str]
65
66
  condition: Optional[bool]
66
67
  resource_type: str
67
68
  properties: PreprocProperties
68
69
 
69
70
  def __init__(
70
71
  self,
71
- name: str,
72
+ logical_id: str,
73
+ physical_resource_id: str,
72
74
  condition: Optional[bool],
73
75
  resource_type: str,
74
76
  properties: PreprocProperties,
75
77
  ):
78
+ self.logical_id = logical_id
79
+ self.physical_resource_id = physical_resource_id
76
80
  self.condition = condition
77
- self.name = name
78
81
  self.resource_type = resource_type
79
82
  self.properties = properties
80
83
 
@@ -90,7 +93,7 @@ class PreprocResource:
90
93
  return False
91
94
  return all(
92
95
  [
93
- self.name == other.name,
96
+ self.logical_id == other.logical_id,
94
97
  self._compare_conditions(self.condition, other.condition),
95
98
  self.resource_type == other.resource_type,
96
99
  self.properties == other.properties,
@@ -125,10 +128,12 @@ class PreprocOutput:
125
128
 
126
129
  class ChangeSetModelPreproc(ChangeSetModelVisitor):
127
130
  _node_template: Final[NodeTemplate]
131
+ _before_resolved_resources: Final[dict]
128
132
  _processed: dict[Scope, Any]
129
133
 
130
- def __init__(self, node_template: NodeTemplate):
134
+ def __init__(self, node_template: NodeTemplate, before_resolved_resources: dict):
131
135
  self._node_template = node_template
136
+ self._before_resolved_resources = before_resolved_resources
132
137
  self._processed = dict()
133
138
 
134
139
  def process(self) -> None:
@@ -411,35 +416,49 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
411
416
  delta = self.visit(node_condition.body)
412
417
  return delta
413
418
 
414
- def _reduce_intrinsic_function_ref_value(self, preproc_value: Any) -> PreprocEntityDelta:
415
- if isinstance(preproc_value, PreprocResource):
416
- value = preproc_value.name
417
- else:
418
- value = preproc_value
419
- return PreprocEntityDelta(value, value)
419
+ def _resource_physical_resource_id_from(
420
+ self, logical_resource_id: str, resolved_resources: dict
421
+ ) -> Optional[str]:
422
+ # TODO: typing around resolved resources is needed and should be reflected here.
423
+ resolved_resource = resolved_resources.get(logical_resource_id)
424
+ if resolved_resource is None:
425
+ return None
426
+ physical_resource_id: Optional[str] = resolved_resource.get("PhysicalResourceId")
427
+ if not isinstance(physical_resource_id, str):
428
+ raise RuntimeError(f"No PhysicalResourceId found for resource '{logical_resource_id}'")
429
+ return physical_resource_id
430
+
431
+ def _before_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
432
+ # TODO: typing around resolved resources is needed and should be reflected here.
433
+ return self._resource_physical_resource_id_from(
434
+ logical_resource_id=resource_logical_id,
435
+ resolved_resources=self._before_resolved_resources,
436
+ )
437
+
438
+ def _after_resource_physical_id(self, resource_logical_id: str) -> Optional[str]:
439
+ return self._before_resource_physical_id(resource_logical_id=resource_logical_id)
420
440
 
421
441
  def visit_node_intrinsic_function_ref(
422
442
  self, node_intrinsic_function: NodeIntrinsicFunction
423
443
  ) -> PreprocEntityDelta:
424
444
  arguments_delta = self.visit(node_intrinsic_function.arguments)
425
-
426
- # TODO: add tests with created and deleted parameters and verify this logic holds.
427
445
  before_logical_id = arguments_delta.before
446
+ after_logical_id = arguments_delta.after
447
+
448
+ # TODO: extend this to support references to other types.
428
449
  before = None
429
450
  if before_logical_id is not None:
430
451
  before_delta = self._resolve_reference(logical_id=before_logical_id)
431
- before_value = before_delta.before
432
- before_ref_delta = self._reduce_intrinsic_function_ref_value(before_value)
433
- before = before_ref_delta.before
452
+ before = before_delta.before
453
+ if isinstance(before, PreprocResource):
454
+ before = before.physical_resource_id
434
455
 
435
- after_logical_id = arguments_delta.after
436
456
  after = None
437
457
  if after_logical_id is not None:
438
458
  after_delta = self._resolve_reference(logical_id=after_logical_id)
439
- after_value = after_delta.after
440
- # TODO: swap isinstance to be a structured type check
441
- after_ref_delta = self._reduce_intrinsic_function_ref_value(after_value)
442
- after = after_ref_delta.after
459
+ after = after_delta.after
460
+ if isinstance(after, PreprocResource):
461
+ after = after.physical_resource_id
443
462
 
444
463
  return PreprocEntityDelta(before=before, after=after)
445
464
 
@@ -505,15 +524,25 @@ class ChangeSetModelPreproc(ChangeSetModelVisitor):
505
524
  before = None
506
525
  after = None
507
526
  if change_type != ChangeType.CREATED and condition_before is None or condition_before:
527
+ logical_resource_id = node_resource.name
528
+ before_physical_resource_id = self._before_resource_physical_id(
529
+ resource_logical_id=logical_resource_id
530
+ )
508
531
  before = PreprocResource(
509
- name=node_resource.name,
532
+ logical_id=logical_resource_id,
533
+ physical_resource_id=before_physical_resource_id,
510
534
  condition=condition_before,
511
535
  resource_type=type_delta.before,
512
536
  properties=properties_delta.before,
513
537
  )
514
538
  if change_type != ChangeType.REMOVED and condition_after is None or condition_after:
539
+ logical_resource_id = node_resource.name
540
+ after_physical_resource_id = self._after_resource_physical_id(
541
+ resource_logical_id=logical_resource_id
542
+ )
515
543
  after = PreprocResource(
516
- name=node_resource.name,
544
+ logical_id=logical_resource_id,
545
+ physical_resource_id=after_physical_resource_id,
517
546
  condition=condition_after,
518
547
  resource_type=type_delta.after,
519
548
  properties=properties_delta.after,
@@ -173,6 +173,7 @@ class ChangeSet:
173
173
  def describe_details(self, include_property_values: bool) -> DescribeChangeSetOutput:
174
174
  change_set_describer = ChangeSetModelDescriber(
175
175
  node_template=self.update_graph,
176
+ before_resolved_resources=self.stack.resolved_resources,
176
177
  include_property_values=include_property_values,
177
178
  )
178
179
  changes: Changes = change_set_describer.get_changes()
@@ -107,6 +107,55 @@ def get_iam_backend(context: RequestContext) -> IAMBackend:
107
107
  return iam_backends[context.account_id][context.partition]
108
108
 
109
109
 
110
+ def get_policies_from_principal(backend: IAMBackend, principal_arn: str) -> list[dict]:
111
+ policies = []
112
+ if ":role" in principal_arn:
113
+ role_name = principal_arn.split("/")[-1]
114
+
115
+ policies.append(backend.get_role(role_name=role_name).assume_role_policy_document)
116
+
117
+ policy_names = backend.list_role_policies(role_name=role_name)
118
+ policies.extend(
119
+ [
120
+ backend.get_role_policy(role_name=role_name, policy_name=policy_name)[1]
121
+ for policy_name in policy_names
122
+ ]
123
+ )
124
+
125
+ attached_policies, _ = backend.list_attached_role_policies(role_name=role_name)
126
+ policies.extend([policy.document for policy in attached_policies])
127
+
128
+ if ":group" in principal_arn:
129
+ print(principal_arn)
130
+ group_name = principal_arn.split("/")[-1]
131
+ policy_names = backend.list_group_policies(group_name=group_name)
132
+ policies.extend(
133
+ [
134
+ backend.get_group_policy(group_name=group_name, policy_name=policy_name)[1]
135
+ for policy_name in policy_names
136
+ ]
137
+ )
138
+
139
+ attached_policies, _ = backend.list_attached_group_policies(group_name=group_name)
140
+ policies.extend([policy.document for policy in attached_policies])
141
+
142
+ if ":user" in principal_arn:
143
+ print(principal_arn)
144
+ user_name = principal_arn.split("/")[-1]
145
+ policy_names = backend.list_user_policies(user_name=user_name)
146
+ policies.extend(
147
+ [
148
+ backend.get_user_policy(user_name=user_name, policy_name=policy_name)[1]
149
+ for policy_name in policy_names
150
+ ]
151
+ )
152
+
153
+ attached_policies, _ = backend.list_attached_user_policies(user_name=user_name)
154
+ policies.extend([policy.document for policy in attached_policies])
155
+
156
+ return policies
157
+
158
+
110
159
  class IamProvider(IamApi):
111
160
  def __init__(self):
112
161
  apply_iam_patches()
@@ -168,12 +217,20 @@ class IamProvider(IamApi):
168
217
  **kwargs,
169
218
  ) -> SimulatePolicyResponse:
170
219
  backend = get_iam_backend(context)
171
- policy = backend.get_policy(policy_source_arn)
172
- policy_version = backend.get_policy_version(policy_source_arn, policy.default_version_id)
173
- try:
174
- policy_statements = json.loads(policy_version.document).get("Statement", [])
175
- except Exception:
176
- raise NoSuchEntityException("Policy not found")
220
+
221
+ policies = get_policies_from_principal(backend, policy_source_arn)
222
+
223
+ def _get_statements_from_policy_list(policies: list[str]):
224
+ statements = []
225
+ for policy_str in policies:
226
+ policy_dict = json.loads(policy_str)
227
+ if isinstance(policy_dict["Statement"], list):
228
+ statements.extend(policy_dict["Statement"])
229
+ else:
230
+ statements.append(policy_dict["Statement"])
231
+ return statements
232
+
233
+ policy_statements = _get_statements_from_policy_list(policies)
177
234
 
178
235
  evaluations = [
179
236
  self.build_evaluation_result(action_name, resource_arn, policy_statements)
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.3.1.dev73'
21
- __version_tuple__ = version_tuple = (4, 3, 1, 'dev73')
20
+ __version__ = version = '4.3.1.dev75'
21
+ __version_tuple__ = version_tuple = (4, 3, 1, 'dev75')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.3.1.dev73
3
+ Version: 4.3.1.dev75
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=KHNnB1SriYHZ3xWCDqU-RKf43k1_wlQ1fjYOhqn1PdY,526
7
+ localstack/version.py,sha256=iwkEhx8eUzz-SH_5etQwx1RaIhwcBrZc0cdVjtAZKWo,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
@@ -310,9 +310,9 @@ localstack/services/cloudformation/engine/validations.py,sha256=brq7s8O8exA5kvnf
310
310
  localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUGen9Mz8SjosBuodpV5XvsCSn9bDg,2164
311
311
  localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
312
312
  localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=oDFbFgHgfebPTLFARjtdjS5vsVBfm7w0Iq1lSBMdpbc,47770
313
- localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=FfuPfGnytFgUt0MFtiJCs7Tua6NsuXWlRGK7VVO380Y,6828
314
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=avjo24cC0S5q_QXEal1nfZCLS0JIEit3obdrwsmXcMs,12962
315
- localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=WiTYpGCetQkFP5cXOlucD2vIdI1vX-ubvErp0avDmMc,23751
313
+ localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=W2gbMS-qL_9-PM4NBtEuFDBIqVSewKDSErHowsDBNAM,7350
314
+ localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=OAgblbbwqWbmYVdK66bISWM70qfl2cc1VxxNwK1kMqY,12583
315
+ localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=gBNy3dh4zss-i3vjeRzwbut8pCydV7W3yqMhYk3nGQg,25343
316
316
  localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=NF97l94cHxxBuqNJ6kR3EarNyjLM9KnT8zPV4puOtZQ,5163
317
317
  localstack/services/cloudformation/models/__init__.py,sha256=da1PTClDMl-IBkrSvq6JC1lnS-K_BASzCvxVhNxN5Ls,13
318
318
  localstack/services/cloudformation/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -331,7 +331,7 @@ localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcon
331
331
  localstack/services/cloudformation/scaffolding/__main__.py,sha256=zjedOdqvnfN99WzQ43gxtGZxLDitSnbFGA-zpWbyMQ0,30960
332
332
  localstack/services/cloudformation/scaffolding/propgen.py,sha256=9YsSCkDegcU_Yp8Sfw8eNV26N5ibOlLC6Hg6lxPeBBM,7949
333
333
  localstack/services/cloudformation/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
334
- localstack/services/cloudformation/v2/entities.py,sha256=h-5zNCYcGP6ZprptF_VSkGuXqDJvMoOnyU-b4ps1CSU,6632
334
+ localstack/services/cloudformation/v2/entities.py,sha256=-qrMPVCZBnhLuwcfAMLp9l_jecfRIiRI_Vc917cm8gU,6701
335
335
  localstack/services/cloudformation/v2/provider.py,sha256=RgDgv0B6vXBNHHteOYPP1AQyfasMOZPMD-n_q-cANhg,15521
336
336
  localstack/services/cloudformation/v2/utils.py,sha256=xy4Lcp4X8XGJ0OKfnsE7pnfMcFrtIH0Chw35qwjhZuw,148
337
337
  localstack/services/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -475,7 +475,7 @@ localstack/services/firehose/models.py,sha256=ks3vcvE7scWtXQSHQDc5GkBpBQkmlPtTu7
475
475
  localstack/services/firehose/provider.py,sha256=yKgeUWVo0jBnMgfr35BoCxVB1Hj6yCvUoayyLnKzCDc,41007
476
476
  localstack/services/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
477
477
  localstack/services/iam/iam_patches.py,sha256=qb-YZPsLUOiuwtPsWFz698bt2W-Bfl-TkFHhw2ZKXDY,4652
478
- localstack/services/iam/provider.py,sha256=E18bk6lsEtiL7l1S_Y3-b5qSEtUIkkyQvRoXTJ0sXNI,27513
478
+ localstack/services/iam/provider.py,sha256=DCaCPKF7HA93dtoxfyUu13fcHDF0dMSp7iu3gWNHiWM,29596
479
479
  localstack/services/iam/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
480
480
  localstack/services/iam/resource_providers/aws_iam_accesskey.py,sha256=TYRGHM9nMD3dyx-edea0NY-LFp6Fn_b7L5zjqIuubHg,3905
481
481
  localstack/services/iam/resource_providers/aws_iam_accesskey.schema.json,sha256=Gr00xlh-7HHx6447OdCV3Pm0RUvBQb5vQ3owiMArjok,662
@@ -1279,13 +1279,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1279
1279
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1280
1280
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1281
1281
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1282
- localstack_core-4.3.1.dev73.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
- localstack_core-4.3.1.dev73.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
- localstack_core-4.3.1.dev73.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
- localstack_core-4.3.1.dev73.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
- localstack_core-4.3.1.dev73.dist-info/METADATA,sha256=Ul1_kW21bOb8unY9tLeujHtd082EYTRrgmPfmdpQVuA,5531
1287
- localstack_core-4.3.1.dev73.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
1288
- localstack_core-4.3.1.dev73.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1289
- localstack_core-4.3.1.dev73.dist-info/plux.json,sha256=gcWwtBf4cDu61-9lRVdRQlW0kmSOaHFxvk_aiHp69_8,20786
1290
- localstack_core-4.3.1.dev73.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
- localstack_core-4.3.1.dev73.dist-info/RECORD,,
1282
+ localstack_core-4.3.1.dev75.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
+ localstack_core-4.3.1.dev75.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
+ localstack_core-4.3.1.dev75.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
+ localstack_core-4.3.1.dev75.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
+ localstack_core-4.3.1.dev75.dist-info/METADATA,sha256=KB2ocRnNpLsahu9FLHejqftmPoA2LO51D9vOaPjbu3o,5531
1287
+ localstack_core-4.3.1.dev75.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
1288
+ localstack_core-4.3.1.dev75.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1289
+ localstack_core-4.3.1.dev75.dist-info/plux.json,sha256=dqDHzhhRUSI7dAjy-ulpecczPB5FHVaLZYSpTbWUS58,20786
1290
+ localstack_core-4.3.1.dev75.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
+ localstack_core-4.3.1.dev75.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.cloudformation.resource_providers": ["AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "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", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin"], "localstack.hooks.on_infra_start": ["setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints"], "localstack.packages": ["ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"]}
@@ -1 +0,0 @@
1
- {"localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package"], "localstack.hooks.on_infra_start": ["register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info"], "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: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", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send"], "localstack.cloudformation.resource_providers": ["AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "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::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "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.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.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"]}