localstack-core 4.8.2.dev18__py3-none-any.whl → 4.8.2.dev20__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.

Potentially problematic release.


This version of localstack-core might be problematic. Click here for more details.

@@ -1174,6 +1174,17 @@ class BaseCBORRequestParser(RequestParser, ABC):
1174
1174
  return node
1175
1175
  return super()._parse_timestamp(_, shape, node, ___)
1176
1176
 
1177
+ @_text_content
1178
+ def _parse_boolean(self, _, __, node: str | bool, ___) -> bool:
1179
+ if isinstance(node, str):
1180
+ value = node.lower()
1181
+ if value == "true":
1182
+ return True
1183
+ if value == "false":
1184
+ return False
1185
+ raise ValueError(f"cannot parse boolean value {node}")
1186
+ return node
1187
+
1177
1188
  # This helper method is intended for use when parsing indefinite length items.
1178
1189
  # It does nothing if the next byte is not the break code. If the next byte is
1179
1190
  # the break code, it advances past that byte and returns True so the calling
@@ -94,7 +94,6 @@ be sent back to the calling client.
94
94
 
95
95
  import abc
96
96
  import base64
97
- import copy
98
97
  import datetime
99
98
  import functools
100
99
  import json
@@ -117,6 +116,7 @@ from botocore.model import (
117
116
  OperationModel,
118
117
  ServiceModel,
119
118
  Shape,
119
+ ShapeResolver,
120
120
  StringShape,
121
121
  StructureShape,
122
122
  )
@@ -293,7 +293,11 @@ class ResponseSerializer(abc.ABC):
293
293
  f"Error to serialize ({error.__class__.__name__ if error else None}) is not a ServiceException."
294
294
  )
295
295
  shape = operation_model.service_model.shape_for_error_code(error.code)
296
- serialized_response.status_code = error.status_code
296
+ serialized_response.status_code = self._get_error_status_code(
297
+ error=error,
298
+ headers=headers,
299
+ service_model=operation_model.service_model,
300
+ )
297
301
 
298
302
  self._serialize_error(
299
303
  error, serialized_response, shape, operation_model, mime_type, request_id
@@ -614,6 +618,34 @@ class ResponseSerializer(abc.ABC):
614
618
  def _get_error_message(self, error: Exception) -> str | None:
615
619
  return str(error) if error is not None and str(error) != "None" else None
616
620
 
621
+ def _get_error_status_code(
622
+ self, error: ServiceException, headers: Headers, service_model: ServiceModel
623
+ ) -> int:
624
+ return error.status_code
625
+
626
+
627
+ class QueryCompatibleProtocolMixin:
628
+ def _get_error_status_code(
629
+ self, error: ServiceException, headers: dict | Headers | None, service_model: ServiceModel
630
+ ) -> int:
631
+ # by default, some protocols (namely `json` and `smithy-rpc-v2-cbor`) might not define exception status code in
632
+ # their specs, so they are not defined in the `ServiceException` object and will use the default value of `400`
633
+ # But Query compatible service always do define them, so we get the wrong code for service that are
634
+ # multi-protocols like CloudWatch
635
+ # we need to verify if the service is compatible, and if the client has requested the query compatible error
636
+ # code to return the right value
637
+ if not service_model.is_query_compatible:
638
+ return error.status_code
639
+
640
+ if headers and headers.get("x-amzn-query-mode") == "true":
641
+ return error.status_code
642
+
643
+ # we only want to override status code 4XX
644
+ if 400 < error.status_code <= 499:
645
+ return 400
646
+
647
+ return error.status_code
648
+
617
649
  def _add_query_compatible_error_header(self, response: Response, error: ServiceException):
618
650
  """
619
651
  Add an `x-amzn-query-error` header for client to translate errors codes from former `query` services
@@ -623,6 +655,23 @@ class ResponseSerializer(abc.ABC):
623
655
  sender_fault = "Sender" if error.sender_fault else "Receiver"
624
656
  response.headers["x-amzn-query-error"] = f"{error.code};{sender_fault}"
625
657
 
658
+ def _get_error_code(
659
+ self, is_query_compatible: bool, error: ServiceException, shape: Shape | None = None
660
+ ):
661
+ # if the operation is query compatible, we need to add to use shape name
662
+ if is_query_compatible:
663
+ if shape:
664
+ code = shape.name
665
+ else:
666
+ # if the shape is not defined, we are using the Exception named to derive the `Code`, like you would
667
+ # from the shape. This allows us to have Exception that are valid in multi-protocols by defining its
668
+ # code and its name to be different
669
+ code = error.__class__.__name__
670
+ else:
671
+ code = error.code
672
+
673
+ return code
674
+
626
675
 
627
676
  class BaseXMLResponseSerializer(ResponseSerializer):
628
677
  """
@@ -1236,7 +1285,7 @@ class EC2ResponseSerializer(QueryResponseSerializer):
1236
1285
  request_id_element.text = request_id
1237
1286
 
1238
1287
 
1239
- class JSONResponseSerializer(ResponseSerializer):
1288
+ class JSONResponseSerializer(QueryCompatibleProtocolMixin, ResponseSerializer):
1240
1289
  """
1241
1290
  The ``JSONResponseSerializer`` is responsible for the serialization of responses from services with the ``json``
1242
1291
  protocol. It implements the JSON response body serialization, which is also used by the
@@ -1267,15 +1316,12 @@ class JSONResponseSerializer(ResponseSerializer):
1267
1316
  # com.amazon.coral.service#ExceptionName
1268
1317
  # if json-1.1, it should only be the name
1269
1318
 
1270
- # if the operation is query compatible, we need to add to use shape name
1271
- # when we create `CommonServiceException` and they don't exist in the spec, we give already give the error name
1272
- # as the exception code.
1273
- if shape and operation_model.service_model.is_query_compatible:
1274
- code = shape.name
1275
- else:
1276
- code = error.code
1319
+ is_query_compatible = operation_model.service_model.is_query_compatible
1320
+ code = self._get_error_code(is_query_compatible, error, shape)
1277
1321
 
1278
1322
  response.headers["X-Amzn-Errortype"] = code
1323
+
1324
+ # the `__type` field is not defined in default botocore error shapes
1279
1325
  body["__type"] = code
1280
1326
 
1281
1327
  if shape:
@@ -1283,17 +1329,25 @@ class JSONResponseSerializer(ResponseSerializer):
1283
1329
  # TODO add a possibility to serialize simple non-modelled errors (like S3 NoSuchBucket#BucketName)
1284
1330
  for member in shape.members:
1285
1331
  if hasattr(error, member):
1286
- remaining_params[member] = getattr(error, member)
1332
+ value = getattr(error, member)
1333
+
1287
1334
  # Default error message fields can sometimes have different casing in the specs
1288
1335
  elif member.lower() in ["code", "message"] and hasattr(error, member.lower()):
1289
- remaining_params[member] = getattr(error, member.lower())
1336
+ value = getattr(error, member.lower())
1337
+
1338
+ else:
1339
+ continue
1340
+
1341
+ if value:
1342
+ remaining_params[member] = value
1343
+
1290
1344
  self._serialize(body, remaining_params, shape, None, mime_type)
1291
1345
 
1292
- # Only set the message if it has not been set with the shape members
1346
+ # this is a workaround, some Error Shape do not define a `Message` field, but it is always returned
1347
+ # this could be solved at the same time as the `__type` field
1293
1348
  if "message" not in body and "Message" not in body:
1294
- message = self._get_error_message(error)
1295
- if message is not None:
1296
- body["message"] = message
1349
+ if error_message := self._get_error_message(error):
1350
+ body["message"] = error_message
1297
1351
 
1298
1352
  if mime_type in self.CBOR_TYPES:
1299
1353
  response.set_response(cbor2_dumps(body, datetime_as_timestamp=True))
@@ -1301,7 +1355,7 @@ class JSONResponseSerializer(ResponseSerializer):
1301
1355
  else:
1302
1356
  response.set_json(body)
1303
1357
 
1304
- if operation_model.service_model.is_query_compatible:
1358
+ if is_query_compatible:
1305
1359
  self._add_query_compatible_error_header(response, error)
1306
1360
 
1307
1361
  def _serialize_response(
@@ -1476,6 +1530,11 @@ class BaseCBORResponseSerializer(ResponseSerializer):
1476
1530
  required at the end.
1477
1531
  AWS, for both Kinesis and `smithy-rpc-v2-cbor` services, is using indefinite data structures when returning
1478
1532
  responses.
1533
+
1534
+ The CBOR serializer cannot serialize an exception if it is not defined in our specs.
1535
+ LocalStack defines a way to have user-defined exception by subclassing `CommonServiceException`, so it needs to be
1536
+ able to encode those, as well as InternalError
1537
+ We are creating a default botocore structure shape (`_DEFAULT_ERROR_STRUCTURE_SHAPE`) to be used in such cases.
1479
1538
  """
1480
1539
 
1481
1540
  SUPPORTED_MIME_TYPES = [APPLICATION_CBOR, APPLICATION_AMZ_CBOR_1_1]
@@ -1493,6 +1552,27 @@ class BaseCBORResponseSerializer(ResponseSerializer):
1493
1552
  BREAK_CODE = b"\xff"
1494
1553
  USE_INDEFINITE_DATA_STRUCTURE = True
1495
1554
 
1555
+ _ERROR_TYPE_SHAPE = StringShape(shape_name="__type", shape_model={"type": "string"})
1556
+
1557
+ _DEFAULT_ERROR_STRUCTURE_SHAPE = StructureShape(
1558
+ shape_name="DefaultErrorStructure",
1559
+ shape_model={
1560
+ "type": "structure",
1561
+ "members": {
1562
+ "message": {"shape": "ErrorMessage"},
1563
+ "__type": {"shape": "ErrorType"},
1564
+ },
1565
+ "error": {"code": "DefaultErrorStructure", "httpStatusCode": 400, "senderFault": True},
1566
+ "exception": True,
1567
+ },
1568
+ shape_resolver=ShapeResolver(
1569
+ shape_map={
1570
+ "ErrorMessage": {"type": "string"},
1571
+ "ErrorType": {"type": "string"},
1572
+ },
1573
+ ),
1574
+ )
1575
+
1496
1576
  def _serialize_data_item(
1497
1577
  self, serialized: bytearray, value: Any, shape: Shape | None, name: str | None = None
1498
1578
  ) -> None:
@@ -1590,8 +1670,18 @@ class BaseCBORResponseSerializer(ResponseSerializer):
1590
1670
  serialized.extend(closing_bytes)
1591
1671
 
1592
1672
  def _serialize_type_structure(
1593
- self, serialized: bytearray, value: dict, shape: Shape | None, name: str | None = None
1673
+ self,
1674
+ serialized: bytearray,
1675
+ value: dict,
1676
+ shape: Shape | None,
1677
+ name: str | None = None,
1678
+ shape_members: dict[str, Shape] | None = None,
1594
1679
  ) -> None:
1680
+ # `_serialize_type_structure` has a different signature other `_serialize_type_*` methods as it accepts
1681
+ # `shape_members`. This is because sometimes, the `StructureShape` does not have some members defined in the
1682
+ # specs, and we want to be able to pass arbitrary members to serialize undocumented members.
1683
+ # see `_serialize_error_structure` for its specific usage
1684
+
1595
1685
  if name is not None:
1596
1686
  # For nested structures, we need to serialize the key first
1597
1687
  self._serialize_data_item(serialized, name, shape.key_shape)
@@ -1603,8 +1693,7 @@ class BaseCBORResponseSerializer(ResponseSerializer):
1603
1693
  value, self.MAP_MAJOR_TYPE
1604
1694
  )
1605
1695
  serialized.extend(initial_bytes)
1606
-
1607
- members = shape.members
1696
+ members = shape_members or shape.members
1608
1697
  for member_key, member_value in value.items():
1609
1698
  member_shape = members[member_key]
1610
1699
  if "name" in member_shape.serialization:
@@ -1729,6 +1818,38 @@ class BaseCBORResponseSerializer(ResponseSerializer):
1729
1818
 
1730
1819
  return initial_byte, None
1731
1820
 
1821
+ def _serialize_error_structure(
1822
+ self, body: bytearray, shape: Shape | None, error: ServiceException, code: str
1823
+ ):
1824
+ if not shape:
1825
+ shape = self._DEFAULT_ERROR_STRUCTURE_SHAPE
1826
+ shape_members = shape.members
1827
+ else:
1828
+ # we need to manually add the `__type` field to the shape members as it is not part of the specs
1829
+ # we do a shallow copy of the shape members
1830
+ shape_members = shape.members.copy()
1831
+ shape_members["__type"] = self._ERROR_TYPE_SHAPE
1832
+
1833
+ # Error responses in the rpcv2Cbor protocol MUST be serialized identically to standard responses with one
1834
+ # additional component to distinguish which error is contained: a body field named __type.
1835
+ params = {"__type": code}
1836
+
1837
+ for member in shape_members:
1838
+ if hasattr(error, member):
1839
+ value = getattr(error, member)
1840
+
1841
+ # Default error message fields can sometimes have different casing in the specs
1842
+ elif member.lower() in ["code", "message"] and hasattr(error, member.lower()):
1843
+ value = getattr(error, member.lower())
1844
+
1845
+ else:
1846
+ continue
1847
+
1848
+ if value:
1849
+ params[member] = value
1850
+
1851
+ self._serialize_type_structure(body, params, shape, None, shape_members=shape_members)
1852
+
1732
1853
 
1733
1854
  class CBORResponseSerializer(BaseCBORResponseSerializer):
1734
1855
  """
@@ -1752,25 +1873,7 @@ class CBORResponseSerializer(BaseCBORResponseSerializer):
1752
1873
  response.content_type = mime_type
1753
1874
  response.headers["X-Amzn-Errortype"] = error.code
1754
1875
 
1755
- if shape:
1756
- # FIXME: we need to manually add the `__type` field to the shape as it is not part of the specs
1757
- # think about a better way, this is very hacky
1758
- shape_copy = copy.deepcopy(shape)
1759
- shape_copy.members["__type"] = StringShape(
1760
- shape_name="__type", shape_model={"type": "string"}
1761
- )
1762
- remaining_params = {"__type": error.code}
1763
-
1764
- for member_name in shape_copy.members:
1765
- if hasattr(error, member_name):
1766
- remaining_params[member_name] = getattr(error, member_name)
1767
- # Default error message fields can sometimes have different casing in the specs
1768
- elif member_name.lower() in ["code", "message"] and hasattr(
1769
- error, member_name.lower()
1770
- ):
1771
- remaining_params[member_name] = getattr(error, member_name.lower())
1772
-
1773
- self._serialize_data_item(body, remaining_params, shape_copy, None)
1876
+ self._serialize_error_structure(body, shape, error, code=error.code)
1774
1877
 
1775
1878
  response.set_response(bytes(body))
1776
1879
 
@@ -1846,7 +1949,9 @@ class BaseRpcV2ResponseSerializer(ResponseSerializer):
1846
1949
  raise NotImplementedError
1847
1950
 
1848
1951
 
1849
- class RpcV2CBORResponseSerializer(BaseRpcV2ResponseSerializer, BaseCBORResponseSerializer):
1952
+ class RpcV2CBORResponseSerializer(
1953
+ QueryCompatibleProtocolMixin, BaseRpcV2ResponseSerializer, BaseCBORResponseSerializer
1954
+ ):
1850
1955
  """
1851
1956
  The RpcV2CBORResponseSerializer implements the CBOR body serialization part for the RPC v2 protocol, and implements the
1852
1957
  specific exception serialization.
@@ -1885,40 +1990,14 @@ class RpcV2CBORResponseSerializer(BaseRpcV2ResponseSerializer, BaseCBORResponseS
1885
1990
 
1886
1991
  # Responses for the rpcv2Cbor protocol SHOULD NOT contain the X-Amzn-ErrorType header.
1887
1992
  # Type information is always serialized in the payload. This is different from the `json` protocol
1993
+ is_query_compatible = operation_model.service_model.is_query_compatible
1994
+ code = self._get_error_code(is_query_compatible, error, shape)
1888
1995
 
1889
- # if the operation is query compatible, we need to add to use shape name
1890
- # when we create `CommonServiceException` and they don't exist in the spec, we give already give the error name
1891
- # as the exception code.
1892
- if shape and operation_model.service_model.is_query_compatible:
1893
- code = shape.name
1894
- else:
1895
- code = error.code
1896
-
1897
- if shape:
1898
- # FIXME: we need to manually add the `__type` field to the shape as it is not part of the specs
1899
- # think about a better way, this is very hacky
1900
- # Error responses in the rpcv2Cbor protocol MUST be serialized identically to standard responses with one
1901
- # additional component to distinguish which error is contained: a body field named __type.
1902
- shape_copy = copy.deepcopy(shape)
1903
- shape_copy.members["__type"] = StringShape(
1904
- shape_name="__type", shape_model={"type": "string"}
1905
- )
1906
- remaining_params = {"__type": code}
1907
-
1908
- for member_name in shape_copy.members:
1909
- if hasattr(error, member_name):
1910
- remaining_params[member_name] = getattr(error, member_name)
1911
- # Default error message fields can sometimes have different casing in the specs
1912
- elif member_name.lower() in ["code", "message"] and hasattr(
1913
- error, member_name.lower()
1914
- ):
1915
- remaining_params[member_name] = getattr(error, member_name.lower())
1916
-
1917
- self._serialize_data_item(body, remaining_params, shape_copy, None)
1996
+ self._serialize_error_structure(body, shape, error, code=code)
1918
1997
 
1919
1998
  response.set_response(bytes(body))
1920
1999
 
1921
- if operation_model.service_model.is_query_compatible:
2000
+ if is_query_compatible:
1922
2001
  self._add_query_compatible_error_header(response, error)
1923
2002
 
1924
2003
  def _prepare_additional_traits_in_response(
@@ -108,8 +108,7 @@ _STORE_LOCK = threading.RLock()
108
108
  AWS_MAX_DATAPOINTS_ACCEPTED: int = 1440
109
109
 
110
110
 
111
- class ValidationError(CommonServiceException):
112
- # TODO: check this error against AWS (doesn't exist in the API)
111
+ class ValidationException(CommonServiceException):
113
112
  def __init__(self, message: str):
114
113
  super().__init__("ValidationError", message, 400, True)
115
114
 
@@ -315,6 +314,11 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
315
314
  state_reason_data: StateReasonData = None,
316
315
  **kwargs,
317
316
  ) -> None:
317
+ if state_value not in ("OK", "ALARM", "INSUFFICIENT_DATA"):
318
+ raise ValidationException(
319
+ f"1 validation error detected: Value '{state_value}' at 'stateValue' failed to satisfy constraint: Member must satisfy enum value set: [INSUFFICIENT_DATA, ALARM, OK]"
320
+ )
321
+
318
322
  try:
319
323
  if state_reason_data:
320
324
  state_reason_data = json.loads(state_reason_data)
@@ -333,10 +337,6 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
333
337
  raise ResourceNotFound()
334
338
 
335
339
  old_state = alarm.alarm["StateValue"]
336
- if state_value not in ("OK", "ALARM", "INSUFFICIENT_DATA"):
337
- raise ValidationError(
338
- f"1 validation error detected: Value '{state_value}' at 'stateValue' failed to satisfy constraint: Member must satisfy enum value set: [INSUFFICIENT_DATA, ALARM, OK]"
339
- )
340
340
 
341
341
  old_state_reason = alarm.alarm["StateReason"]
342
342
  old_state_update_timestamp = alarm.alarm["StateUpdatedTimestamp"]
@@ -416,7 +416,7 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
416
416
  "ignore",
417
417
  "missing",
418
418
  ]:
419
- raise ValidationError(
419
+ raise ValidationException(
420
420
  f"The value {request['TreatMissingData']} is not supported for TreatMissingData parameter. Supported values are [breaching, notBreaching, ignore, missing]."
421
421
  )
422
422
  # do some sanity checks:
@@ -425,7 +425,7 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
425
425
  value = request.get("Period")
426
426
  if value not in (10, 30):
427
427
  if value % 60 != 0:
428
- raise ValidationError("Period must be 10, 30 or a multiple of 60")
428
+ raise ValidationException("Period must be 10, 30 or a multiple of 60")
429
429
  if request.get("Statistic"):
430
430
  if request.get("Statistic") not in [
431
431
  "SampleCount",
@@ -434,7 +434,7 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
434
434
  "Minimum",
435
435
  "Maximum",
436
436
  ]:
437
- raise ValidationError(
437
+ raise ValidationException(
438
438
  f"Value '{request.get('Statistic')}' at 'statistic' failed to satisfy constraint: Member must satisfy enum value set: [Maximum, SampleCount, Sum, Minimum, Average]"
439
439
  )
440
440
 
@@ -448,7 +448,7 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
448
448
  "evaluate",
449
449
  "ignore",
450
450
  ):
451
- raise ValidationError(
451
+ raise ValidationException(
452
452
  f"Option {evaluate_low_sample_count_percentile} is not supported. "
453
453
  "Supported options for parameter EvaluateLowSampleCountPercentile are evaluate and ignore."
454
454
  )
@@ -4,7 +4,7 @@ from datetime import UTC, datetime
4
4
  from enum import Enum
5
5
  from typing import Literal, TypeAlias, TypedDict
6
6
 
7
- from localstack.aws.api.core import ServiceException
7
+ from localstack.aws.api import CommonServiceException
8
8
  from localstack.aws.api.events import (
9
9
  ApiDestinationDescription,
10
10
  ApiDestinationHttpMethod,
@@ -66,10 +66,9 @@ from localstack.utils.tagging import TaggingService
66
66
  TargetDict = dict[TargetId, Target]
67
67
 
68
68
 
69
- class ValidationException(ServiceException):
70
- code: str = "ValidationException"
71
- sender_fault: bool = True
72
- status_code: int = 400
69
+ class ValidationException(CommonServiceException):
70
+ def __init__(self, message: str):
71
+ super().__init__("ValidationException", message, 400, True)
73
72
 
74
73
 
75
74
  class InvalidEventPatternException(Exception):
localstack/version.py CHANGED
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '4.8.2.dev18'
32
- __version_tuple__ = version_tuple = (4, 8, 2, 'dev18')
31
+ __version__ = version = '4.8.2.dev20'
32
+ __version_tuple__ = version_tuple = (4, 8, 2, 'dev20')
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.8.2.dev18
3
+ Version: 4.8.2.dev20
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=78Sf99fgH3ckJ20a9SMqsu01r1cm5GgcomkuY4yDMDo,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=hBztMsLGPJYxjSWWB5WBMBenuPrutItQirDiO-XHTpE,719
7
+ localstack/version.py,sha256=M1EYirwlpgCJyLvX7ZoamTmJBSTx8_gEsOXf7SpjVrs,719
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
@@ -83,9 +83,9 @@ localstack/aws/handlers/tracing.py,sha256=y_BUJKjNgaRGebm88NSqni4GFCQ_ZgB2JBRnEt
83
83
  localstack/aws/handlers/validation.py,sha256=4iyHdJx3ijd49rySwMQNx2UW0XNN5fnkFQxdUO7-AQM,4386
84
84
  localstack/aws/protocol/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
85
  localstack/aws/protocol/op_router.py,sha256=2nSpL6H9seK1h_AuIZlBG1yYa_ykARIgJJrKm4Hkc0s,12039
86
- localstack/aws/protocol/parser.py,sha256=KHCBSpBzVhFcg5Yd4HLmtUCJbl5LhhGtelRrZt3gUaM,70764
86
+ localstack/aws/protocol/parser.py,sha256=0flIeZEYI2ZqyyHIIaFkGLbjzj2xpU1fGhnj2sdf2qM,71128
87
87
  localstack/aws/protocol/routing.py,sha256=x9AFpMQsVHD7JadtLHR7zjfBw3AJBayITNAYiUtnlwQ,3217
88
- localstack/aws/protocol/serializer.py,sha256=jalX8UWoN0lplgIfskFxZauE5scufPZ9MKz7QxnIxnc,104246
88
+ localstack/aws/protocol/serializer.py,sha256=pLj-ExqDghjHx6af23saG-SqiHh_YMxdGezoVL9bqLs,107004
89
89
  localstack/aws/protocol/service_router.py,sha256=M5iQ8XKUaPV65DyKewlVYHYNmu4k17Zn_p6_Jdj2Bw8,20705
90
90
  localstack/aws/protocol/validate.py,sha256=j3HJAQEKS6V_arrmvlPmP2jbge3LutxwEXDNabDlDdY,5285
91
91
  localstack/aws/serving/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -344,7 +344,7 @@ localstack/services/cloudwatch/alarm_scheduler.py,sha256=HPzQgZvDVXIXaEkjJ39L-jB
344
344
  localstack/services/cloudwatch/cloudwatch_database_helper.py,sha256=IK_MgxG3xTkpKbBe-Buv_6wUuHEc3MGQOqMAqHoEOzk,17270
345
345
  localstack/services/cloudwatch/models.py,sha256=y3JPWSZcDofSbkr2orW9pWD1cC4meP7mQ4YbYkVfGx8,3957
346
346
  localstack/services/cloudwatch/provider.py,sha256=naHmJCEwNr_dmU3s__H1ru1S6C-OGuNn1TUd59n5W5Y,19479
347
- localstack/services/cloudwatch/provider_v2.py,sha256=OdgyiOPb7TRllvrijVKZ_b4eHkFk2ipkL335vN2FUHo,45176
347
+ localstack/services/cloudwatch/provider_v2.py,sha256=aKbGRS38YE-hb22Zf3SwVjYdzZ9nmgnkZB6ZcYXA010,45117
348
348
  localstack/services/cloudwatch/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
349
349
  localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.py,sha256=T0P5uTDjQO3lNw5w4wcdBgzFthGDjJXUkPtHo1BP13I,5172
350
350
  localstack/services/cloudwatch/resource_providers/aws_cloudwatch_alarm.schema.json,sha256=8Nam5WqGfyW85m55UVCwJF17Re4tPOIJY_m6Wq37y8k,3829
@@ -448,7 +448,7 @@ localstack/services/events/archive.py,sha256=4m6zrik4I4Hp5bhbN_F4l0lUHXlgg1mBnw8
448
448
  localstack/services/events/connection.py,sha256=O6-r8egH1nrTF195UwkMTP5oppPKInhOBBFKG-etz9I,13337
449
449
  localstack/services/events/event_bus.py,sha256=KVaQmsCQDQP6YCyABj0NHUhRhEeFM5lllJ7A7d5neIY,4136
450
450
  localstack/services/events/event_rule_engine.py,sha256=y00JStGykaVwqtsuYlgLnEVs0m5zAzrCrVWnJJIuyLs,27360
451
- localstack/services/events/models.py,sha256=ixtyqNJPoKJEopXFgEW4MzjOoe72uFI6Olw_AONqxNU,9704
451
+ localstack/services/events/models.py,sha256=Myw_uQU8SR20Hj6or2_92KaxciuzF1f0GpMAfboeoOY,9722
452
452
  localstack/services/events/provider.py,sha256=g9lavX3Lr002ymjHoYihly3X5NMQpSOuJQ8ZQunf9jk,76679
453
453
  localstack/services/events/replay.py,sha256=FcX5L89Gb-wNJwjdynPZYWT0TyHgRJLUKIoZ2OAW8NU,2958
454
454
  localstack/services/events/rule.py,sha256=XfRLThIB3iy7YhW80HcCExjKRqgrOMmHeDjaxr7OtqY,10144
@@ -1294,13 +1294,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1294
1294
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1295
1295
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1296
1296
  localstack/utils/xray/traceid.py,sha256=GKO-R2sMMjlrH2UaLPXlQlZ6flbE7ZKb6IZMtMu_M5U,1110
1297
- localstack_core-4.8.2.dev18.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1298
- localstack_core-4.8.2.dev18.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1299
- localstack_core-4.8.2.dev18.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1300
- localstack_core-4.8.2.dev18.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1301
- localstack_core-4.8.2.dev18.dist-info/METADATA,sha256=jOk6eTuPMCbmb6xoxZRIv0i3rOuzCr0oqd0Guor4WTo,5538
1302
- localstack_core-4.8.2.dev18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1303
- localstack_core-4.8.2.dev18.dist-info/entry_points.txt,sha256=5IoyjalZoY-PWY5Lk_AeEjEEQ-rKQJhijLe697GVlnM,20953
1304
- localstack_core-4.8.2.dev18.dist-info/plux.json,sha256=LDRff0KfqWEYAuuJL5qLvoCe8QBrQUYFx7o2HNu1bSc,21181
1305
- localstack_core-4.8.2.dev18.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1306
- localstack_core-4.8.2.dev18.dist-info/RECORD,,
1297
+ localstack_core-4.8.2.dev20.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1298
+ localstack_core-4.8.2.dev20.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1299
+ localstack_core-4.8.2.dev20.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1300
+ localstack_core-4.8.2.dev20.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1301
+ localstack_core-4.8.2.dev20.dist-info/METADATA,sha256=bA64CC3zyUpbRV9xNtAfWYfAovr21uQkGIilD_R6Gec,5538
1302
+ localstack_core-4.8.2.dev20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1303
+ localstack_core-4.8.2.dev20.dist-info/entry_points.txt,sha256=5IoyjalZoY-PWY5Lk_AeEjEEQ-rKQJhijLe697GVlnM,20953
1304
+ localstack_core-4.8.2.dev20.dist-info/plux.json,sha256=otb-kOs7gn4R6UgLrskr47yVwqzi2etxckVOtQ-bKA8,21181
1305
+ localstack_core-4.8.2.dev20.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1306
+ localstack_core-4.8.2.dev20.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["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::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin"], "localstack.hooks.on_infra_start": ["conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "eager_load_services=localstack.services.plugins:eager_load_services", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "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", "_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_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler"], "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.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_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", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package"], "localstack.hooks.on_infra_ready": ["publish_provider_assignment=localstack.utils.analytics.service_providers:publish_provider_assignment", "_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "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.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:engine-legacy=localstack.services.providers:cloudformation", "cloudformation:default=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", "sns:v2=localstack.services.providers:sns_v2", "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"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.utils.catalog": ["aws-catalog-remote-state=localstack.utils.catalog.catalog:AwsCatalogRemoteStatePlugin", "aws-catalog-runtime-only=localstack.utils.catalog.catalog:AwsCatalogRuntimePlugin"]}
@@ -1 +0,0 @@
1
- {"localstack.hooks.on_infra_shutdown": ["run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints"], "localstack.cloudformation.resource_providers": ["AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "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::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "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::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "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::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin"], "localstack.hooks.on_infra_start": ["_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_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", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "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"], "localstack.packages": ["ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_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", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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", "publish_provider_assignment=localstack.utils.analytics.service_providers:publish_provider_assignment"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.utils.catalog": ["aws-catalog-remote-state=localstack.utils.catalog.catalog:AwsCatalogRemoteStatePlugin", "aws-catalog-runtime-only=localstack.utils.catalog.catalog:AwsCatalogRuntimePlugin"], "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:engine-legacy=localstack.services.providers:cloudformation", "cloudformation:default=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", "sns:v2=localstack.services.providers:sns_v2", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"]}