localstack-core 4.9.3.dev45__py3-none-any.whl → 4.9.3.dev57__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.
- localstack/aws/api/ec2/__init__.py +526 -46
- localstack/services/apigateway/legacy/provider.py +23 -1
- localstack/services/cloudformation/engine/v2/change_set_model_executor.py +0 -1
- localstack/services/cloudformation/v2/provider.py +6 -0
- localstack/services/s3/constants.py +0 -2
- localstack/services/s3/notifications.py +1 -1
- localstack/services/s3/presigned_url.py +13 -28
- localstack/services/s3/provider.py +4 -4
- localstack/services/s3/utils.py +2 -11
- localstack/testing/aws/cloudformation_utils.py +1 -1
- localstack/testing/pytest/in_memory_localstack.py +0 -4
- localstack/utils/files.py +31 -7
- localstack/utils/json.py +16 -2
- localstack/version.py +2 -2
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/METADATA +14 -9
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/RECORD +24 -24
- localstack_core-4.9.3.dev57.dist-info/plux.json +1 -0
- localstack_core-4.9.3.dev45.dist-info/plux.json +0 -1
- {localstack_core-4.9.3.dev45.data → localstack_core-4.9.3.dev57.data}/scripts/localstack +0 -0
- {localstack_core-4.9.3.dev45.data → localstack_core-4.9.3.dev57.data}/scripts/localstack-supervisor +0 -0
- {localstack_core-4.9.3.dev45.data → localstack_core-4.9.3.dev57.data}/scripts/localstack.bat +0 -0
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/WHEEL +0 -0
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/entry_points.txt +0 -0
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/licenses/LICENSE.txt +0 -0
- {localstack_core-4.9.3.dev45.dist-info → localstack_core-4.9.3.dev57.dist-info}/top_level.txt +0 -0
|
@@ -323,8 +323,18 @@ class ApigatewayProvider(ApigatewayApi, ServiceLifecycleHook):
|
|
|
323
323
|
tags: MapOfStringToString = None,
|
|
324
324
|
**kwargs,
|
|
325
325
|
) -> ApiKey:
|
|
326
|
+
if name and len(name) > 1024:
|
|
327
|
+
raise BadRequestException("Invalid API Key name, can be at most 1024 characters.")
|
|
328
|
+
if value:
|
|
329
|
+
if len(value) > 128:
|
|
330
|
+
raise BadRequestException("API Key value exceeds maximum size of 128 characters")
|
|
331
|
+
elif len(value) < 20:
|
|
332
|
+
raise BadRequestException("API Key value should be at least 20 characters")
|
|
333
|
+
if description and len(description) > 125000:
|
|
334
|
+
raise BadRequestException("Invalid API Key description specified.")
|
|
326
335
|
api_key = call_moto(context)
|
|
327
|
-
|
|
336
|
+
if name == "":
|
|
337
|
+
api_key.pop("name", None)
|
|
328
338
|
# transform array of stage keys [{'restApiId': '0iscapk09u', 'stageName': 'dev'}] into
|
|
329
339
|
# array of strings ['0iscapk09u/dev']
|
|
330
340
|
stage_keys = api_key.get("stageKeys", [])
|
|
@@ -2420,6 +2430,10 @@ class ApigatewayProvider(ApigatewayApi, ServiceLifecycleHook):
|
|
|
2420
2430
|
for api_key in api_keys:
|
|
2421
2431
|
api_key.pop("value")
|
|
2422
2432
|
|
|
2433
|
+
if limit is not None:
|
|
2434
|
+
if limit < 1 or limit > 500:
|
|
2435
|
+
limit = None
|
|
2436
|
+
|
|
2423
2437
|
item_list = PaginatedList(api_keys)
|
|
2424
2438
|
|
|
2425
2439
|
def token_generator(item):
|
|
@@ -2444,6 +2458,14 @@ class ApigatewayProvider(ApigatewayApi, ServiceLifecycleHook):
|
|
|
2444
2458
|
patch_operations: ListOfPatchOperation = None,
|
|
2445
2459
|
**kwargs,
|
|
2446
2460
|
) -> ApiKey:
|
|
2461
|
+
for patch_op in patch_operations:
|
|
2462
|
+
if patch_op["path"] not in ("/description", "/enabled", "/name", "/customerId"):
|
|
2463
|
+
raise BadRequestException(
|
|
2464
|
+
f"Invalid patch path '{patch_op['path']}' specified for op '{patch_op['op']}'. Must be one of: [/description, /enabled, /name, /customerId]"
|
|
2465
|
+
)
|
|
2466
|
+
|
|
2467
|
+
if patch_op["path"] == "/description" and len(patch_op["value"]) > 125000:
|
|
2468
|
+
raise BadRequestException("Invalid API Key description specified.")
|
|
2447
2469
|
response: ApiKey = call_moto(context)
|
|
2448
2470
|
if "value" in response:
|
|
2449
2471
|
response.pop("value", None)
|
|
@@ -1109,6 +1109,12 @@ class CloudformationProviderV2(CloudformationProvider, ServiceLifecycleHook):
|
|
|
1109
1109
|
|
|
1110
1110
|
try:
|
|
1111
1111
|
resource = stack.resolved_resources[logical_resource_id]
|
|
1112
|
+
if resource.get("ResourceStatus") not in [
|
|
1113
|
+
StackStatus.CREATE_COMPLETE,
|
|
1114
|
+
StackStatus.UPDATE_COMPLETE,
|
|
1115
|
+
StackStatus.ROLLBACK_COMPLETE,
|
|
1116
|
+
]:
|
|
1117
|
+
raise KeyError
|
|
1112
1118
|
except KeyError:
|
|
1113
1119
|
raise ValidationError(
|
|
1114
1120
|
f"Resource {logical_resource_id} does not exist for stack {stack_name}"
|
|
@@ -10,8 +10,6 @@ from localstack.aws.api.s3 import (
|
|
|
10
10
|
)
|
|
11
11
|
from localstack.aws.api.s3 import Type as GranteeType
|
|
12
12
|
|
|
13
|
-
S3_VIRTUAL_HOST_FORWARDED_HEADER = "x-s3-vhost-forwarded-for"
|
|
14
|
-
|
|
15
13
|
S3_UPLOAD_PART_MIN_SIZE = 5242880
|
|
16
14
|
"""
|
|
17
15
|
This is minimum size allowed by S3 when uploading more than one part for a Multipart Upload, except for the last part
|
|
@@ -45,10 +45,8 @@ from localstack.services.s3.constants import (
|
|
|
45
45
|
SIGNATURE_V4_PARAMS,
|
|
46
46
|
)
|
|
47
47
|
from localstack.services.s3.utils import (
|
|
48
|
-
S3_VIRTUAL_HOST_FORWARDED_HEADER,
|
|
49
48
|
capitalize_header_name_from_snake_case,
|
|
50
49
|
extract_bucket_name_and_key_from_headers_and_path,
|
|
51
|
-
forwarded_from_virtual_host_addressed_request,
|
|
52
50
|
is_bucket_name_valid,
|
|
53
51
|
is_presigned_url_request,
|
|
54
52
|
uses_host_addressing,
|
|
@@ -567,34 +565,21 @@ class S3SigV4SignatureContext:
|
|
|
567
565
|
self._query_parameters
|
|
568
566
|
)
|
|
569
567
|
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
self.
|
|
577
|
-
|
|
578
|
-
|
|
568
|
+
netloc = urlparse.urlparse(self.request.url).netloc
|
|
569
|
+
self.host = netloc
|
|
570
|
+
self._original_host = netloc
|
|
571
|
+
if (host_addressed := uses_host_addressing(self._headers)) and not is_bucket_name_valid(
|
|
572
|
+
self._bucket
|
|
573
|
+
):
|
|
574
|
+
raise InvalidBucketName(BucketName=self._bucket)
|
|
575
|
+
|
|
576
|
+
if not host_addressed and not self.request.path.startswith(f"/{self._bucket}"):
|
|
577
|
+
# if in path style, check that the path starts with the bucket
|
|
578
|
+
# our path has been sanitized, we should use the un-sanitized one
|
|
579
579
|
splitted_path = self.request.path.split("/", maxsplit=2)
|
|
580
|
-
self.path = f"/{splitted_path[-1]}"
|
|
581
|
-
|
|
580
|
+
self.path = f"/{self._bucket}/{splitted_path[-1]}"
|
|
582
581
|
else:
|
|
583
|
-
|
|
584
|
-
self.host = netloc
|
|
585
|
-
self._original_host = netloc
|
|
586
|
-
if (host_addressed := uses_host_addressing(self._headers)) and not is_bucket_name_valid(
|
|
587
|
-
self._bucket
|
|
588
|
-
):
|
|
589
|
-
raise InvalidBucketName(BucketName=self._bucket)
|
|
590
|
-
|
|
591
|
-
if not host_addressed and not self.request.path.startswith(f"/{self._bucket}"):
|
|
592
|
-
# if in path style, check that the path starts with the bucket
|
|
593
|
-
# our path has been sanitized, we should use the un-sanitized one
|
|
594
|
-
splitted_path = self.request.path.split("/", maxsplit=2)
|
|
595
|
-
self.path = f"/{self._bucket}/{splitted_path[-1]}"
|
|
596
|
-
else:
|
|
597
|
-
self.path = self.request.path
|
|
582
|
+
self.path = self.request.path
|
|
598
583
|
|
|
599
584
|
# we need to URL encode the path, as the key needs to be urlencoded for the signature to match
|
|
600
585
|
self.path = urlparse.quote(self.path)
|
|
@@ -384,7 +384,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
|
|
|
384
384
|
"""
|
|
385
385
|
if s3_bucket.notification_configuration:
|
|
386
386
|
if not s3_notif_ctx:
|
|
387
|
-
s3_notif_ctx = S3EventNotificationContext.
|
|
387
|
+
s3_notif_ctx = S3EventNotificationContext.from_request_context(
|
|
388
388
|
context,
|
|
389
389
|
s3_bucket=s3_bucket,
|
|
390
390
|
s3_object=s3_object,
|
|
@@ -1271,7 +1271,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
|
|
|
1271
1271
|
delete_marker_id = generate_version_id(s3_bucket.versioning_status)
|
|
1272
1272
|
delete_marker = S3DeleteMarker(key=key, version_id=delete_marker_id)
|
|
1273
1273
|
s3_bucket.objects.set(key, delete_marker)
|
|
1274
|
-
s3_notif_ctx = S3EventNotificationContext.
|
|
1274
|
+
s3_notif_ctx = S3EventNotificationContext.from_request_context(
|
|
1275
1275
|
context,
|
|
1276
1276
|
s3_bucket=s3_bucket,
|
|
1277
1277
|
s3_object=delete_marker,
|
|
@@ -1374,7 +1374,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
|
|
|
1374
1374
|
delete_marker_id = generate_version_id(s3_bucket.versioning_status)
|
|
1375
1375
|
delete_marker = S3DeleteMarker(key=object_key, version_id=delete_marker_id)
|
|
1376
1376
|
s3_bucket.objects.set(object_key, delete_marker)
|
|
1377
|
-
s3_notif_ctx = S3EventNotificationContext.
|
|
1377
|
+
s3_notif_ctx = S3EventNotificationContext.from_request_context(
|
|
1378
1378
|
context,
|
|
1379
1379
|
s3_bucket=s3_bucket,
|
|
1380
1380
|
s3_object=delete_marker,
|
|
@@ -2202,7 +2202,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
|
|
|
2202
2202
|
# TODO: add a way to transition from ongoing-request=true to false? for now it is instant
|
|
2203
2203
|
s3_object.restore = f'ongoing-request="false", expiry-date="{restore_expiration_date}"'
|
|
2204
2204
|
|
|
2205
|
-
s3_notif_ctx_initiated = S3EventNotificationContext.
|
|
2205
|
+
s3_notif_ctx_initiated = S3EventNotificationContext.from_request_context(
|
|
2206
2206
|
context,
|
|
2207
2207
|
s3_bucket=s3_bucket,
|
|
2208
2208
|
s3_object=s3_object,
|
localstack/services/s3/utils.py
CHANGED
|
@@ -7,6 +7,7 @@ import logging
|
|
|
7
7
|
import re
|
|
8
8
|
import time
|
|
9
9
|
import zlib
|
|
10
|
+
from collections.abc import Mapping
|
|
10
11
|
from enum import StrEnum
|
|
11
12
|
from secrets import token_bytes
|
|
12
13
|
from typing import Any, Literal, NamedTuple, Protocol
|
|
@@ -63,7 +64,6 @@ from localstack.services.s3.constants import (
|
|
|
63
64
|
AUTHENTICATED_USERS_ACL_GRANTEE,
|
|
64
65
|
CHECKSUM_ALGORITHMS,
|
|
65
66
|
LOG_DELIVERY_ACL_GRANTEE,
|
|
66
|
-
S3_VIRTUAL_HOST_FORWARDED_HEADER,
|
|
67
67
|
SIGNATURE_V2_PARAMS,
|
|
68
68
|
SIGNATURE_V4_PARAMS,
|
|
69
69
|
SYSTEM_METADATA_SETTABLE_HEADERS,
|
|
@@ -522,7 +522,7 @@ def is_valid_canonical_id(canonical_id: str) -> bool:
|
|
|
522
522
|
return False
|
|
523
523
|
|
|
524
524
|
|
|
525
|
-
def uses_host_addressing(headers:
|
|
525
|
+
def uses_host_addressing(headers: Mapping[str, str]) -> str | None:
|
|
526
526
|
"""
|
|
527
527
|
Determines if the request is targeting S3 with virtual host addressing
|
|
528
528
|
:param headers: the request headers
|
|
@@ -551,15 +551,6 @@ def get_system_metadata_from_request(request: dict) -> Metadata:
|
|
|
551
551
|
return metadata
|
|
552
552
|
|
|
553
553
|
|
|
554
|
-
def forwarded_from_virtual_host_addressed_request(headers: dict[str, str]) -> bool:
|
|
555
|
-
"""
|
|
556
|
-
Determines if the request was forwarded from a v-host addressing style into a path one
|
|
557
|
-
"""
|
|
558
|
-
# we can assume that the host header we are receiving here is actually the header we originally received
|
|
559
|
-
# from the client (because the edge service is forwarding the request in memory)
|
|
560
|
-
return S3_VIRTUAL_HOST_FORWARDED_HEADER in headers
|
|
561
|
-
|
|
562
|
-
|
|
563
554
|
def extract_bucket_name_and_key_from_headers_and_path(
|
|
564
555
|
headers: dict[str, str], path: str
|
|
565
556
|
) -> tuple[str | None, str | None]:
|
|
@@ -29,7 +29,7 @@ def load_template_file(file_path: str | os.PathLike, *, path_ctx: str | os.PathL
|
|
|
29
29
|
elif not file_path_obj.is_absolute():
|
|
30
30
|
raise ValueError("Provided path must be absolute if no path_ctx is provided")
|
|
31
31
|
|
|
32
|
-
return load_file(file_path_obj.absolute())
|
|
32
|
+
return load_file(file_path_obj.absolute(), strict=True)
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
# TODO: TBH this utility really doesn't add anything, probably better to just remove it
|
|
@@ -63,8 +63,6 @@ def pytest_runtestloop(session: Session):
|
|
|
63
63
|
return
|
|
64
64
|
LOG.info("TEST_FORCE_LOCALSTACK_START is set, a Localstack instance will be created.")
|
|
65
65
|
|
|
66
|
-
from localstack.utils.common import safe_requests
|
|
67
|
-
|
|
68
66
|
if is_aws_cloud():
|
|
69
67
|
localstack_config.DEFAULT_DELAY = 5
|
|
70
68
|
localstack_config.DEFAULT_MAX_ATTEMPTS = 60
|
|
@@ -73,8 +71,6 @@ def pytest_runtestloop(session: Session):
|
|
|
73
71
|
os.environ[ENV_INTERNAL_TEST_RUN] = "1"
|
|
74
72
|
localstack_config.INCLUDE_STACK_TRACES_IN_HTTP_RESPONSE = True
|
|
75
73
|
|
|
76
|
-
safe_requests.verify_ssl = False
|
|
77
|
-
|
|
78
74
|
from localstack.runtime import current
|
|
79
75
|
|
|
80
76
|
_started.set()
|
localstack/utils/files.py
CHANGED
|
@@ -80,9 +80,26 @@ def save_file(file, content, append=False, permissions=None):
|
|
|
80
80
|
f.flush()
|
|
81
81
|
|
|
82
82
|
|
|
83
|
-
def load_file(
|
|
83
|
+
def load_file(
|
|
84
|
+
file_path: str | os.PathLike,
|
|
85
|
+
default: str | bytes | None = None,
|
|
86
|
+
mode: str | None = None,
|
|
87
|
+
strict: bool = False,
|
|
88
|
+
) -> str | bytes | None:
|
|
89
|
+
"""
|
|
90
|
+
Return file contents
|
|
91
|
+
|
|
92
|
+
:param file_path: path of the file
|
|
93
|
+
:param default: if strict=False then return this value if the file does not exist
|
|
94
|
+
:param mode: mode to open the file with (e.g. `r`, `rw`)
|
|
95
|
+
:param strict: raise an error if the file path is not a file
|
|
96
|
+
:return: the file contents
|
|
97
|
+
"""
|
|
84
98
|
if not os.path.isfile(file_path):
|
|
85
|
-
|
|
99
|
+
if strict:
|
|
100
|
+
raise FileNotFoundError(file_path)
|
|
101
|
+
else:
|
|
102
|
+
return default
|
|
86
103
|
if not mode:
|
|
87
104
|
mode = "r"
|
|
88
105
|
with open(file_path, mode) as f:
|
|
@@ -288,7 +305,7 @@ def cleanup_tmp_files():
|
|
|
288
305
|
del TMP_FILES[:]
|
|
289
306
|
|
|
290
307
|
|
|
291
|
-
def new_tmp_file(suffix: str = None, dir: str = None) -> str:
|
|
308
|
+
def new_tmp_file(suffix: str | None = None, dir: str | None = None) -> str:
|
|
292
309
|
"""Return a path to a new temporary file."""
|
|
293
310
|
tmp_file, tmp_path = tempfile.mkstemp(suffix=suffix, dir=dir)
|
|
294
311
|
os.close(tmp_file)
|
|
@@ -296,8 +313,15 @@ def new_tmp_file(suffix: str = None, dir: str = None) -> str:
|
|
|
296
313
|
return tmp_path
|
|
297
314
|
|
|
298
315
|
|
|
299
|
-
def new_tmp_dir(dir: str = None):
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
316
|
+
def new_tmp_dir(dir: str | None = None, mode: int = 0o777) -> str:
|
|
317
|
+
"""
|
|
318
|
+
Create a new temporary directory with the specified permissions. The directory is added to the tracked temporary
|
|
319
|
+
files.
|
|
320
|
+
:param dir: parent directory for the temporary directory to be created. Systems's default otherwise.
|
|
321
|
+
:param mode: file permission for the directory (default: 0o777)
|
|
322
|
+
:return: the absolute path of the created directory
|
|
323
|
+
"""
|
|
324
|
+
folder = tempfile.mkdtemp(dir=dir)
|
|
325
|
+
TMP_FILES.append(folder)
|
|
326
|
+
idempotent_chmod(folder, mode=mode)
|
|
303
327
|
return folder
|
localstack/utils/json.py
CHANGED
|
@@ -169,10 +169,24 @@ def extract_jsonpath(value, path):
|
|
|
169
169
|
return result
|
|
170
170
|
|
|
171
171
|
|
|
172
|
-
def assign_to_path(target, path: str, value, delimiter: str = "."):
|
|
172
|
+
def assign_to_path(target: dict, path: str, value: any, delimiter: str = ".") -> dict:
|
|
173
|
+
"""Assign the given value to a dict. If the path doesn't exist in the target dict, it will be created.
|
|
174
|
+
The delimiter can be used to provide a path with a different delimiter.
|
|
175
|
+
|
|
176
|
+
Examples:
|
|
177
|
+
- assign_to_path({}, "a", "b") => {"a": "b"}
|
|
178
|
+
- assign_to_path({}, "a.b.c", "d") => {"a": {"b": {"c": "d"}}}
|
|
179
|
+
- assign_to_path({}, "a.b/c", "d", delimiter="/") => {"a.b": {"c": "d"}}
|
|
180
|
+
|
|
181
|
+
"""
|
|
173
182
|
parts = path.strip(delimiter).split(delimiter)
|
|
183
|
+
|
|
184
|
+
if len(parts) == 1:
|
|
185
|
+
target[parts[0]] = value
|
|
186
|
+
return target
|
|
187
|
+
|
|
174
188
|
path_to_parent = delimiter.join(parts[:-1])
|
|
175
|
-
parent = extract_from_jsonpointer_path(target, path_to_parent, auto_create=True)
|
|
189
|
+
parent = extract_from_jsonpointer_path(target, path_to_parent, delimiter, auto_create=True)
|
|
176
190
|
if not isinstance(parent, dict):
|
|
177
191
|
LOG.debug(
|
|
178
192
|
'Unable to find parent (type %s) for path "%s" in object: %s',
|
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.9.3.
|
|
32
|
-
__version_tuple__ = version_tuple = (4, 9, 3, '
|
|
31
|
+
__version__ = version = '4.9.3.dev57'
|
|
32
|
+
__version_tuple__ = version_tuple = (4, 9, 3, 'dev57')
|
|
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.9.3.
|
|
3
|
+
Version: 4.9.3.dev57
|
|
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
|
|
@@ -15,7 +15,6 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
15
15
|
Classifier: Topic :: System :: Emulators
|
|
16
16
|
Requires-Python: >=3.10
|
|
17
17
|
License-File: LICENSE.txt
|
|
18
|
-
Requires-Dist: build
|
|
19
18
|
Requires-Dist: click>=7.1
|
|
20
19
|
Requires-Dist: cachetools>=5.0
|
|
21
20
|
Requires-Dist: cryptography
|
|
@@ -29,48 +28,53 @@ Requires-Dist: pyyaml>=5.1
|
|
|
29
28
|
Requires-Dist: rich>=12.3.0
|
|
30
29
|
Requires-Dist: requests>=2.20.0
|
|
31
30
|
Requires-Dist: semver>=2.10
|
|
32
|
-
Requires-Dist: tailer>=0.4.1
|
|
33
31
|
Provides-Extra: base-runtime
|
|
34
|
-
Requires-Dist: boto3==1.40.
|
|
35
|
-
Requires-Dist: botocore==1.40.
|
|
32
|
+
Requires-Dist: boto3==1.40.55; extra == "base-runtime"
|
|
33
|
+
Requires-Dist: botocore==1.40.55; extra == "base-runtime"
|
|
36
34
|
Requires-Dist: awscrt!=0.27.1,>=0.13.14; extra == "base-runtime"
|
|
37
35
|
Requires-Dist: cbor2>=5.5.0; extra == "base-runtime"
|
|
38
36
|
Requires-Dist: dnspython>=1.16.0; extra == "base-runtime"
|
|
39
37
|
Requires-Dist: docker>=6.1.1; extra == "base-runtime"
|
|
40
38
|
Requires-Dist: jsonpatch>=1.24; extra == "base-runtime"
|
|
39
|
+
Requires-Dist: jsonpointer>=3.0.0; extra == "base-runtime"
|
|
40
|
+
Requires-Dist: jsonschema>=4.25.1; extra == "base-runtime"
|
|
41
41
|
Requires-Dist: hypercorn>=0.14.4; extra == "base-runtime"
|
|
42
42
|
Requires-Dist: localstack-twisted>=23.0; extra == "base-runtime"
|
|
43
43
|
Requires-Dist: openapi-core>=0.19.2; extra == "base-runtime"
|
|
44
44
|
Requires-Dist: pyopenssl>=23.0.0; extra == "base-runtime"
|
|
45
|
+
Requires-Dist: python-dateutil>=2.9.0; extra == "base-runtime"
|
|
45
46
|
Requires-Dist: readerwriterlock>=1.0.7; extra == "base-runtime"
|
|
46
47
|
Requires-Dist: requests-aws4auth>=1.0; extra == "base-runtime"
|
|
48
|
+
Requires-Dist: typing-extensions>=4.15.0; extra == "base-runtime"
|
|
47
49
|
Requires-Dist: urllib3>=2.0.7; extra == "base-runtime"
|
|
48
50
|
Requires-Dist: Werkzeug>=3.1.3; extra == "base-runtime"
|
|
49
51
|
Requires-Dist: xmltodict>=0.13.0; extra == "base-runtime"
|
|
50
52
|
Requires-Dist: rolo>=0.7; extra == "base-runtime"
|
|
51
53
|
Provides-Extra: runtime
|
|
52
54
|
Requires-Dist: localstack-core[base-runtime]; extra == "runtime"
|
|
53
|
-
Requires-Dist: awscli==1.42.
|
|
55
|
+
Requires-Dist: awscli==1.42.55; extra == "runtime"
|
|
54
56
|
Requires-Dist: airspeed-ext>=0.6.3; extra == "runtime"
|
|
55
|
-
Requires-Dist: kclpy-ext>=3.0.0; extra == "runtime"
|
|
56
57
|
Requires-Dist: antlr4-python3-runtime==4.13.2; extra == "runtime"
|
|
57
58
|
Requires-Dist: apispec>=5.1.1; extra == "runtime"
|
|
58
59
|
Requires-Dist: aws-sam-translator>=1.15.1; extra == "runtime"
|
|
59
60
|
Requires-Dist: crontab>=0.22.6; extra == "runtime"
|
|
60
61
|
Requires-Dist: cryptography>=41.0.5; extra == "runtime"
|
|
62
|
+
Requires-Dist: jinja2>=3.1.6; extra == "runtime"
|
|
61
63
|
Requires-Dist: jpype1>=1.6.0; extra == "runtime"
|
|
62
|
-
Requires-Dist: json5>=0.9.11; extra == "runtime"
|
|
63
64
|
Requires-Dist: jsonpath-ng>=1.6.1; extra == "runtime"
|
|
64
65
|
Requires-Dist: jsonpath-rw>=1.4.0; extra == "runtime"
|
|
66
|
+
Requires-Dist: kclpy-ext>=3.0.0; extra == "runtime"
|
|
65
67
|
Requires-Dist: moto-ext[all]>=5.1.12.post22; extra == "runtime"
|
|
66
68
|
Requires-Dist: opensearch-py>=2.4.1; extra == "runtime"
|
|
69
|
+
Requires-Dist: pydantic>=2.11.9; extra == "runtime"
|
|
67
70
|
Requires-Dist: pymongo>=4.2.0; extra == "runtime"
|
|
68
71
|
Requires-Dist: pyopenssl>=23.0.0; extra == "runtime"
|
|
72
|
+
Requires-Dist: responses>=0.25.8; extra == "runtime"
|
|
69
73
|
Provides-Extra: test
|
|
70
74
|
Requires-Dist: localstack-core[runtime]; extra == "test"
|
|
71
75
|
Requires-Dist: coverage[toml]>=5.5; extra == "test"
|
|
72
|
-
Requires-Dist: deepdiff>=6.4.1; extra == "test"
|
|
73
76
|
Requires-Dist: httpx[http2]>=0.25; extra == "test"
|
|
77
|
+
Requires-Dist: json5>=0.12.1; extra == "test"
|
|
74
78
|
Requires-Dist: pluggy>=1.3.0; extra == "test"
|
|
75
79
|
Requires-Dist: pytest>=7.4.2; extra == "test"
|
|
76
80
|
Requires-Dist: pytest-split>=0.8.0; extra == "test"
|
|
@@ -83,6 +87,7 @@ Requires-Dist: localstack-snapshot>=0.1.1; extra == "test"
|
|
|
83
87
|
Provides-Extra: dev
|
|
84
88
|
Requires-Dist: localstack-core[test]; extra == "dev"
|
|
85
89
|
Requires-Dist: coveralls>=3.3.1; extra == "dev"
|
|
90
|
+
Requires-Dist: deptry>=0.13.0; extra == "dev"
|
|
86
91
|
Requires-Dist: Cython; extra == "dev"
|
|
87
92
|
Requires-Dist: networkx>=2.8.4; extra == "dev"
|
|
88
93
|
Requires-Dist: openapi-spec-validator>=0.7.1; extra == "dev"
|
|
@@ -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=
|
|
7
|
+
localstack/version.py,sha256=Cf3cyVS0vyE8hP_EWgo9igAG28dTqO3kdsW05REdwqU,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
|
|
@@ -30,7 +30,7 @@ localstack/aws/api/cloudwatch/__init__.py,sha256=EgYlhAU_w0D2E2VMd9jzjTnjwR5S9-A
|
|
|
30
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=
|
|
33
|
+
localstack/aws/api/ec2/__init__.py,sha256=TCVNm50o2cuAhG5vrvO9CvUCZ9q6RGq-zo_8_KYlmJM,978617
|
|
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
|
|
@@ -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=
|
|
195
|
+
localstack/services/apigateway/legacy/provider.py,sha256=Jbe4KH1Cq1WXtrLzvL2VFzeiEsRxxyoH5dsjkoIModU,136042
|
|
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
|
|
@@ -313,7 +313,7 @@ localstack/services/cloudformation/engine/yaml_parser.py,sha256=LQpAVq9Syze9jXUG
|
|
|
313
313
|
localstack/services/cloudformation/engine/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
314
314
|
localstack/services/cloudformation/engine/v2/change_set_model.py,sha256=FwpBgys6khq_FLabJVqrHQDEtSQN2zNVLtKWK4GBa54,67271
|
|
315
315
|
localstack/services/cloudformation/engine/v2/change_set_model_describer.py,sha256=rUT0V1MmgMD1hqfC5ebUu5u5RplkWmSozNE1ab1osHc,12381
|
|
316
|
-
localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=
|
|
316
|
+
localstack/services/cloudformation/engine/v2/change_set_model_executor.py,sha256=UolewpkpCX9IHjNEJqYNcV922o-odoYnrAona-For8w,27497
|
|
317
317
|
localstack/services/cloudformation/engine/v2/change_set_model_preproc.py,sha256=_3oAbhJUg80VK_Yb_sEgXIIQTJ2wJJd-V9w6twkCjwU,58991
|
|
318
318
|
localstack/services/cloudformation/engine/v2/change_set_model_transform.py,sha256=7ylip_9dpwRlbBl4npRkK0Iy6E8FzcoGTaf7nAv0l3k,23471
|
|
319
319
|
localstack/services/cloudformation/engine/v2/change_set_model_validator.py,sha256=pyj4QmJVrDUgdnamAEJmglq9phX4gjh45N3K6wOU1q8,8120
|
|
@@ -337,7 +337,7 @@ localstack/services/cloudformation/scaffolding/__main__.py,sha256=W4qA6eMNejKWLE
|
|
|
337
337
|
localstack/services/cloudformation/scaffolding/propgen.py,sha256=id7l43zsJsTgUyQ8F3jpfbpEoicc8GC6cB2ESEktDxc,7936
|
|
338
338
|
localstack/services/cloudformation/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
339
|
localstack/services/cloudformation/v2/entities.py,sha256=5LCHm2ltmBt-yoojSkwQgVJcdnE91T0jwF9olhZNNJM,9287
|
|
340
|
-
localstack/services/cloudformation/v2/provider.py,sha256=
|
|
340
|
+
localstack/services/cloudformation/v2/provider.py,sha256=g6n5EAQQ_Gp513PupWI8RQ0H87iM75OBOxAm-DXJnh0,71304
|
|
341
341
|
localstack/services/cloudformation/v2/types.py,sha256=jsfvn2z6weqruaDvv6qtSILtFiOTRl9fIjl0vXvl108,1060
|
|
342
342
|
localstack/services/cloudformation/v2/utils.py,sha256=U1-YK7BEfA2lRKuUzDUVQ_dXUXybTHciNZA1G3xuZI8,202
|
|
343
343
|
localstack/services/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -684,14 +684,14 @@ localstack/services/route53resolver/utils.py,sha256=ioMx7t3YmR4yWjCOBjw1b7Glf6dF
|
|
|
684
684
|
localstack/services/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
685
685
|
localstack/services/s3/checksums.py,sha256=lJavOPAcEkp1fLUnxmb2H1Ol2PeeQ1szX-VSqksdhPU,4832
|
|
686
686
|
localstack/services/s3/codec.py,sha256=3Yvdw0_Qz-_iKE_JoYTKjlu8T8QrmFX4qE9KRdYOFzc,4821
|
|
687
|
-
localstack/services/s3/constants.py,sha256=
|
|
687
|
+
localstack/services/s3/constants.py,sha256=uNG8XMDAPVeRUaVWR2tJmdH18QOHe7GOZGfFZoU6tcg,3956
|
|
688
688
|
localstack/services/s3/cors.py,sha256=m1YCEYAnHdHeHyMTqp4rJuHG1pxgXx9kVpwNtBdG3EA,13486
|
|
689
689
|
localstack/services/s3/exceptions.py,sha256=zQ6p5a1ROqI79gxTpTa-wktKu41d6cOdbgl24FAoN-A,1942
|
|
690
690
|
localstack/services/s3/models.py,sha256=4pc_sm986jhRWP3puO6yuFoNfKzroZvCwR0rlnXg3Dg,30779
|
|
691
|
-
localstack/services/s3/notifications.py,sha256=
|
|
692
|
-
localstack/services/s3/presigned_url.py,sha256=
|
|
693
|
-
localstack/services/s3/provider.py,sha256=
|
|
694
|
-
localstack/services/s3/utils.py,sha256=
|
|
691
|
+
localstack/services/s3/notifications.py,sha256=JRvZTs3YpEXX-tPdliarVKjKsp42fdzrTNOC51y2-8I,32568
|
|
692
|
+
localstack/services/s3/presigned_url.py,sha256=2rbkrEYMimmanUW6RQdYGSb9PGFDZa6MmLru8ZkBri8,38438
|
|
693
|
+
localstack/services/s3/provider.py,sha256=qJ9PBdvnt2aqlmiGp6lEt2SE5Z1a4Kjcizz2PWuY-UQ,199536
|
|
694
|
+
localstack/services/s3/utils.py,sha256=I_vEKpJxm_yqJkWihvQTTVSVl5R7zVThV0WgHrqRs-4,40088
|
|
695
695
|
localstack/services/s3/validation.py,sha256=n4XdJLJdGddKd9JFBjtbRHaPzzTW8H1I_1uQS4N_w1s,20202
|
|
696
696
|
localstack/services/s3/website_hosting.py,sha256=I4cE7omiN7EBQjdlvueSb_DaD8cwEZxeh7K-H_We30k,16672
|
|
697
697
|
localstack/services/s3/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -1169,7 +1169,7 @@ localstack/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
1169
1169
|
localstack/testing/config.py,sha256=3rRbrM9v1RnbHhwOGTvcymDB7Qs1KMxEgaNHwKpOcb4,1239
|
|
1170
1170
|
localstack/testing/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1171
1171
|
localstack/testing/aws/asf_utils.py,sha256=gt94PW5r4jnAYPQqAXZjPnwaSDsz5wCAsKYVC6L9MGk,8129
|
|
1172
|
-
localstack/testing/aws/cloudformation_utils.py,sha256=
|
|
1172
|
+
localstack/testing/aws/cloudformation_utils.py,sha256=o1-Adm5fF9yuEhIx-xSuXPM1hzzST6SHLqk_2GDA_xk,1479
|
|
1173
1173
|
localstack/testing/aws/eventbus_utils.py,sha256=iD9fTRlVML8NEMIL3_3UxE3gxs6MBCRht09VozNf52w,1733
|
|
1174
1174
|
localstack/testing/aws/lambda_utils.py,sha256=oLUP4kWythvkS5wVENoo-BZQ3t_vljfl1K_6Ea4vMnQ,12360
|
|
1175
1175
|
localstack/testing/aws/util.py,sha256=h3Cc53imm-fqTxb8nOwUoyJZbuCRJqyzRBjKMyB8vIA,8938
|
|
@@ -1181,7 +1181,7 @@ localstack/testing/pytest/filters.py,sha256=4PUUj6B-L8leWE00qzS0LP76LHZ3eiycM9jT
|
|
|
1181
1181
|
localstack/testing/pytest/find_orphaned_snapshots.py,sha256=-abDUtXa2-9PkZBDjU9XxQkT7i0dATXnFR2GzsX0TFc,1336
|
|
1182
1182
|
localstack/testing/pytest/fixture_conflicts.py,sha256=cCWOEwO5clVRFseFS0_9wH5v47n_x4OQeIfVXHJvSOU,1497
|
|
1183
1183
|
localstack/testing/pytest/fixtures.py,sha256=hbHYxwDo3zUOcGm5ZUdTx_08lJ9Z7Jpe46sarFF2lAs,94405
|
|
1184
|
-
localstack/testing/pytest/in_memory_localstack.py,sha256=
|
|
1184
|
+
localstack/testing/pytest/in_memory_localstack.py,sha256=GDR-VEarQWROfHqF4BHbo4ENI5bYmXuMFqY0jhHWF7Y,3242
|
|
1185
1185
|
localstack/testing/pytest/marker_report.py,sha256=_GOdUQQ5e-FUdw-26rHJ3B13qHrM9m4qGuzKvW2CdsE,5549
|
|
1186
1186
|
localstack/testing/pytest/marking.py,sha256=S1MkyZVIx9wAX6UxXf_cCY829FZ7tH9m9bINitggH-I,8916
|
|
1187
1187
|
localstack/testing/pytest/metric_collection.py,sha256=mwKhqY5URNkZWle_H5LDGw--EUN7_Qq9A_O6a-hNsU0,2323
|
|
@@ -1226,13 +1226,13 @@ localstack/utils/crypto.py,sha256=IEPV_IqMckDAoP8JrfmDQYIP9LQPlZB5mC9_WFb2CZs,72
|
|
|
1226
1226
|
localstack/utils/diagnose.py,sha256=31rxZlYSNIll2rqF9p6l7qyAJJhsXkoF5q4sBu6LYOY,4677
|
|
1227
1227
|
localstack/utils/docker_utils.py,sha256=Z2IfnB2h5U6mzd8Bsrdo2Cw7Sv1KVYCWLA0DUsB39co,9787
|
|
1228
1228
|
localstack/utils/event_matcher.py,sha256=_DtCZI0ba4Zcit_-TwCUSIG_NXiYgIjmWbuKuMrsZkk,2024
|
|
1229
|
-
localstack/utils/files.py,sha256=
|
|
1229
|
+
localstack/utils/files.py,sha256=p4irp9v9pgAO2e9nxzGYdswx6fSU1r2jXDfUre_IGSM,10450
|
|
1230
1230
|
localstack/utils/functions.py,sha256=qGMyHxtXVgE3h3cMrnlOD2T85YuAlrXCUw-PO8Aic3g,2980
|
|
1231
1231
|
localstack/utils/http.py,sha256=a5Wy8G54wy8b-V6uzsNC1nmileMCVe5KT9ahWkF24gs,11667
|
|
1232
1232
|
localstack/utils/id_generator.py,sha256=ncGLyjA8QOy-2n16bBf3B_oTI1Kck1-RJcTLcJEvQHA,1697
|
|
1233
1233
|
localstack/utils/iputils.py,sha256=L89jtcvs5ugeAiBvBXKSqnmm2E_huMCIitCfg2AdE5s,2111
|
|
1234
1234
|
localstack/utils/java.py,sha256=3a5lN_j6wOxAR_OVAMtyPkX4_FDRbl5usqGgabQRs3k,3099
|
|
1235
|
-
localstack/utils/json.py,sha256=
|
|
1235
|
+
localstack/utils/json.py,sha256=J_5X9JBTuPrxCNHTAgYCE83RWMmWwX0o0w32zfEdqiA,6786
|
|
1236
1236
|
localstack/utils/net.py,sha256=a7vHgENpxlXpXLT224wKBEsShUeLOjFDQPQLueX03F8,19903
|
|
1237
1237
|
localstack/utils/no_exit_argument_parser.py,sha256=B4APcRIzioPSjWgogQLFrim7mWMB2QD1KCIaMCpBwww,799
|
|
1238
1238
|
localstack/utils/numbers.py,sha256=qmyiqCiuC7J1aMyxLMJSRQjhnm7spYf1IoLl-McJfN0,1453
|
|
@@ -1297,13 +1297,13 @@ localstack/utils/server/tcp_proxy.py,sha256=y2NJAmvftTiAYsLU_8qe4W5LGqwUw21i90Pu
|
|
|
1297
1297
|
localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1298
1298
|
localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
|
|
1299
1299
|
localstack/utils/xray/traceid.py,sha256=GKO-R2sMMjlrH2UaLPXlQlZ6flbE7ZKb6IZMtMu_M5U,1110
|
|
1300
|
-
localstack_core-4.9.3.
|
|
1301
|
-
localstack_core-4.9.3.
|
|
1302
|
-
localstack_core-4.9.3.
|
|
1303
|
-
localstack_core-4.9.3.
|
|
1304
|
-
localstack_core-4.9.3.
|
|
1305
|
-
localstack_core-4.9.3.
|
|
1306
|
-
localstack_core-4.9.3.
|
|
1307
|
-
localstack_core-4.9.3.
|
|
1308
|
-
localstack_core-4.9.3.
|
|
1309
|
-
localstack_core-4.9.3.
|
|
1300
|
+
localstack_core-4.9.3.dev57.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
|
|
1301
|
+
localstack_core-4.9.3.dev57.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
|
|
1302
|
+
localstack_core-4.9.3.dev57.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
|
|
1303
|
+
localstack_core-4.9.3.dev57.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
|
|
1304
|
+
localstack_core-4.9.3.dev57.dist-info/METADATA,sha256=QN8xUTfEYxmrxy9iTJDDG7h1M9vzCpWG5A649Yc3FZk,5885
|
|
1305
|
+
localstack_core-4.9.3.dev57.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1306
|
+
localstack_core-4.9.3.dev57.dist-info/entry_points.txt,sha256=5IoyjalZoY-PWY5Lk_AeEjEEQ-rKQJhijLe697GVlnM,20953
|
|
1307
|
+
localstack_core-4.9.3.dev57.dist-info/plux.json,sha256=AK0GEhgAeFEGv0YYFXnJ_tnssI0YpKVz3UGkgoEHpL4,21181
|
|
1308
|
+
localstack_core-4.9.3.dev57.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
|
|
1309
|
+
localstack_core-4.9.3.dev57.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"localstack.cloudformation.resource_providers": ["AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "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::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "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::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin"], "localstack.hooks.on_infra_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", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "stop_server=localstack.dns.plugins:stop_server"], "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.hooks.on_infra_start": ["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", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "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", "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", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "eager_load_services=localstack.services.plugins:eager_load_services", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger"], "localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_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.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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.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"]}
|