localstack-core 4.5.1.dev43__py3-none-any.whl → 4.5.1.dev45__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.
@@ -36,6 +36,8 @@ from localstack.services.cloudformation.v2.entities import ChangeSet
36
36
 
37
37
  LOG = logging.getLogger(__name__)
38
38
 
39
+ EventOperationFromAction = {"Add": "CREATE", "Modify": "UPDATE", "Remove": "DELETE"}
40
+
39
41
 
40
42
  @dataclass
41
43
  class ChangeSetModelExecutorResult:
@@ -86,6 +88,50 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
86
88
  self.resolved_parameters[node_parameter.name] = delta.after
87
89
  return delta
88
90
 
91
+ def _get_physical_id(self, logical_resource_id, strict: bool = True) -> str | None:
92
+ physical_resource_id = None
93
+ try:
94
+ physical_resource_id = self._after_resource_physical_id(logical_resource_id)
95
+ except RuntimeError:
96
+ # The physical id is missing or is set to None, which is invalid.
97
+ pass
98
+ if physical_resource_id is None:
99
+ # The physical resource id is None after an update that didn't rewrite the resource, the previous
100
+ # resource id is therefore the current physical id of this resource.
101
+
102
+ try:
103
+ physical_resource_id = self._before_resource_physical_id(logical_resource_id)
104
+ except RuntimeError as e:
105
+ if strict:
106
+ raise e
107
+ return physical_resource_id
108
+
109
+ def _process_event(
110
+ self,
111
+ action: ChangeAction,
112
+ logical_resource_id,
113
+ event_status: OperationStatus,
114
+ special_action: str = None,
115
+ reason: str = None,
116
+ resource_type=None,
117
+ ):
118
+ status_from_action = special_action or EventOperationFromAction[action.value]
119
+ if event_status == OperationStatus.SUCCESS:
120
+ status = f"{status_from_action}_COMPLETE"
121
+ else:
122
+ status = f"{status_from_action}_{event_status.name}"
123
+
124
+ self._change_set.stack.set_resource_status(
125
+ logical_resource_id=logical_resource_id,
126
+ physical_resource_id=self._get_physical_id(logical_resource_id, False),
127
+ resource_type=resource_type,
128
+ status=ResourceStatus(status),
129
+ resource_status_reason=reason,
130
+ )
131
+
132
+ if event_status == OperationStatus.FAILED:
133
+ self._change_set.stack.set_stack_status(StackStatus(status))
134
+
89
135
  def _after_deployed_property_value_of(
90
136
  self, resource_logical_id: str, property_name: str
91
137
  ) -> str:
@@ -173,20 +219,29 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
173
219
  # XXX hacky, stick the previous resources' properties into the payload
174
220
  before_properties = self._merge_before_properties(name, before)
175
221
 
176
- self._execute_resource_action(
222
+ self._process_event(ChangeAction.Modify, name, OperationStatus.IN_PROGRESS)
223
+ event = self._execute_resource_action(
177
224
  action=ChangeAction.Modify,
178
225
  logical_resource_id=name,
179
226
  resource_type=before.resource_type,
180
227
  before_properties=before_properties,
181
228
  after_properties=after.properties,
182
229
  )
230
+ self._process_event(
231
+ ChangeAction.Modify,
232
+ name,
233
+ event.status,
234
+ reason=event.message,
235
+ resource_type=before.resource_type,
236
+ )
183
237
  # Case: type migration.
184
238
  # TODO: Add test to assert that on type change the resources are replaced.
185
239
  else:
186
240
  # XXX hacky, stick the previous resources' properties into the payload
187
241
  before_properties = self._merge_before_properties(name, before)
188
242
  # Register a Removed for the previous type.
189
- self._execute_resource_action(
243
+
244
+ event = self._execute_resource_action(
190
245
  action=ChangeAction.Remove,
191
246
  logical_resource_id=name,
192
247
  resource_type=before.resource_type,
@@ -194,35 +249,74 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
194
249
  after_properties=None,
195
250
  )
196
251
  # Register a Create for the next type.
197
- self._execute_resource_action(
252
+ self._process_event(
253
+ ChangeAction.Modify,
254
+ name,
255
+ event.status,
256
+ reason=event.message,
257
+ resource_type=before.resource_type,
258
+ )
259
+ event = self._execute_resource_action(
198
260
  action=ChangeAction.Add,
199
261
  logical_resource_id=name,
200
262
  resource_type=after.resource_type,
201
263
  before_properties=None,
202
264
  after_properties=after.properties,
203
265
  )
266
+ self._process_event(
267
+ ChangeAction.Modify,
268
+ name,
269
+ event.status,
270
+ reason=event.message,
271
+ resource_type=before.resource_type,
272
+ )
204
273
  elif not is_nothing(before):
205
274
  # Case: removal
206
275
  # XXX hacky, stick the previous resources' properties into the payload
207
276
  # XXX hacky, stick the previous resources' properties into the payload
208
277
  before_properties = self._merge_before_properties(name, before)
209
-
210
- self._execute_resource_action(
278
+ self._process_event(
279
+ ChangeAction.Remove,
280
+ name,
281
+ OperationStatus.IN_PROGRESS,
282
+ resource_type=before.resource_type,
283
+ )
284
+ event = self._execute_resource_action(
211
285
  action=ChangeAction.Remove,
212
286
  logical_resource_id=name,
213
287
  resource_type=before.resource_type,
214
288
  before_properties=before_properties,
215
289
  after_properties=None,
216
290
  )
291
+ self._process_event(
292
+ ChangeAction.Remove,
293
+ name,
294
+ event.status,
295
+ reason=event.message,
296
+ resource_type=before.resource_type,
297
+ )
217
298
  elif not is_nothing(after):
218
299
  # Case: addition
219
- self._execute_resource_action(
300
+ self._process_event(
301
+ ChangeAction.Add,
302
+ name,
303
+ OperationStatus.IN_PROGRESS,
304
+ resource_type=after.resource_type,
305
+ )
306
+ event = self._execute_resource_action(
220
307
  action=ChangeAction.Add,
221
308
  logical_resource_id=name,
222
309
  resource_type=after.resource_type,
223
310
  before_properties=None,
224
311
  after_properties=after.properties,
225
312
  )
313
+ self._process_event(
314
+ ChangeAction.Add,
315
+ name,
316
+ event.status,
317
+ reason=event.message,
318
+ resource_type=after.resource_type,
319
+ )
226
320
 
227
321
  def _merge_before_properties(
228
322
  self, name: str, preproc_resource: PreprocResource
@@ -242,7 +336,7 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
242
336
  resource_type: str,
243
337
  before_properties: Optional[PreprocProperties],
244
338
  after_properties: Optional[PreprocProperties],
245
- ) -> None:
339
+ ) -> ProgressEvent:
246
340
  LOG.debug("Executing resource action: %s for resource '%s'", action, logical_resource_id)
247
341
  resource_provider_executor = ResourceProviderExecutor(
248
342
  stack_name=self._change_set.stack.stack_name, stack_id=self._change_set.stack.stack_id
@@ -272,16 +366,6 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
272
366
  exc_info=LOG.isEnabledFor(logging.DEBUG),
273
367
  )
274
368
  stack = self._change_set.stack
275
- match stack.status:
276
- case StackStatus.CREATE_IN_PROGRESS:
277
- stack.set_stack_status(StackStatus.CREATE_FAILED, reason=reason)
278
- case StackStatus.UPDATE_IN_PROGRESS:
279
- stack.set_stack_status(StackStatus.UPDATE_FAILED, reason=reason)
280
- case StackStatus.DELETE_IN_PROGRESS:
281
- stack.set_stack_status(StackStatus.DELETE_FAILED, reason=reason)
282
- case _:
283
- raise NotImplementedError(f"Unexpected stack status: {stack.status}")
284
- # update resource status
285
369
  stack.set_resource_status(
286
370
  logical_resource_id=logical_resource_id,
287
371
  # TODO,
@@ -292,7 +376,11 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
292
376
  else ResourceStatus.UPDATE_FAILED,
293
377
  resource_status_reason=reason,
294
378
  )
295
- return
379
+ event = ProgressEvent(
380
+ OperationStatus.FAILED,
381
+ resource_model={},
382
+ message=f"Resource provider operation failed: {reason}",
383
+ )
296
384
 
297
385
  self.resources.setdefault(logical_resource_id, {"Properties": {}})
298
386
  match event.status:
@@ -313,28 +401,8 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
313
401
  self.resources[logical_resource_id]["LogicalResourceId"] = logical_resource_id
314
402
  self.resources[logical_resource_id]["Type"] = resource_type
315
403
 
316
- # TODO: review why the physical id is returned as None during updates
317
- # TODO: abstract this in member function of resource classes instead
318
- physical_resource_id = None
319
- try:
320
- physical_resource_id = self._after_resource_physical_id(logical_resource_id)
321
- except RuntimeError:
322
- # The physical id is missing or is set to None, which is invalid.
323
- pass
324
- if physical_resource_id is None:
325
- # The physical resource id is None after an update that didn't rewrite the resource, the previous
326
- # resource id is therefore the current physical id of this resource.
327
- physical_resource_id = self._before_resource_physical_id(logical_resource_id)
328
- self.resources[logical_resource_id]["PhysicalResourceId"] = physical_resource_id
329
-
330
- self._change_set.stack.set_resource_status(
331
- logical_resource_id=logical_resource_id,
332
- physical_resource_id=physical_resource_id,
333
- resource_type=resource_type,
334
- status=ResourceStatus.CREATE_COMPLETE
335
- if action == ChangeAction.Add
336
- else ResourceStatus.UPDATE_COMPLETE,
337
- )
404
+ physical_resource_id = self._get_physical_id(logical_resource_id)
405
+ self.resources[logical_resource_id]["PhysicalResourceId"] = physical_resource_id
338
406
 
339
407
  case OperationStatus.FAILED:
340
408
  reason = event.message
@@ -342,29 +410,9 @@ class ChangeSetModelExecutor(ChangeSetModelPreproc):
342
410
  "Resource provider operation failed: '%s'",
343
411
  reason,
344
412
  )
345
- # TODO: duplication
346
- stack = self._change_set.stack
347
- match stack.status:
348
- case StackStatus.CREATE_IN_PROGRESS:
349
- stack.set_stack_status(StackStatus.CREATE_FAILED, reason=reason)
350
- case StackStatus.UPDATE_IN_PROGRESS:
351
- stack.set_stack_status(StackStatus.UPDATE_FAILED, reason=reason)
352
- case StackStatus.DELETE_IN_PROGRESS:
353
- stack.set_stack_status(StackStatus.DELETE_FAILED, reason=reason)
354
- case _:
355
- raise NotImplementedError(f"Unhandled stack status: '{stack.status}'")
356
- stack.set_resource_status(
357
- logical_resource_id=logical_resource_id,
358
- # TODO
359
- physical_resource_id="",
360
- resource_type=resource_type,
361
- status=ResourceStatus.CREATE_FAILED
362
- if action == ChangeAction.Add
363
- else ResourceStatus.UPDATE_FAILED,
364
- resource_status_reason=reason,
365
- )
366
413
  case other:
367
414
  raise NotImplementedError(f"Event status '{other}' not handled")
415
+ return event
368
416
 
369
417
  def create_resource_provider_payload(
370
418
  self,
@@ -11,6 +11,7 @@ from localstack.aws.api.cloudformation import (
11
11
  ResourceStatus,
12
12
  StackDriftInformation,
13
13
  StackDriftStatus,
14
+ StackEvent,
14
15
  StackResource,
15
16
  StackStatus,
16
17
  StackStatusReason,
@@ -26,7 +27,7 @@ from localstack.services.cloudformation.engine.v2.change_set_model import (
26
27
  NodeTemplate,
27
28
  )
28
29
  from localstack.utils.aws import arns
29
- from localstack.utils.strings import short_uid
30
+ from localstack.utils.strings import long_uid, short_uid
30
31
 
31
32
 
32
33
  class ResolvedResource(TypedDict):
@@ -43,6 +44,7 @@ class Stack:
43
44
  stack_id: str
44
45
  creation_time: datetime
45
46
  deletion_time: datetime | None
47
+ events = list[StackEvent]
46
48
 
47
49
  # state after deploy
48
50
  resolved_parameters: dict[str, str]
@@ -89,12 +91,15 @@ class Stack:
89
91
  self.resolved_resources = {}
90
92
  self.resolved_outputs = {}
91
93
  self.resource_states = {}
94
+ self.events = []
92
95
 
93
96
  def set_stack_status(self, status: StackStatus, reason: StackStatusReason | None = None):
94
97
  self.status = status
95
98
  if reason:
96
99
  self.status_reason = reason
97
100
 
101
+ self._store_event(self.stack_name, self.stack_id, status.value, status_reason=reason)
102
+
98
103
  def set_resource_status(
99
104
  self,
100
105
  *,
@@ -104,7 +109,7 @@ class Stack:
104
109
  status: ResourceStatus,
105
110
  resource_status_reason: str | None = None,
106
111
  ):
107
- self.resource_states[logical_resource_id] = StackResource(
112
+ resource_description = StackResource(
108
113
  StackName=self.stack_name,
109
114
  StackId=self.stack_id,
110
115
  LogicalResourceId=logical_resource_id,
@@ -115,6 +120,43 @@ class Stack:
115
120
  ResourceStatusReason=resource_status_reason,
116
121
  )
117
122
 
123
+ if not resource_status_reason:
124
+ resource_description.pop("ResourceStatusReason")
125
+
126
+ self.resource_states[logical_resource_id] = resource_description
127
+ self._store_event(logical_resource_id, physical_resource_id, status, resource_status_reason)
128
+
129
+ def _store_event(
130
+ self,
131
+ resource_id: str = None,
132
+ physical_res_id: str = None,
133
+ status: str = "",
134
+ status_reason: str = "",
135
+ ):
136
+ resource_id = resource_id
137
+ physical_res_id = physical_res_id
138
+ resource_type = (
139
+ self.template.get("Resources", {})
140
+ .get(resource_id, {})
141
+ .get("Type", "AWS::CloudFormation::Stack")
142
+ )
143
+
144
+ event: StackEvent = {
145
+ "EventId": long_uid(),
146
+ "Timestamp": datetime.now(tz=timezone.utc),
147
+ "StackId": self.stack_id,
148
+ "StackName": self.stack_name,
149
+ "LogicalResourceId": resource_id,
150
+ "PhysicalResourceId": physical_res_id,
151
+ "ResourceStatus": status,
152
+ "ResourceType": resource_type,
153
+ }
154
+
155
+ if status_reason:
156
+ event["ResourceStatusReason"] = status_reason
157
+
158
+ self.events.insert(0, event)
159
+
118
160
  def describe_details(self) -> ApiStack:
119
161
  result = {
120
162
  "ChangeSetId": self.change_set_id,
@@ -236,7 +236,10 @@ class CloudformationProviderV2(CloudformationProvider):
236
236
  raise ValidationError(f"Stack '{stack_name}' does not exist.")
237
237
  stack = active_stack_candidates[0]
238
238
 
239
- stack.set_stack_status(StackStatus.REVIEW_IN_PROGRESS)
239
+ if stack.status in [StackStatus.CREATE_COMPLETE, StackStatus.UPDATE_COMPLETE]:
240
+ stack.set_stack_status(StackStatus.UPDATE_IN_PROGRESS)
241
+ else:
242
+ stack.set_stack_status(StackStatus.REVIEW_IN_PROGRESS)
240
243
 
241
244
  # TODO: test if rollback status is allowed as well
242
245
  if (
@@ -472,7 +475,9 @@ class CloudformationProviderV2(CloudformationProvider):
472
475
  next_token: NextToken = None,
473
476
  **kwargs,
474
477
  ) -> DescribeStackEventsOutput:
475
- return DescribeStackEventsOutput(StackEvents=[])
478
+ state = get_cloudformation_store(context.account_id, context.region)
479
+ stack = find_stack_v2(state, stack_name)
480
+ return DescribeStackEventsOutput(StackEvents=stack.events)
476
481
 
477
482
  @handler("DeleteStack")
478
483
  def delete_stack(
@@ -1,6 +1,6 @@
1
1
  import json
2
2
  from collections import defaultdict
3
- from typing import Callable
3
+ from typing import Callable, Optional, TypedDict
4
4
 
5
5
  import pytest
6
6
 
@@ -9,22 +9,83 @@ from localstack.aws.connect import ServiceLevelClientFactory
9
9
  from localstack.utils.functions import call_safe
10
10
  from localstack.utils.strings import short_uid
11
11
 
12
- PerResourceStackEvents = dict[str, list[StackEvent]]
12
+
13
+ class NormalizedEvent(TypedDict):
14
+ PhysicalResourceId: Optional[str]
15
+ LogicalResourceId: str
16
+ ResourceType: str
17
+ ResourceStatus: str
18
+ Timestamp: str
19
+
20
+
21
+ PerResourceStackEvents = dict[str, list[NormalizedEvent]]
22
+
23
+
24
+ def normalize_event(event: StackEvent) -> NormalizedEvent:
25
+ return NormalizedEvent(
26
+ PhysicalResourceId=event.get("PhysicalResourceId"),
27
+ LogicalResourceId=event.get("LogicalResourceId"),
28
+ ResourceType=event.get("ResourceType"),
29
+ ResourceStatus=event.get("ResourceStatus"),
30
+ Timestamp=event.get("Timestamp"),
31
+ )
13
32
 
14
33
 
15
34
  @pytest.fixture
16
35
  def capture_per_resource_events(
17
36
  aws_client: ServiceLevelClientFactory,
18
37
  ) -> Callable[[str], PerResourceStackEvents]:
19
- def capture(stack_name: str) -> PerResourceStackEvents:
38
+ def capture(stack_name: str) -> dict:
20
39
  events = aws_client.cloudformation.describe_stack_events(StackName=stack_name)[
21
40
  "StackEvents"
22
41
  ]
23
42
  per_resource_events = defaultdict(list)
24
43
  for event in events:
44
+ # TODO: not supported events
45
+ if event.get("ResourceStatus") in {
46
+ "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS",
47
+ "DELETE_IN_PROGRESS",
48
+ "DELETE_COMPLETE",
49
+ }:
50
+ continue
51
+
25
52
  if logical_resource_id := event.get("LogicalResourceId"):
26
- per_resource_events[logical_resource_id].append(event)
27
- return per_resource_events
53
+ resource_name = (
54
+ logical_resource_id
55
+ if logical_resource_id != event.get("StackName")
56
+ else "Stack"
57
+ )
58
+ normalized_event = normalize_event(event)
59
+ per_resource_events[resource_name].append(normalized_event)
60
+
61
+ for resource_id in per_resource_events:
62
+ per_resource_events[resource_id].sort(key=lambda event: event["Timestamp"])
63
+
64
+ filtered_per_resource_events = {}
65
+ for resource_id in per_resource_events:
66
+ events = []
67
+ last: tuple[str, str, str] | None = None
68
+
69
+ for event in per_resource_events[resource_id]:
70
+ unique_key = (
71
+ event["LogicalResourceId"],
72
+ event["ResourceStatus"],
73
+ event["ResourceType"],
74
+ )
75
+ if last is None:
76
+ events.append(event)
77
+ last = unique_key
78
+ continue
79
+
80
+ if unique_key == last:
81
+ continue
82
+
83
+ events.append(event)
84
+ last = unique_key
85
+
86
+ filtered_per_resource_events[resource_id] = events
87
+
88
+ return filtered_per_resource_events
28
89
 
29
90
  return capture
30
91
 
@@ -165,9 +226,6 @@ def capture_update_process(aws_client_no_retry, cleanups, capture_per_resource_e
165
226
  ]
166
227
  snapshot.match("post-create-2-describe", describe)
167
228
 
168
- events = capture_per_resource_events(stack_name)
169
- snapshot.match("per-resource-events", events)
170
-
171
229
  # delete stack
172
230
  aws_client_no_retry.cloudformation.delete_stack(StackName=stack_id)
173
231
  aws_client_no_retry.cloudformation.get_waiter("stack_delete_complete").wait(
@@ -178,4 +236,7 @@ def capture_update_process(aws_client_no_retry, cleanups, capture_per_resource_e
178
236
  ]
179
237
  snapshot.match("delete-describe", describe)
180
238
 
239
+ events = capture_per_resource_events(stack_id)
240
+ snapshot.match("per-resource-events", events)
241
+
181
242
  yield inner
@@ -523,7 +523,7 @@ class ContainerConfigurators:
523
523
  # Show a deprecation warning for each individual env var collected above
524
524
  LOG.warning(
525
525
  "Non-prefixed environment variable %(env_var)s is forwarded to the LocalStack container! "
526
- "Please use `LOCALSTACK_%(env_var)s` instead of %(env_var)s to explicitly mark this environment variable to be forwarded form the CLI to the LocalStack Runtime.",
526
+ "Please use `LOCALSTACK_%(env_var)s` instead of %(env_var)s to explicitly mark this environment variable to be forwarded from the CLI to the LocalStack Runtime.",
527
527
  {"env_var": non_prefixed_env_var},
528
528
  )
529
529
 
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.5.1.dev43'
21
- __version_tuple__ = version_tuple = (4, 5, 1, 'dev43')
20
+ __version__ = version = '4.5.1.dev45'
21
+ __version_tuple__ = version_tuple = (4, 5, 1, 'dev45')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.5.1.dev43
3
+ Version: 4.5.1.dev45
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=viLV1sJGP-v6jTnfM678PDy2K0LVSxyqVkd1dTeW16s,526
7
+ localstack/version.py,sha256=SAcvikSnMZhKdZMj3nc5qhnFuIz05cxiWsqGTgoMFJE,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
@@ -312,7 +312,7 @@ localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUG
312
312
  localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
313
313
  localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=Jt_ersgkciAIWhGde9qm0MllIRA4K3vBZE1V04RJ6XQ,54613
314
314
  localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=J2OibRDuVXu-rnLxHmxtjqOD4Q489F9An_6-fkTTAm8,8057
315
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=kwExKaHG9DpbSd4aUnD1fkbYv2gE0_Zono8FoFCaMpc,19052
315
+ localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=kykv7hPUOvzeaUPs1NA1FHQyUyKcrqRcVK6C-R-sb2E,19943
316
316
  localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=lwSdkqF05IkafWGXVLuZ37dugBGB7_hNpX4e-xtZShY,49709
317
317
  localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=TLQmK2WE0NzjSn0-0h0WfOZEwH1ULAJD34eQLEG3F7w,10655
318
318
  localstack/services/cloudformation/engine/v2/change_set_model_visitor.py,sha256=JERT55YkPF-UHzG-sk958mpyEq2Gxz4smY8xwDbhIRQ,7666
@@ -333,8 +333,8 @@ localstack/services/cloudformation/resource_providers/aws_cloudformation_waitcon
333
333
  localstack/services/cloudformation/scaffolding/__main__.py,sha256=zjedOdqvnfN99WzQ43gxtGZxLDitSnbFGA-zpWbyMQ0,30960
334
334
  localstack/services/cloudformation/scaffolding/propgen.py,sha256=9YsSCkDegcU_Yp8Sfw8eNV26N5ibOlLC6Hg6lxPeBBM,7949
335
335
  localstack/services/cloudformation/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
336
- localstack/services/cloudformation/v2/entities.py,sha256=WJod0UgwaIXmLbb-fh3ZNweqF2kiv0gDJiy1gW1vIQU,6498
337
- localstack/services/cloudformation/v2/provider.py,sha256=mpcdRne444-OAoC3ymZncNZqQUh9LV29q3sNHG_8Fz8,22824
336
+ localstack/services/cloudformation/v2/entities.py,sha256=3PpR83D-d1dF9QKTawopgmJh2Jaj6Guw3XX27P8Gvi8,7863
337
+ localstack/services/cloudformation/v2/provider.py,sha256=bx-YjLzBYmWpA79KBDGtqbJ25byK9zyRghjIsHvlmeE,23132
338
338
  localstack/services/cloudformation/v2/utils.py,sha256=xy4Lcp4X8XGJ0OKfnsE7pnfMcFrtIH0Chw35qwjhZuw,148
339
339
  localstack/services/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
340
340
  localstack/services/cloudwatch/alarm_scheduler.py,sha256=XFllg0gI_WNV7cNxOcgXifzmbNA07OPpuEUuf37keP4,15663
@@ -1179,7 +1179,7 @@ localstack/testing/pytest/path_filter.py,sha256=U1V5qy23H7yZ6Tznr-MdveeH7TvCM_u4
1179
1179
  localstack/testing/pytest/util.py,sha256=TQAAb_Cj5gTSX0VkenAbSabvyCkl7THxEj70PrT_H7Y,941
1180
1180
  localstack/testing/pytest/validation_tracking.py,sha256=zGYn2r2n1xEe2Xq2JLPhS5dQJ9s29pIQEFpiF7ifehM,5630
1181
1181
  localstack/testing/pytest/cloudformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1182
- localstack/testing/pytest/cloudformation/fixtures.py,sha256=q0dyZlcjUwNlhlZuxCCxWJFhgq9HQF9jt_WjFxdHHJk,7029
1182
+ localstack/testing/pytest/cloudformation/fixtures.py,sha256=JDuRf6joMhR60GwLhRT9NWCpXghvf5JNAVNVws9wWqk,8978
1183
1183
  localstack/testing/pytest/stepfunctions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1184
1184
  localstack/testing/pytest/stepfunctions/fixtures.py,sha256=m9gdU7opK1LoDKuUDTJKcuUfWi4LWHw0idL0_GNlkfo,32817
1185
1185
  localstack/testing/pytest/stepfunctions/utils.py,sha256=L_Zc6-iDC76E5JsGAXltBIi_ZB3-vrCBTGcOcmfEO3g,32819
@@ -1204,7 +1204,7 @@ localstack/utils/asyncio.py,sha256=hBn7XH7Txk0WA_kwRvVjHudWJuDZxOkiNd9pQJl4_Lk,5
1204
1204
  localstack/utils/auth.py,sha256=uZNbD3hoQE29BykHANiy0uh-yLcvR05zjyYGN7gDmXQ,2415
1205
1205
  localstack/utils/backoff.py,sha256=mVyADce0BzHFA0MzbQ3VH6R9i3DBLitxGOEj-LeLD48,4117
1206
1206
  localstack/utils/batch_policy.py,sha256=jLzSb5y_-fszblGXfz7hDCpTmomTBTfsTjU4uP8QS5Q,4243
1207
- localstack/utils/bootstrap.py,sha256=15F9LP6SCM92c5uoABfLXp5lJBm9xBSAfwWv9lmGJQM,50144
1207
+ localstack/utils/bootstrap.py,sha256=b6zB9Z9xpIA03T8bQdlBEAZCaWpCKI4Xs1Cu1PJspS8,50144
1208
1208
  localstack/utils/collections.py,sha256=RbNxoAeEp12PBriCkueMTBgShlsQ1sTM9QgkvKPh6vY,17517
1209
1209
  localstack/utils/common.py,sha256=A6pfxPHyDR8xsFTcxmxmKDSfGY1NMhn6NFXaS-sJDVM,6427
1210
1210
  localstack/utils/config_listener.py,sha256=x7mStigWGTM6vg4HViXdSeD8kE3GpWUOcRwvHrraghE,1218
@@ -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.5.1.dev43.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1288
- localstack_core-4.5.1.dev43.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1289
- localstack_core-4.5.1.dev43.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1290
- localstack_core-4.5.1.dev43.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1291
- localstack_core-4.5.1.dev43.dist-info/METADATA,sha256=Q8sx-p620w0Hs8QXvJUms5J0LQkSJ0szcjVa8V9bKaE,5539
1292
- localstack_core-4.5.1.dev43.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1293
- localstack_core-4.5.1.dev43.dist-info/entry_points.txt,sha256=tsZ2TeV3-omCfAUEXmTWXu_D40b_17a9FDAEpbeaoNw,20571
1294
- localstack_core-4.5.1.dev43.dist-info/plux.json,sha256=jnFosFVLhT3slqpIrCOS_GTfG3hT05-7s1s3Jy0AYLE,20793
1295
- localstack_core-4.5.1.dev43.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1296
- localstack_core-4.5.1.dev43.dist-info/RECORD,,
1287
+ localstack_core-4.5.1.dev45.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1288
+ localstack_core-4.5.1.dev45.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1289
+ localstack_core-4.5.1.dev45.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1290
+ localstack_core-4.5.1.dev45.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1291
+ localstack_core-4.5.1.dev45.dist-info/METADATA,sha256=Su1Pjmy3xKV4P6S-45roK0sTMTky6b74o-rLd2CLMlc,5539
1292
+ localstack_core-4.5.1.dev45.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1293
+ localstack_core-4.5.1.dev45.dist-info/entry_points.txt,sha256=tsZ2TeV3-omCfAUEXmTWXu_D40b_17a9FDAEpbeaoNw,20571
1294
+ localstack_core-4.5.1.dev45.dist-info/plux.json,sha256=Wtn-IV3B4hNyErKO09f4kUdZ2a8hw6j5bOj53I31qlU,20793
1295
+ localstack_core-4.5.1.dev45.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1296
+ localstack_core-4.5.1.dev45.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "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::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "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::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "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::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "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::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::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "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::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::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin"], "localstack.packages": ["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", "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", "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", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package"], "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.on_infra_start": ["eager_load_services=localstack.services.plugins:eager_load_services", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_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", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "_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_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.hooks.on_infra_shutdown": ["_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "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", "stop_server=localstack.dns.plugins:stop_server"], "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"], "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"]}
@@ -1 +0,0 @@
1
- {"localstack.cloudformation.resource_providers": ["AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "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::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "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::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "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::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "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::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "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::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "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::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "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::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin"], "localstack.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "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", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package"], "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"], "localstack.hooks.on_infra_start": ["_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_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", "eager_load_services=localstack.services.plugins:eager_load_services", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown"], "localstack.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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"]}