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

Files changed (28) hide show
  1. localstack/aws/api/cloudwatch/__init__.py +1 -1
  2. localstack/aws/api/config/__init__.py +4 -0
  3. localstack/aws/api/ec2/__init__.py +36 -0
  4. localstack/aws/api/logs/__init__.py +15 -0
  5. localstack/aws/api/s3control/__init__.py +32 -0
  6. localstack/aws/client.py +7 -2
  7. localstack/aws/forwarder.py +52 -5
  8. localstack/aws/handlers/analytics.py +1 -1
  9. localstack/aws/handlers/service.py +3 -1
  10. localstack/aws/protocol/parser.py +10 -4
  11. localstack/aws/protocol/serializer.py +4 -0
  12. localstack/aws/spec-patches.json +38 -0
  13. localstack/services/apigateway/legacy/provider.py +1 -0
  14. localstack/services/cloudwatch/provider_v2.py +1 -1
  15. localstack/services/moto.py +1 -0
  16. localstack/utils/time.py +10 -1
  17. localstack/version.py +2 -2
  18. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/METADATA +4 -4
  19. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/RECORD +27 -27
  20. localstack_core-4.8.2.dev14.dist-info/plux.json +1 -0
  21. localstack_core-4.8.2.dev12.dist-info/plux.json +0 -1
  22. {localstack_core-4.8.2.dev12.data → localstack_core-4.8.2.dev14.data}/scripts/localstack +0 -0
  23. {localstack_core-4.8.2.dev12.data → localstack_core-4.8.2.dev14.data}/scripts/localstack-supervisor +0 -0
  24. {localstack_core-4.8.2.dev12.data → localstack_core-4.8.2.dev14.data}/scripts/localstack.bat +0 -0
  25. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/WHEEL +0 -0
  26. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/entry_points.txt +0 -0
  27. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/licenses/LICENSE.txt +0 -0
  28. {localstack_core-4.8.2.dev12.dist-info → localstack_core-4.8.2.dev14.dist-info}/top_level.txt +0 -0
@@ -218,7 +218,7 @@ class ConcurrentModificationException(ServiceException):
218
218
  class ConflictException(ServiceException):
219
219
  code: str = "ConflictException"
220
220
  sender_fault: bool = False
221
- status_code: int = 400
221
+ status_code: int = 409
222
222
 
223
223
 
224
224
  class DashboardValidationMessage(TypedDict, total=False):
@@ -291,12 +291,16 @@ class RemediationExecutionState(StrEnum):
291
291
  IN_PROGRESS = "IN_PROGRESS"
292
292
  SUCCEEDED = "SUCCEEDED"
293
293
  FAILED = "FAILED"
294
+ UNKNOWN = "UNKNOWN"
294
295
 
295
296
 
296
297
  class RemediationExecutionStepState(StrEnum):
297
298
  SUCCEEDED = "SUCCEEDED"
298
299
  PENDING = "PENDING"
299
300
  FAILED = "FAILED"
301
+ IN_PROGRESS = "IN_PROGRESS"
302
+ EXITED = "EXITED"
303
+ UNKNOWN = "UNKNOWN"
300
304
 
301
305
 
302
306
  class RemediationTargetType(StrEnum):
@@ -171,6 +171,8 @@ HostReservationId = str
171
171
  Hour = int
172
172
  IamInstanceProfileAssociationId = str
173
173
  ImageId = str
174
+ ImageName = str
175
+ ImageNameRequest = str
174
176
  ImageProvider = str
175
177
  ImageProviderRequest = str
176
178
  ImageUsageReportId = str
@@ -237,12 +239,16 @@ LocalGatewayVirtualInterfaceGroupId = str
237
239
  LocalGatewayVirtualInterfaceId = str
238
240
  Location = str
239
241
  MacModificationTaskId = str
242
+ MarketplaceProductCode = str
243
+ MarketplaceProductCodeRequest = str
240
244
  MaxIpv4AddrPerInterface = int
241
245
  MaxIpv6AddrPerInterface = int
242
246
  MaxNetworkInterfaces = int
243
247
  MaxResults = int
244
248
  MaxResultsParam = int
245
249
  MaximumBandwidthInMbps = int
250
+ MaximumDaysSinceCreatedValue = int
251
+ MaximumDaysSinceDeprecatedValue = int
246
252
  MaximumEbsAttachments = int
247
253
  MaximumEfaInterfaces = int
248
254
  MaximumEnaQueueCount = int
@@ -2439,6 +2445,8 @@ class InstanceType(StrEnum):
2439
2445
  i8ge_48xlarge = "i8ge.48xlarge"
2440
2446
  i8ge_metal_24xl = "i8ge.metal-24xl"
2441
2447
  i8ge_metal_48xl = "i8ge.metal-48xl"
2448
+ mac_m4_metal = "mac-m4.metal"
2449
+ mac_m4pro_metal = "mac-m4pro.metal"
2442
2450
 
2443
2451
 
2444
2452
  class InstanceTypeHypervisor(StrEnum):
@@ -10692,6 +10700,14 @@ class CreateVpnGatewayResult(TypedDict, total=False):
10692
10700
  VpnGateway: Optional[VpnGateway]
10693
10701
 
10694
10702
 
10703
+ class CreationDateCondition(TypedDict, total=False):
10704
+ MaximumDaysSinceCreated: Optional[MaximumDaysSinceCreatedValue]
10705
+
10706
+
10707
+ class CreationDateConditionRequest(TypedDict, total=False):
10708
+ MaximumDaysSinceCreated: Optional[MaximumDaysSinceCreatedValue]
10709
+
10710
+
10695
10711
  CustomerGatewayIdStringList = List[CustomerGatewayId]
10696
10712
  CustomerGatewayList = List[CustomerGateway]
10697
10713
 
@@ -11545,6 +11561,14 @@ class DeleteVpnGatewayRequest(ServiceRequest):
11545
11561
  DryRun: Optional[Boolean]
11546
11562
 
11547
11563
 
11564
+ class DeprecationTimeCondition(TypedDict, total=False):
11565
+ MaximumDaysSinceDeprecated: Optional[MaximumDaysSinceDeprecatedValue]
11566
+
11567
+
11568
+ class DeprecationTimeConditionRequest(TypedDict, total=False):
11569
+ MaximumDaysSinceDeprecated: Optional[MaximumDaysSinceDeprecatedValue]
11570
+
11571
+
11548
11572
  class DeprovisionByoipCidrRequest(ServiceRequest):
11549
11573
  Cidr: String
11550
11574
  DryRun: Optional[Boolean]
@@ -17391,11 +17415,17 @@ class GetAllowedImagesSettingsRequest(ServiceRequest):
17391
17415
  DryRun: Optional[Boolean]
17392
17416
 
17393
17417
 
17418
+ ImageNameList = List[ImageName]
17419
+ MarketplaceProductCodeList = List[MarketplaceProductCode]
17394
17420
  ImageProviderList = List[ImageProvider]
17395
17421
 
17396
17422
 
17397
17423
  class ImageCriterion(TypedDict, total=False):
17398
17424
  ImageProviders: Optional[ImageProviderList]
17425
+ MarketplaceProductCodes: Optional[MarketplaceProductCodeList]
17426
+ ImageNames: Optional[ImageNameList]
17427
+ DeprecationTimeCondition: Optional[DeprecationTimeCondition]
17428
+ CreationDateCondition: Optional[CreationDateCondition]
17399
17429
 
17400
17430
 
17401
17431
  ImageCriterionList = List[ImageCriterion]
@@ -18495,11 +18525,17 @@ class ImageAttribute(TypedDict, total=False):
18495
18525
  BlockDeviceMappings: Optional[BlockDeviceMappingList]
18496
18526
 
18497
18527
 
18528
+ ImageNameRequestList = List[ImageNameRequest]
18529
+ MarketplaceProductCodeRequestList = List[MarketplaceProductCodeRequest]
18498
18530
  ImageProviderRequestList = List[ImageProviderRequest]
18499
18531
 
18500
18532
 
18501
18533
  class ImageCriterionRequest(TypedDict, total=False):
18502
18534
  ImageProviders: Optional[ImageProviderRequestList]
18535
+ MarketplaceProductCodes: Optional[MarketplaceProductCodeRequestList]
18536
+ ImageNames: Optional[ImageNameRequestList]
18537
+ DeprecationTimeCondition: Optional[DeprecationTimeConditionRequest]
18538
+ CreationDateCondition: Optional[CreationDateConditionRequest]
18503
18539
 
18504
18540
 
18505
18541
  ImageCriterionRequestList = List[ImageCriterionRequest]
@@ -57,6 +57,7 @@ Field = str
57
57
  FieldDelimiter = str
58
58
  FieldHeader = str
59
59
  FieldIndexName = str
60
+ FieldSelectionCriteria = str
60
61
  FilterCount = int
61
62
  FilterName = str
62
63
  FilterPattern = str
@@ -137,6 +138,7 @@ SplitStringDelimiter = str
137
138
  StartFromHead = bool
138
139
  StatsValue = float
139
140
  Success = bool
141
+ SystemField = str
140
142
  TagKey = str
141
143
  TagValue = str
142
144
  Target = str
@@ -1139,6 +1141,7 @@ class DescribeMetricFiltersRequest(ServiceRequest):
1139
1141
  metricNamespace: Optional[MetricNamespace]
1140
1142
 
1141
1143
 
1144
+ EmitSystemFields = List[SystemField]
1142
1145
  Dimensions = Dict[DimensionsKey, DimensionsValue]
1143
1146
 
1144
1147
 
@@ -1161,6 +1164,8 @@ class MetricFilter(TypedDict, total=False):
1161
1164
  creationTime: Optional[Timestamp]
1162
1165
  logGroupName: Optional[LogGroupName]
1163
1166
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
1167
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
1168
+ emitSystemFieldDimensions: Optional[EmitSystemFields]
1164
1169
 
1165
1170
 
1166
1171
  MetricFilters = List[MetricFilter]
@@ -1263,6 +1268,8 @@ class SubscriptionFilter(TypedDict, total=False):
1263
1268
  distribution: Optional[Distribution]
1264
1269
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
1265
1270
  creationTime: Optional[Timestamp]
1271
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
1272
+ emitSystemFields: Optional[EmitSystemFields]
1266
1273
 
1267
1274
 
1268
1275
  SubscriptionFilters = List[SubscriptionFilter]
@@ -2032,6 +2039,8 @@ class PutMetricFilterRequest(ServiceRequest):
2032
2039
  filterPattern: FilterPattern
2033
2040
  metricTransformations: MetricTransformations
2034
2041
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
2042
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
2043
+ emitSystemFieldDimensions: Optional[EmitSystemFields]
2035
2044
 
2036
2045
 
2037
2046
  class PutQueryDefinitionRequest(ServiceRequest):
@@ -2072,6 +2081,8 @@ class PutSubscriptionFilterRequest(ServiceRequest):
2072
2081
  roleArn: Optional[RoleArn]
2073
2082
  distribution: Optional[Distribution]
2074
2083
  applyOnTransformedLogs: Optional[ApplyOnTransformedLogs]
2084
+ fieldSelectionCriteria: Optional[FieldSelectionCriteria]
2085
+ emitSystemFields: Optional[EmitSystemFields]
2075
2086
 
2076
2087
 
2077
2088
  class PutTransformerRequest(ServiceRequest):
@@ -2929,6 +2940,8 @@ class LogsApi:
2929
2940
  filter_pattern: FilterPattern,
2930
2941
  metric_transformations: MetricTransformations,
2931
2942
  apply_on_transformed_logs: ApplyOnTransformedLogs | None = None,
2943
+ field_selection_criteria: FieldSelectionCriteria | None = None,
2944
+ emit_system_field_dimensions: EmitSystemFields | None = None,
2932
2945
  **kwargs,
2933
2946
  ) -> None:
2934
2947
  raise NotImplementedError
@@ -2980,6 +2993,8 @@ class LogsApi:
2980
2993
  role_arn: RoleArn | None = None,
2981
2994
  distribution: Distribution | None = None,
2982
2995
  apply_on_transformed_logs: ApplyOnTransformedLogs | None = None,
2996
+ field_selection_criteria: FieldSelectionCriteria | None = None,
2997
+ emit_system_fields: EmitSystemFields | None = None,
2983
2998
  **kwargs,
2984
2999
  ) -> None:
2985
3000
  raise NotImplementedError
@@ -65,6 +65,7 @@ MultiRegionAccessPointClientToken = str
65
65
  MultiRegionAccessPointId = str
66
66
  MultiRegionAccessPointName = str
67
67
  NoSuchPublicAccessBlockConfigurationMessage = str
68
+ NonEmptyKmsKeyArnString = str
68
69
  NonEmptyMaxLength1024String = str
69
70
  NonEmptyMaxLength2048String = str
70
71
  NonEmptyMaxLength256String = str
@@ -902,6 +903,36 @@ class CreateBucketResult(TypedDict, total=False):
902
903
  BucketArn: Optional[S3RegionalBucketArn]
903
904
 
904
905
 
906
+ class NotSSEFilter(TypedDict, total=False):
907
+ pass
908
+
909
+
910
+ class SSECFilter(TypedDict, total=False):
911
+ pass
912
+
913
+
914
+ class DSSEKMSFilter(TypedDict, total=False):
915
+ KmsKeyArn: Optional[NonEmptyKmsKeyArnString]
916
+
917
+
918
+ class SSEKMSFilter(TypedDict, total=False):
919
+ KmsKeyArn: Optional[NonEmptyKmsKeyArnString]
920
+ BucketKeyEnabled: Optional[Boolean]
921
+
922
+
923
+ class SSES3Filter(TypedDict, total=False):
924
+ pass
925
+
926
+
927
+ class ObjectEncryptionFilter(TypedDict, total=False):
928
+ SSES3: Optional[SSES3Filter]
929
+ SSEKMS: Optional[SSEKMSFilter]
930
+ DSSEKMS: Optional[DSSEKMSFilter]
931
+ SSEC: Optional[SSECFilter]
932
+ NOTSSE: Optional[NotSSEFilter]
933
+
934
+
935
+ ObjectEncryptionFilterList = List[ObjectEncryptionFilter]
905
936
  StorageClassList = List[S3StorageClass]
906
937
  ObjectSizeLessThanBytes = int
907
938
  ObjectSizeGreaterThanBytes = int
@@ -927,6 +958,7 @@ class JobManifestGeneratorFilter(TypedDict, total=False):
927
958
  ObjectSizeGreaterThanBytes: Optional[ObjectSizeGreaterThanBytes]
928
959
  ObjectSizeLessThanBytes: Optional[ObjectSizeLessThanBytes]
929
960
  MatchAnyStorageClass: Optional[StorageClassList]
961
+ MatchAnyObjectEncryption: Optional[ObjectEncryptionFilterList]
930
962
 
931
963
 
932
964
  class SSEKMSEncryption(TypedDict, total=False):
localstack/aws/client.py CHANGED
@@ -21,6 +21,7 @@ from localstack.utils.strings import to_str
21
21
  from .api import CommonServiceException, RequestContext, ServiceException, ServiceResponse
22
22
  from .connect import get_service_endpoint
23
23
  from .gateway import Gateway
24
+ from .spec import ProtocolName
24
25
 
25
26
  LOG = logging.getLogger(__name__)
26
27
 
@@ -284,13 +285,17 @@ def _patch_botocore_endpoint_in_memory():
284
285
 
285
286
 
286
287
  def parse_response(
287
- operation: OperationModel, response: Response, include_response_metadata: bool = True
288
+ operation: OperationModel,
289
+ protocol: ProtocolName,
290
+ response: Response,
291
+ include_response_metadata: bool = True,
288
292
  ) -> ServiceResponse:
289
293
  """
290
294
  Parses an HTTP Response object into an AWS response object using botocore. It does this by adapting the
291
295
  procedure of ``botocore.endpoint.convert_to_response_dict`` to work with Werkzeug's server-side response object.
292
296
 
293
297
  :param operation: the operation of the original request
298
+ :param protocol: the protocol of the original request
294
299
  :param response: the HTTP response object containing the response of the operation
295
300
  :param include_response_metadata: True if the ResponseMetadata (typical for boto response dicts) should be included
296
301
  :return: a parsed dictionary as it is returned by botocore
@@ -322,7 +327,7 @@ def parse_response(
322
327
  timestamp_parser=_cbor_timestamp_parser, blob_parser=_cbor_blob_parser
323
328
  )
324
329
 
325
- parser = factory.create_parser(operation.service_model.protocol)
330
+ parser = factory.create_parser(protocol)
326
331
  parsed_response = parser.parse(response_dict, operation.output_shape)
327
332
 
328
333
  if response.status_code >= 301:
@@ -8,6 +8,8 @@ from typing import Any
8
8
 
9
9
  from botocore.awsrequest import AWSPreparedRequest, prepare_request_dict
10
10
  from botocore.config import Config as BotoConfig
11
+ from botocore.model import OperationModel
12
+ from botocore.serialize import create_serializer
11
13
  from werkzeug.datastructures import Headers
12
14
 
13
15
  from localstack.aws.api.core import (
@@ -19,7 +21,7 @@ from localstack.aws.api.core import (
19
21
  from localstack.aws.client import create_http_request, parse_response, raise_service_exception
20
22
  from localstack.aws.connect import connect_to
21
23
  from localstack.aws.skeleton import DispatchTable, create_dispatch_table
22
- from localstack.aws.spec import load_service
24
+ from localstack.aws.spec import ProtocolName, load_service
23
25
  from localstack.constants import AWS_REGION_US_EAST_1
24
26
  from localstack.http import Response
25
27
  from localstack.http.proxy import Proxy
@@ -79,7 +81,7 @@ class AwsRequestProxy:
79
81
  if not self.parse_response:
80
82
  return http_response
81
83
  parsed_response = parse_response(
82
- context.operation, http_response, self.include_response_metadata
84
+ context.operation, context.protocol, http_response, self.include_response_metadata
83
85
  )
84
86
  raise_service_exception(http_response, parsed_response)
85
87
  return parsed_response
@@ -90,6 +92,7 @@ class AwsRequestProxy:
90
92
  action=original.operation.name,
91
93
  parameters=service_request,
92
94
  region=original.region,
95
+ protocol=original.protocol,
93
96
  )
94
97
  # update the newly created context with non-payload specific request headers (the payload can differ from
95
98
  # the original request, f.e. it could be JSON encoded now while the initial request was CBOR encoded)
@@ -184,7 +187,9 @@ def dispatch_to_backend(
184
187
  :raises ServiceException: if the dispatcher returned an error response
185
188
  """
186
189
  http_response = http_request_dispatcher(context)
187
- parsed_response = parse_response(context.operation, http_response, include_response_metadata)
190
+ parsed_response = parse_response(
191
+ context.operation, context.protocol, http_response, include_response_metadata
192
+ )
188
193
  raise_service_exception(http_response, parsed_response)
189
194
  return parsed_response
190
195
 
@@ -196,6 +201,7 @@ _non_validating_boto_config = BotoConfig(parameter_validation=False)
196
201
  def create_aws_request_context(
197
202
  service_name: str,
198
203
  action: str,
204
+ protocol: ProtocolName = None,
199
205
  parameters: Mapping[str, Any] = None,
200
206
  region: str = None,
201
207
  endpoint_url: str | None = None,
@@ -210,6 +216,7 @@ def create_aws_request_context(
210
216
 
211
217
  :param service_name: the AWS service
212
218
  :param action: the action to invoke
219
+ :param protocol: the protocol to use
213
220
  :param parameters: the invocation parameters
214
221
  :param region: the region name (default is us-east-1)
215
222
  :param endpoint_url: the endpoint to call (defaults to localstack)
@@ -222,6 +229,8 @@ def create_aws_request_context(
222
229
 
223
230
  service = load_service(service_name)
224
231
  operation = service.operation_model(action)
232
+ # TODO: remove this once every usage upstream has been removed
233
+ protocol = protocol or service.resolved_protocol
225
234
 
226
235
  # we re-use botocore internals here to serialize the HTTP request,
227
236
  # but deactivate validation (validation errors should be handled by the backend)
@@ -243,8 +252,14 @@ def create_aws_request_context(
243
252
  endpoint_url = "http://localhost.localstack.cloud"
244
253
  # pre-process the request args (some params are modified using botocore event handlers)
245
254
  parameters = client._emit_api_params(parameters, operation, request_context)
246
- request_dict = client._convert_to_request_dict(
247
- parameters, operation, endpoint_url, context=request_context
255
+
256
+ request_dict = _convert_to_request_dict_with_protocol(
257
+ client=client,
258
+ protocol=protocol,
259
+ api_params=parameters,
260
+ operation_model=operation,
261
+ endpoint_url=endpoint_url,
262
+ context=request_context,
248
263
  )
249
264
 
250
265
  if auth_path := request_dict.get("auth_path"):
@@ -266,7 +281,39 @@ def create_aws_request_context(
266
281
  context = RequestContext(request=create_http_request(aws_request))
267
282
  context.service = service
268
283
  context.operation = operation
284
+ context.protocol = protocol
269
285
  context.region = region
270
286
  context.service_request = parameters
271
287
 
272
288
  return context
289
+
290
+
291
+ def _convert_to_request_dict_with_protocol(
292
+ client,
293
+ protocol: ProtocolName,
294
+ api_params: dict,
295
+ operation_model: OperationModel,
296
+ endpoint_url: str,
297
+ context: dict,
298
+ set_user_agent_header: bool = True,
299
+ ) -> dict:
300
+ """
301
+ This function is taken from botocore Client._convert_to_request_dict, but we are overriding the serializer
302
+ Botocore does not expose a way to create a client with a specific protocol, but we need this functionality
303
+ to support multi-protocols.
304
+ """
305
+ serializer = create_serializer(protocol, include_validation=False)
306
+ request_dict = serializer.serialize_to_request(api_params, operation_model)
307
+ if not client._client_config.inject_host_prefix:
308
+ request_dict.pop("host_prefix", None)
309
+ if set_user_agent_header:
310
+ user_agent = client._user_agent_creator.to_string()
311
+ else:
312
+ user_agent = None
313
+ prepare_request_dict(
314
+ request_dict,
315
+ endpoint_url=endpoint_url,
316
+ user_agent=user_agent,
317
+ context=context,
318
+ )
319
+ return request_dict
@@ -60,7 +60,7 @@ class ServiceRequestCounter:
60
60
  if context.service_exception:
61
61
  return context.service_exception.code
62
62
 
63
- response = parse_response(context.operation, response)
63
+ response = parse_response(context.operation, context.protocol, response)
64
64
  return response["Error"]["Code"]
65
65
  except Exception:
66
66
  if config.DEBUG_ANALYTICS:
@@ -255,7 +255,9 @@ class ServiceResponseParser(Handler):
255
255
  return
256
256
 
257
257
  # in this case we need to parse the raw response
258
- parsed = parse_response(context.operation, response, include_response_metadata=False)
258
+ parsed = parse_response(
259
+ context.operation, context.protocol, response, include_response_metadata=False
260
+ )
259
261
  if service_exception := parse_service_exception(response, parsed):
260
262
  context.service_exception = service_exception
261
263
  else:
@@ -359,13 +359,11 @@ class RequestParser(abc.ABC):
359
359
 
360
360
  @staticmethod
361
361
  def _timestamp_unixtimestamp(timestamp_string: str) -> datetime.datetime:
362
- dt = datetime.datetime.fromtimestamp(int(timestamp_string), tz=datetime.UTC)
363
- return dt.replace(tzinfo=None)
362
+ return datetime.datetime.fromtimestamp(int(timestamp_string), tz=datetime.UTC)
364
363
 
365
364
  @staticmethod
366
365
  def _timestamp_unixtimestampmillis(timestamp_string: str) -> datetime.datetime:
367
- dt = datetime.datetime.fromtimestamp(float(timestamp_string) / 1000, tz=datetime.UTC)
368
- return dt.replace(tzinfo=None)
366
+ return datetime.datetime.fromtimestamp(float(timestamp_string) / 1000, tz=datetime.UTC)
369
367
 
370
368
  @staticmethod
371
369
  def _timestamp_rfc822(datetime_string: str) -> datetime.datetime:
@@ -1168,6 +1166,14 @@ class BaseCBORRequestParser(RequestParser, ABC):
1168
1166
  def _parse_blob(self, _, __, node: bytes, ___) -> bytes:
1169
1167
  return node
1170
1168
 
1169
+ @_text_content
1170
+ def _parse_timestamp(
1171
+ self, _, shape: Shape, node: datetime.datetime | str, ___
1172
+ ) -> datetime.datetime:
1173
+ if isinstance(node, datetime.datetime):
1174
+ return node
1175
+ return super()._parse_timestamp(_, shape, node, ___)
1176
+
1171
1177
  # This helper method is intended for use when parsing indefinite length items.
1172
1178
  # It does nothing if the next byte is not the break code. If the next byte is
1173
1179
  # the break code, it advances past that byte and returns True so the calling
@@ -1773,6 +1773,8 @@ class CBORResponseSerializer(BaseCBORResponseSerializer):
1773
1773
  mime_type: str,
1774
1774
  request_id: str,
1775
1775
  ) -> bytes | None:
1776
+ if shape is None:
1777
+ return b""
1776
1778
  body = bytearray()
1777
1779
  self._serialize_data_item(body, params, shape)
1778
1780
  return bytes(body)
@@ -1839,6 +1841,8 @@ class RpcV2CBORResponseSerializer(BaseRpcV2ResponseSerializer, BaseCBORResponseS
1839
1841
  mime_type: str,
1840
1842
  request_id: str,
1841
1843
  ) -> bytes | None:
1844
+ if shape is None:
1845
+ return b""
1842
1846
  body = bytearray()
1843
1847
  self._serialize_data_item(body, params, shape)
1844
1848
  return bytes(body)
@@ -1352,5 +1352,43 @@
1352
1352
  "path": "/operations/CreateApiMapping/http/responseCode",
1353
1353
  "value": 200
1354
1354
  }
1355
+ ],
1356
+ "cloudwatch/2010-08-01/service-2": [
1357
+ {
1358
+ "op": "add",
1359
+ "path": "/metadata/awsQueryCompatible",
1360
+ "value": {}
1361
+ },
1362
+ {
1363
+ "op": "add",
1364
+ "path": "/metadata/jsonVersion",
1365
+ "value": "1.0"
1366
+ },
1367
+ {
1368
+ "op": "add",
1369
+ "path": "/metadata/targetPrefix",
1370
+ "value": "GraniteServiceVersion20100801"
1371
+ },
1372
+ {
1373
+ "op": "replace",
1374
+ "path": "/metadata/protocol",
1375
+ "value": "smithy-rpc-v2-cbor"
1376
+ },
1377
+ {
1378
+ "op": "replace",
1379
+ "path": "/metadata/protocols",
1380
+ "value": [
1381
+ "smithy-rpc-v2-cbor",
1382
+ "json",
1383
+ "query"
1384
+ ]
1385
+ },
1386
+ {
1387
+ "op": "add",
1388
+ "path": "/shapes/ConflictException/error",
1389
+ "value": {
1390
+ "httpStatusCode": 409
1391
+ }
1392
+ }
1355
1393
  ]
1356
1394
  }
@@ -2977,6 +2977,7 @@ def create_custom_context(
2977
2977
  ctx = create_aws_request_context(
2978
2978
  service_name=context.service.service_name,
2979
2979
  action=action,
2980
+ protocol=context.service.protocol,
2980
2981
  parameters=parameters,
2981
2982
  region=context.region,
2982
2983
  )
@@ -280,7 +280,7 @@ class CloudwatchProvider(CloudwatchApi, ServiceLifecycleHook):
280
280
  timestamp_value_dicts = [
281
281
  {
282
282
  "Timestamp": timestamp,
283
- "Value": value,
283
+ "Value": float(value),
284
284
  }
285
285
  for timestamp, value in zip(timestamps, values, strict=False)
286
286
  ]
@@ -66,6 +66,7 @@ def call_moto_with_request(
66
66
  action=context.operation.name,
67
67
  parameters=service_request,
68
68
  region=context.region,
69
+ protocol=context.protocol,
69
70
  )
70
71
  # we keep the headers from the original request, but override them with the ones created from the `service_request`
71
72
  headers = copy.deepcopy(context.request.headers)
localstack/utils/time.py CHANGED
@@ -1,6 +1,7 @@
1
1
  import time
2
2
  from datetime import date, datetime, timezone, tzinfo
3
3
  from typing import Optional
4
+ from zoneinfo import ZoneInfo
4
5
 
5
6
  TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%S"
6
7
  TIMESTAMP_FORMAT_TZ = "%Y-%m-%dT%H:%M:%SZ"
@@ -42,6 +43,11 @@ def epoch_timestamp() -> float:
42
43
 
43
44
 
44
45
  def parse_timestamp(ts_str: str) -> datetime:
46
+ """
47
+ Parse the incoming date string into a timezone aware datetime object
48
+ :param ts_str:
49
+ :return:
50
+ """
45
51
  for ts_format in [
46
52
  TIMESTAMP_FORMAT,
47
53
  TIMESTAMP_FORMAT_TZ,
@@ -49,7 +55,10 @@ def parse_timestamp(ts_str: str) -> datetime:
49
55
  TIMESTAMP_READABLE_FORMAT,
50
56
  ]:
51
57
  try:
52
- return datetime.strptime(ts_str, ts_format)
58
+ value = datetime.strptime(ts_str, ts_format)
59
+ if value.tzinfo is None:
60
+ value = value.replace(tzinfo=ZoneInfo("UTC"))
61
+ return value
53
62
  except ValueError:
54
63
  pass
55
64
  raise Exception(f"Unable to parse timestamp string with any known formats: {ts_str}")
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.dev12'
32
- __version_tuple__ = version_tuple = (4, 8, 2, 'dev12')
31
+ __version__ = version = '4.8.2.dev14'
32
+ __version_tuple__ = version_tuple = (4, 8, 2, 'dev14')
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.dev12
3
+ Version: 4.8.2.dev14
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
@@ -31,8 +31,8 @@ Requires-Dist: requests>=2.20.0
31
31
  Requires-Dist: semver>=2.10
32
32
  Requires-Dist: tailer>=0.4.1
33
33
  Provides-Extra: base-runtime
34
- Requires-Dist: boto3==1.40.30; extra == "base-runtime"
35
- Requires-Dist: botocore==1.40.30; extra == "base-runtime"
34
+ Requires-Dist: boto3==1.40.35; extra == "base-runtime"
35
+ Requires-Dist: botocore==1.40.35; extra == "base-runtime"
36
36
  Requires-Dist: awscrt!=0.27.1,>=0.13.14; extra == "base-runtime"
37
37
  Requires-Dist: cbor2>=5.5.0; extra == "base-runtime"
38
38
  Requires-Dist: dnspython>=1.16.0; extra == "base-runtime"
@@ -50,7 +50,7 @@ Requires-Dist: xmltodict>=0.13.0; extra == "base-runtime"
50
50
  Requires-Dist: rolo>=0.7; extra == "base-runtime"
51
51
  Provides-Extra: runtime
52
52
  Requires-Dist: localstack-core[base-runtime]; extra == "runtime"
53
- Requires-Dist: awscli==1.42.30; extra == "runtime"
53
+ Requires-Dist: awscli==1.42.35; extra == "runtime"
54
54
  Requires-Dist: airspeed-ext>=0.6.3; extra == "runtime"
55
55
  Requires-Dist: kclpy-ext>=3.0.0; extra == "runtime"
56
56
  Requires-Dist: antlr4-python3-runtime==4.13.2; extra == "runtime"
@@ -4,21 +4,21 @@ 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=rak1zdSWnASuIFwX9QBxTVDlKFdZPVjeRb0f4DBXyXI,719
7
+ localstack/version.py,sha256=KIeyK78WHTa_4MWzhOWleeHiO9vq8Fl1S-6bMXzx-5I,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
11
11
  localstack/aws/chain.py,sha256=upf7GDohphsH1tKBbwU_J5J5xK8rqcWb-dU3dJL0Coo,1221
12
- localstack/aws/client.py,sha256=yZRIrhRSEv3YT3wd55zoNKeWp9I3QQ0KNEaqRPbpri4,15957
12
+ localstack/aws/client.py,sha256=CqUugJjgl-ZQyv2sDrSt0ppoCjzDQI9Gv3rIB9bCbXk,16059
13
13
  localstack/aws/components.py,sha256=nzZtcasAaLoMRJ2V6EcX4xD9uPwxmS8ovRHVyrMzabA,607
14
14
  localstack/aws/connect.py,sha256=3KxuSq3G9jbb65-DWxWfPe8D33Ato_90j14c-B44oq4,29810
15
- localstack/aws/forwarder.py,sha256=xPI0GkiDqVRmbSnOe7QqGRoUAB8FE5FwjrUwYYo4oLM,11269
15
+ localstack/aws/forwarder.py,sha256=GGo3l0GCsaASLOC7THKoUsVaH678WVH-PJoMzEotk0Y,12868
16
16
  localstack/aws/gateway.py,sha256=d_Tm0N2-mAnuvE4puXfRjgzMHwR3EuuOQH5IIWX-vAQ,903
17
17
  localstack/aws/mocking.py,sha256=JZZ7ZyAmlCGzywTF8jH4IelPGIiLqyz_ltDtO046a3E,13683
18
18
  localstack/aws/patches.py,sha256=r5EDhDE_OL25fQzT6oEhV7LvpBzTisOqxdn-JD_ZfrI,1883
19
19
  localstack/aws/scaffold.py,sha256=9GLeSaWQdCWBpFJghj92tFuGZ2CaCNE9iqJ020vs8a0,20029
20
20
  localstack/aws/skeleton.py,sha256=N_siYCImRXn_ckr0f2oRFhdox6grAGXi5q02LOxgGDA,8241
21
- localstack/aws/spec-patches.json,sha256=9zIgusH52V72SmOaRHTlWcu4aX5GEb2SzX1U9EL7SpU,42563
21
+ localstack/aws/spec-patches.json,sha256=C05aUHXG41WaD4amPhmDAAL_BFl9GMMQWU-dUIVspTY,43317
22
22
  localstack/aws/spec.py,sha256=EHioKRZyVuDMyP6iOf0O51Tyc2MTfD2eodhnJquhjno,14988
23
23
  localstack/aws/api/__init__.py,sha256=JspwCauxfTTdLNVAr7AkQaPu1lELdBQ1miB9B9sndOo,297
24
24
  localstack/aws/api/core.py,sha256=7qi_hFySJTnOSh1Kv-FCAp2JNpK5jP8sucoG-VTyH4k,6913
@@ -26,11 +26,11 @@ localstack/aws/api/acm/__init__.py,sha256=67OHJbngmz4nKaXm9grkLW_Rl4RLRCeOBffhh3
26
26
  localstack/aws/api/apigateway/__init__.py,sha256=30pTFfEn2VzlJeTm78Rjrj4MYtkVdobS-1hoOnnTZ0I,79884
27
27
  localstack/aws/api/cloudcontrol/__init__.py,sha256=rVF7U2eYowakBDklAocYNjDzLtLNZqGgK1IBfnh_cG0,11595
28
28
  localstack/aws/api/cloudformation/__init__.py,sha256=9pywbIDO5DKjUqRu_X78vZIvUMnrJZ_0tbpqW7lsMxA,117360
29
- localstack/aws/api/cloudwatch/__init__.py,sha256=dppw7e1AHs-Dhf0WhCVheHkXxlGyCz9n-S9T96HzeoY,47224
30
- localstack/aws/api/config/__init__.py,sha256=6ATQPkUBu3_KSrG2siHjh7e-qZq5MgPBcT0SLBe2lLA,144985
29
+ localstack/aws/api/cloudwatch/__init__.py,sha256=EgYlhAU_w0D2E2VMd9jzjTnjwR5S9-AObvLl7RYLFLw,47224
30
+ localstack/aws/api/config/__init__.py,sha256=5LWxjUmRzrmiiO_9S7CEQEAOyNfoplKRw37lMQNDUDY,145087
31
31
  localstack/aws/api/dynamodb/__init__.py,sha256=DrFVVZOiEPM2oidelJvhFlq_KFRkyu8OFTGdMG6eM6M,94576
32
32
  localstack/aws/api/dynamodbstreams/__init__.py,sha256=WUSvC51HIBnpDqDLQjCi2zh1HD1GccwsnpLiqcoftik,7316
33
- localstack/aws/api/ec2/__init__.py,sha256=hEeD0mujQ51vwAZ8eA4MV6xZeaDbBLcOVFzPbJPMaEo,957863
33
+ localstack/aws/api/ec2/__init__.py,sha256=Q2SbIMuu4FfFRxlrhs_JADlmnuJSKc2C7zUj3Vctjok,959334
34
34
  localstack/aws/api/es/__init__.py,sha256=QQiin0n_ug9gl_tI6noSFBjdmaL4GVv4EOkvoQyOxrk,64252
35
35
  localstack/aws/api/events/__init__.py,sha256=j0hW_k2AeuMn9-1INuYSg6MUV1JRu5c0XuQb_3OU-Iw,61874
36
36
  localstack/aws/api/firehose/__init__.py,sha256=_lCSkVCQ4Y25EHtAAAmbfOjdVK1PlCkH5XeTGtCZPzk,58579
@@ -38,7 +38,7 @@ localstack/aws/api/iam/__init__.py,sha256=HaCFIFcpI76rOBmP4x9JPOh1q-70Hirw76V5Y4
38
38
  localstack/aws/api/kinesis/__init__.py,sha256=1--vaNpflWcrrjwoQC5CzoFkWgUvHiKcuy4l4krMzgY,28847
39
39
  localstack/aws/api/kms/__init__.py,sha256=P8hjFqE75-uuVvYnz2etn02t141KLy6XtxhrE5aX48o,57423
40
40
  localstack/aws/api/lambda_/__init__.py,sha256=1JRC4qYQu8qAoVg5u4mbq1IFhTs8-mD3QT9lTf_UJrQ,80748
41
- localstack/aws/api/logs/__init__.py,sha256=rgFYcgXHMaKfKJI6kUkAvIER7LN-FgDHieCDIGKdieQ,87678
41
+ localstack/aws/api/logs/__init__.py,sha256=i54kxmSEzJ4QxUMlZ7unTPefnVzD7OYznILiSQIms3s,88494
42
42
  localstack/aws/api/opensearch/__init__.py,sha256=yiysEX8ipJoKhwR2CWYo5j10_Iz_WAKF_TViGZ7I_qo,99262
43
43
  localstack/aws/api/pipes/__init__.py,sha256=Gi8PpjPvWNKgjabKK7Up-CpTiLfguwXRqLv81H0-hEY,33075
44
44
  localstack/aws/api/redshift/__init__.py,sha256=TqzLdaVsKzpfL2sFDXZMiMw8PnplXcQdJO24L-IQZP4,158552
@@ -47,7 +47,7 @@ localstack/aws/api/resourcegroupstaggingapi/__init__.py,sha256=ZwWQvascBdlshA3MC
47
47
  localstack/aws/api/route53/__init__.py,sha256=ETWrWeBUXMA8-xwWbrUiP0qXnG68ui97Pl5VGoVK2xo,71358
48
48
  localstack/aws/api/route53resolver/__init__.py,sha256=3sMO3O1KpM2CNdaeMV0jlZp2xBrSHo2iD7iZk1oHFfw,60894
49
49
  localstack/aws/api/s3/__init__.py,sha256=zYxMxqFh-a_A-8VCTPfcGAlBLZqF0rHy3m6rrj8ymt0,165521
50
- localstack/aws/api/s3control/__init__.py,sha256=_2aCOOccVhcAZHOSfXaCMzIr8rDFg_WzTj37d4qahn8,95799
50
+ localstack/aws/api/s3control/__init__.py,sha256=UhmX-zYgZ7lpQDwA1nLyUqWp6LhkkYhnzTwU0_S_mwQ,96574
51
51
  localstack/aws/api/scheduler/__init__.py,sha256=uN_RQ3y_RM63_fsWMvgHSQzOZ70sdkzU_XOrfXZJwfw,15711
52
52
  localstack/aws/api/secretsmanager/__init__.py,sha256=lTJ2y1n8-k38u20G1nq43L9WeMrkZmwXdqyfchvoj-E,23934
53
53
  localstack/aws/api/ses/__init__.py,sha256=F_i_8DFC0edu1X1_vz5bCrblpzEG5lx_uqPeeW_TNIw,56479
@@ -62,7 +62,7 @@ localstack/aws/api/transcribe/__init__.py,sha256=oIh5LgOejT1qCgYu4rH97m0XXKcLoRC
62
62
  localstack/aws/data/sqs-query/2012-11-05/README.md,sha256=kCa30EG7duD8naEHFmWNYt-mpPzl3Z5oU2YS5sz_4Mg,1117
63
63
  localstack/aws/data/sqs-query/2012-11-05/service-2.json,sha256=QFuVuRqTC82O-uVvrBf5r6Wk-lRm8oCxgLgWRGvRELo,34136
64
64
  localstack/aws/handlers/__init__.py,sha256=qeSfvzPAALcgwDZRQmPQL0ULorMd5CFPmLU09FsEmww,2025
65
- localstack/aws/handlers/analytics.py,sha256=gq9Mj48okCGERbkkwJUH6k4_tLE9Q1lveiaBRz1AKKM,2424
65
+ localstack/aws/handlers/analytics.py,sha256=RARHggnOGGPjIiuf2WwJ2j8uMSoN0AnY03Lo7wCEV_0,2442
66
66
  localstack/aws/handlers/auth.py,sha256=mCFMGQSnt1rTgZ8HAXWHZJPYNLtyVwR30Medn1BD5ao,1946
67
67
  localstack/aws/handlers/codec.py,sha256=PuHaUVXEEjkFKTjoqDrJocUTzVNov_nYPXfkbQf84kU,1337
68
68
  localstack/aws/handlers/cors.py,sha256=ZEmcftE_4bpA5avBCRksV-0A9EvLhihGb8j_atB7_7w,10733
@@ -77,15 +77,15 @@ localstack/aws/handlers/proxy.py,sha256=SnLQ70IWxPrrN_rhTaNGUy79kiysWaF0qrOMNavA
77
77
  localstack/aws/handlers/region.py,sha256=EV4QhpzJRYFrS6h5ntUAO9uwwsRv_RBbNpGOwR7XgCM,3550
78
78
  localstack/aws/handlers/response.py,sha256=gc0jooGNt1Jtqn7cx-9Jw6CHDYBk6DcpCun3O3qfiPc,934
79
79
  localstack/aws/handlers/routes.py,sha256=O4NfJy3_SACxdKGOt9hcQurGmlv7blOheKR9JBbOBDI,84
80
- localstack/aws/handlers/service.py,sha256=jFNkVagbIPiDGSEH24U_KQo5i6ugkc82lk2Lh2sorlg,11909
80
+ localstack/aws/handlers/service.py,sha256=qGI0sxUXSqYZwSh7K8lzNOfiAoA-16UKJ4VDN6JHnOg,11949
81
81
  localstack/aws/handlers/service_plugin.py,sha256=9dOZIkgeF7zKM-ThhetMgVEhbgdSrutStbNcaOAKlrE,3596
82
82
  localstack/aws/handlers/tracing.py,sha256=y_BUJKjNgaRGebm88NSqni4GFCQ_ZgB2JBRnEt5V9z4,1407
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=e8uJsV9H_zQMQ6-cC0a85ojRnkI51mTeKImjhPF0tGA,70565
86
+ localstack/aws/protocol/parser.py,sha256=KHCBSpBzVhFcg5Yd4HLmtUCJbl5LhhGtelRrZt3gUaM,70764
87
87
  localstack/aws/protocol/routing.py,sha256=x9AFpMQsVHD7JadtLHR7zjfBw3AJBayITNAYiUtnlwQ,3217
88
- localstack/aws/protocol/serializer.py,sha256=c4h3CrRrU6beLaV27YaAiVsT6yVlibGhXQ_Qb-4p2fI,103218
88
+ localstack/aws/protocol/serializer.py,sha256=JTu79bp4IWZ-OX0EEgF88az0_4B51gOEx7nnqzgosq4,103316
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
@@ -175,7 +175,7 @@ localstack/runtime/server/twisted.py,sha256=bDYoRvF4HRGn2eYyPJ1AMCDeQ45ks1vVwzhx
175
175
  localstack/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
176
  localstack/services/edge.py,sha256=Z7ZOeUZE11Z31DeYiXOtzxbxtzWWVOzOYlVlR8ld7xY,6793
177
177
  localstack/services/internal.py,sha256=V5c_VnRjUmRptCyaRpLxs43zEzH3KxOAnuIvbLH1npk,11812
178
- localstack/services/moto.py,sha256=TqMuGh_7rXgauPhLA-DKIWB1cZL1q5zcxf0yqo4WRGI,9753
178
+ localstack/services/moto.py,sha256=fz5CDqN9Xf1udFU7ycWuiSnDM_-2A4vCmMITwptS8vc,9788
179
179
  localstack/services/plugins.py,sha256=yC8ImTk-SHtadctEXsvGMpOfQ2Hc7dQqrN41peCtry8,25053
180
180
  localstack/services/providers.py,sha256=cOolOC-hT8CHbOxC8j1VYpI5RE6hQOt-S7CsH2gK6K8,13209
181
181
  localstack/services/stores.py,sha256=11eON1arTKsLAcs4Z6aPKJL3jUxMpJrZBHEy-HcNfMw,11653
@@ -192,7 +192,7 @@ localstack/services/apigateway/legacy/context.py,sha256=Srs_q3YItn9ylzrR7W64JEGm
192
192
  localstack/services/apigateway/legacy/helpers.py,sha256=zEWCHvb7EnyT5uSFjnyIvrXTMfIq3m3BgNDnfEAORsw,27595
193
193
  localstack/services/apigateway/legacy/integration.py,sha256=5kmMuAumwkpYt6uGoJB08aesT-SjecZrWYO1hlrKiPo,48705
194
194
  localstack/services/apigateway/legacy/invocations.py,sha256=6zzau8rr-ww-6Yvh7SvT7nKvQVWuD0RumYWyhNGQfj8,15393
195
- localstack/services/apigateway/legacy/provider.py,sha256=QA6rWA_PPzrOCICM-ztyb_AkHToeVgwKAqMHPzs8-v8,133474
195
+ localstack/services/apigateway/legacy/provider.py,sha256=t98XZ-FH3XMzXmbDICF8vCvl4J-k50RxH4G_WMYtb54,133517
196
196
  localstack/services/apigateway/legacy/router_asf.py,sha256=Usj-inyFvTLeDJgspQFl6Ztxcb5gT4gZHVam1XjE-BU,6096
197
197
  localstack/services/apigateway/legacy/templates.py,sha256=56fo6AoFexgXxAJL8heWLFhBeDTj5LZfSmRA3g-_9IY,15015
198
198
  localstack/services/apigateway/next_gen/__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=Nfz5CupS6aUbuo0Qdcwr7v38t48_K1UmLiQ4YSI8_4Y,45162
347
+ localstack/services/cloudwatch/provider_v2.py,sha256=S8a4RiYqfXagu4Mo35k5k5EEbFDXKX2JsruEfCW9Fu0,45169
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
@@ -1246,7 +1246,7 @@ localstack/utils/sync.py,sha256=Lx0T33Qausn4utYn9HZg4C-o4PliE_7j1HZ8vtD1vyc,3664
1246
1246
  localstack/utils/tagging.py,sha256=ayRhBEIkLxqWNzdkLtVNLU2EmAOJYTR0Kujj2FsG8T8,1439
1247
1247
  localstack/utils/testutil.py,sha256=5mfG_I6mE4p31bI0nFINeDRqc4TxoaeDwhwK5dyfgcE,21555
1248
1248
  localstack/utils/threads.py,sha256=ib2BuB-dzLY2nnr7mPUcOxHQ8hvIobTXczGzDOamfbY,5050
1249
- localstack/utils/time.py,sha256=lF8XUtMdx8Yt7qhAh3eM0JTXF10NKrlwBropb49uJnU,2015
1249
+ localstack/utils/time.py,sha256=1OCRiBPRDVP8Y6LZ4ENj5VgHImTgWTZzkxfyD5y-gno,2291
1250
1250
  localstack/utils/urls.py,sha256=s66FfBL_KJcCKOvMn-vi1PksrWFud602Os0Vzg01_XA,717
1251
1251
  localstack/utils/venv.py,sha256=ORSmZn6fWhN9jml_lsv_WE8PvOn9cIGgEMbeY6paAQo,3210
1252
1252
  localstack/utils/xml.py,sha256=mxxtDYhRFXFakP6UL61pcFWcztGPo7ZbSUaZY9LiJ2w,1449
@@ -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.dev12.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1298
- localstack_core-4.8.2.dev12.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1299
- localstack_core-4.8.2.dev12.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1300
- localstack_core-4.8.2.dev12.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1301
- localstack_core-4.8.2.dev12.dist-info/METADATA,sha256=PG60xwdb2AfbFLOBbI0eGxNzROHRZ-vIc_fx7IMtmEI,5538
1302
- localstack_core-4.8.2.dev12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1303
- localstack_core-4.8.2.dev12.dist-info/entry_points.txt,sha256=5IoyjalZoY-PWY5Lk_AeEjEEQ-rKQJhijLe697GVlnM,20953
1304
- localstack_core-4.8.2.dev12.dist-info/plux.json,sha256=YiWX0dyrOKc6MFSNN-AWVVesoLjDAD077CgR4jHJi7I,21181
1305
- localstack_core-4.8.2.dev12.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1306
- localstack_core-4.8.2.dev12.dist-info/RECORD,,
1297
+ localstack_core-4.8.2.dev14.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1298
+ localstack_core-4.8.2.dev14.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1299
+ localstack_core-4.8.2.dev14.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1300
+ localstack_core-4.8.2.dev14.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1301
+ localstack_core-4.8.2.dev14.dist-info/METADATA,sha256=wsEiHTikiG1PLRGO84rItWTPgj3LUi6vDUwLf2SZQJI,5538
1302
+ localstack_core-4.8.2.dev14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1303
+ localstack_core-4.8.2.dev14.dist-info/entry_points.txt,sha256=5IoyjalZoY-PWY5Lk_AeEjEEQ-rKQJhijLe697GVlnM,20953
1304
+ localstack_core-4.8.2.dev14.dist-info/plux.json,sha256=HCk1y-QKqN5EVfpvqHYpoDST9_7amCARNYEfHsSD0Zo,21181
1305
+ localstack_core-4.8.2.dev14.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1306
+ localstack_core-4.8.2.dev14.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "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::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "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::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "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::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "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::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin"], "localstack.hooks.on_infra_start": ["register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "eager_load_services=localstack.services.plugins:eager_load_services", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "init_response_mutation_handler=localstack.aws.handlers.response:init_response_mutation_handler", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_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", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "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"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints"], "localstack.packages": ["jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "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", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_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"], "localstack.utils.catalog": ["aws-catalog-remote-state=localstack.utils.catalog.catalog:AwsCatalogRemoteStatePlugin", "aws-catalog-runtime-only=localstack.utils.catalog.catalog:AwsCatalogRuntimePlugin"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "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.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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"]}
@@ -1 +0,0 @@
1
- {"localstack.cloudformation.resource_providers": ["AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "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::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "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::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin"], "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", "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", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "_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", "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", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints"], "localstack.packages": ["ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_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", "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"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.on_infra_shutdown": ["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", "stop_server=localstack.dns.plugins:stop_server", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics"], "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.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "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.utils.catalog": ["aws-catalog-remote-state=localstack.utils.catalog.catalog:AwsCatalogRemoteStatePlugin", "aws-catalog-runtime-only=localstack.utils.catalog.catalog:AwsCatalogRuntimePlugin"], "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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"]}