localstack-core 4.3.1.dev31__py3-none-any.whl → 4.3.1.dev33__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.
Files changed (20) hide show
  1. localstack/dev/run/configurators.py +11 -11
  2. localstack/services/lambda_/invocation/docker_runtime_executor.py +2 -2
  3. localstack/services/lambda_/resource_providers/aws_lambda_function.py +31 -2
  4. localstack/services/lambda_/resource_providers/aws_lambda_function.schema.json +86 -6
  5. localstack/utils/analytics/metadata.py +2 -2
  6. localstack/utils/bootstrap.py +6 -5
  7. localstack/utils/container_utils/container_client.py +62 -13
  8. localstack/utils/container_utils/docker_cmd_client.py +4 -3
  9. localstack/version.py +2 -2
  10. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/METADATA +1 -1
  11. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/RECORD +19 -19
  12. localstack_core-4.3.1.dev33.dist-info/plux.json +1 -0
  13. localstack_core-4.3.1.dev31.dist-info/plux.json +0 -1
  14. {localstack_core-4.3.1.dev31.data → localstack_core-4.3.1.dev33.data}/scripts/localstack +0 -0
  15. {localstack_core-4.3.1.dev31.data → localstack_core-4.3.1.dev33.data}/scripts/localstack-supervisor +0 -0
  16. {localstack_core-4.3.1.dev31.data → localstack_core-4.3.1.dev33.data}/scripts/localstack.bat +0 -0
  17. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/WHEEL +0 -0
  18. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/entry_points.txt +0 -0
  19. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/licenses/LICENSE.txt +0 -0
  20. {localstack_core-4.3.1.dev31.dist-info → localstack_core-4.3.1.dev33.dist-info}/top_level.txt +0 -0
@@ -10,9 +10,9 @@ from tempfile import gettempdir
10
10
  from localstack import config, constants
11
11
  from localstack.utils.bootstrap import ContainerConfigurators
12
12
  from localstack.utils.container_utils.container_client import (
13
+ BindMount,
13
14
  ContainerClient,
14
15
  ContainerConfiguration,
15
- VolumeBind,
16
16
  VolumeMappings,
17
17
  )
18
18
  from localstack.utils.docker_utils import DOCKER_CLIENT
@@ -107,7 +107,7 @@ class CustomEntryPointConfigurator:
107
107
  # encoding needs to be "utf-8" since scripts could include emojis
108
108
  file.write_text(self.script, newline="\n", encoding="utf-8")
109
109
  file.chmod(0o777)
110
- cfg.volumes.add(VolumeBind(str(file), f"/tmp/{file.name}"))
110
+ cfg.volumes.add(BindMount(str(file), f"/tmp/{file.name}"))
111
111
  cfg.entrypoint = f"/tmp/{file.name}"
112
112
 
113
113
 
@@ -137,7 +137,7 @@ class SourceVolumeMountConfigurator:
137
137
  cfg.volumes.add(
138
138
  # read_only=False is a temporary workaround to make the mounting of the pro source work
139
139
  # this can be reverted once we don't need the nested mounting anymore
140
- VolumeBind(str(source), self.container_paths.localstack_source_dir, read_only=False)
140
+ BindMount(str(source), self.container_paths.localstack_source_dir, read_only=False)
141
141
  )
142
142
 
143
143
  # ext source code if available
@@ -145,7 +145,7 @@ class SourceVolumeMountConfigurator:
145
145
  source = self.host_paths.aws_pro_package_dir
146
146
  if source.exists():
147
147
  cfg.volumes.add(
148
- VolumeBind(
148
+ BindMount(
149
149
  str(source), self.container_paths.localstack_pro_source_dir, read_only=True
150
150
  )
151
151
  )
@@ -163,7 +163,7 @@ class SourceVolumeMountConfigurator:
163
163
  source = self.host_paths.localstack_project_dir / "bin" / "docker-entrypoint.sh"
164
164
  if source.exists():
165
165
  cfg.volumes.add(
166
- VolumeBind(str(source), self.container_paths.docker_entrypoint, read_only=True)
166
+ BindMount(str(source), self.container_paths.docker_entrypoint, read_only=True)
167
167
  )
168
168
 
169
169
  def try_mount_to_site_packages(self, cfg: ContainerConfiguration, sources_path: Path):
@@ -177,7 +177,7 @@ class SourceVolumeMountConfigurator:
177
177
  """
178
178
  if sources_path.exists():
179
179
  cfg.volumes.add(
180
- VolumeBind(
180
+ BindMount(
181
181
  str(sources_path),
182
182
  self.container_paths.dependency_source(sources_path.name),
183
183
  read_only=True,
@@ -219,7 +219,7 @@ class EntryPointMountConfigurator:
219
219
  host_path = self.host_paths.aws_community_package_dir
220
220
  if host_path.exists():
221
221
  cfg.volumes.append(
222
- VolumeBind(
222
+ BindMount(
223
223
  str(host_path), self.localstack_community_entry_points, read_only=True
224
224
  )
225
225
  )
@@ -244,7 +244,7 @@ class EntryPointMountConfigurator:
244
244
  )
245
245
  if host_path.is_file():
246
246
  cfg.volumes.add(
247
- VolumeBind(
247
+ BindMount(
248
248
  str(host_path),
249
249
  str(container_path),
250
250
  read_only=True,
@@ -260,7 +260,7 @@ class EntryPointMountConfigurator:
260
260
  )
261
261
  if host_path.is_file():
262
262
  cfg.volumes.add(
263
- VolumeBind(
263
+ BindMount(
264
264
  str(host_path),
265
265
  str(container_path),
266
266
  read_only=True,
@@ -270,7 +270,7 @@ class EntryPointMountConfigurator:
270
270
  for host_path in self.host_paths.workspace_dir.glob(
271
271
  f"*/{dep}.egg-info/entry_points.txt"
272
272
  ):
273
- cfg.volumes.add(VolumeBind(str(host_path), str(container_path), read_only=True))
273
+ cfg.volumes.add(BindMount(str(host_path), str(container_path), read_only=True))
274
274
  break
275
275
 
276
276
 
@@ -330,7 +330,7 @@ class DependencyMountConfigurator:
330
330
  if self._has_mount(cfg.volumes, target_path):
331
331
  continue
332
332
 
333
- cfg.volumes.append(VolumeBind(str(dep_path), target_path))
333
+ cfg.volumes.append(BindMount(str(dep_path), target_path))
334
334
 
335
335
  def _can_be_source_path(self, path: Path) -> bool:
336
336
  return path.is_dir() or (path.name.endswith(".py") and not path.name.startswith("__"))
@@ -32,13 +32,13 @@ from localstack.services.lambda_.packages import get_runtime_client_path
32
32
  from localstack.services.lambda_.runtimes import IMAGE_MAPPING
33
33
  from localstack.utils.container_networking import get_main_container_name
34
34
  from localstack.utils.container_utils.container_client import (
35
+ BindMount,
35
36
  ContainerConfiguration,
36
37
  DockerNotAvailable,
37
38
  DockerPlatform,
38
39
  NoSuchContainer,
39
40
  NoSuchImage,
40
41
  PortMappings,
41
- VolumeBind,
42
42
  VolumeMappings,
43
43
  )
44
44
  from localstack.utils.docker_utils import DOCKER_CLIENT as CONTAINER_CLIENT
@@ -331,7 +331,7 @@ class DockerRuntimeExecutor(RuntimeExecutor):
331
331
  if container_config.volumes is None:
332
332
  container_config.volumes = VolumeMappings()
333
333
  container_config.volumes.add(
334
- VolumeBind(
334
+ BindMount(
335
335
  str(self.function_version.config.code.get_unzipped_code_location()),
336
336
  "/var/task",
337
337
  read_only=True,
@@ -99,6 +99,13 @@ class Code(TypedDict):
99
99
  ZipFile: Optional[str]
100
100
 
101
101
 
102
+ class LoggingConfig(TypedDict):
103
+ ApplicationLogLevel: Optional[str]
104
+ LogFormat: Optional[str]
105
+ LogGroup: Optional[str]
106
+ SystemLogLevel: Optional[str]
107
+
108
+
102
109
  class Environment(TypedDict):
103
110
  Variables: Optional[dict]
104
111
 
@@ -333,11 +340,22 @@ class LambdaFunctionProvider(ResourceProvider[LambdaFunctionProperties]):
333
340
  - ec2:DescribeSecurityGroups
334
341
  - ec2:DescribeSubnets
335
342
  - ec2:DescribeVpcs
343
+ - elasticfilesystem:DescribeMountTargets
344
+ - kms:CreateGrant
336
345
  - kms:Decrypt
346
+ - kms:Encrypt
347
+ - kms:GenerateDataKey
337
348
  - lambda:GetCodeSigningConfig
338
349
  - lambda:GetFunctionCodeSigningConfig
350
+ - lambda:GetLayerVersion
339
351
  - lambda:GetRuntimeManagementConfig
340
352
  - lambda:PutRuntimeManagementConfig
353
+ - lambda:TagResource
354
+ - lambda:GetPolicy
355
+ - lambda:AddPermission
356
+ - lambda:RemovePermission
357
+ - lambda:GetResourcePolicy
358
+ - lambda:PutResourcePolicy
341
359
 
342
360
  """
343
361
  model = request.desired_state
@@ -368,6 +386,7 @@ class LambdaFunctionProvider(ResourceProvider[LambdaFunctionProperties]):
368
386
  "Timeout",
369
387
  "TracingConfig",
370
388
  "VpcConfig",
389
+ "LoggingConfig",
371
390
  ],
372
391
  )
373
392
  if "Timeout" in kwargs:
@@ -481,13 +500,22 @@ class LambdaFunctionProvider(ResourceProvider[LambdaFunctionProperties]):
481
500
  - ec2:DescribeSecurityGroups
482
501
  - ec2:DescribeSubnets
483
502
  - ec2:DescribeVpcs
503
+ - elasticfilesystem:DescribeMountTargets
504
+ - kms:CreateGrant
484
505
  - kms:Decrypt
506
+ - kms:GenerateDataKey
507
+ - lambda:GetRuntimeManagementConfig
508
+ - lambda:PutRuntimeManagementConfig
485
509
  - lambda:PutFunctionCodeSigningConfig
486
510
  - lambda:DeleteFunctionCodeSigningConfig
487
511
  - lambda:GetCodeSigningConfig
488
512
  - lambda:GetFunctionCodeSigningConfig
489
- - lambda:GetRuntimeManagementConfig
490
- - lambda:PutRuntimeManagementConfig
513
+ - lambda:GetPolicy
514
+ - lambda:AddPermission
515
+ - lambda:RemovePermission
516
+ - lambda:GetResourcePolicy
517
+ - lambda:PutResourcePolicy
518
+ - lambda:DeleteResourcePolicy
491
519
  """
492
520
  client = request.aws_client_factory.lambda_
493
521
 
@@ -512,6 +540,7 @@ class LambdaFunctionProvider(ResourceProvider[LambdaFunctionProperties]):
512
540
  "Timeout",
513
541
  "TracingConfig",
514
542
  "VpcConfig",
543
+ "LoggingConfig",
515
544
  ]
516
545
  update_config_props = util.select_attributes(request.desired_state, config_keys)
517
546
  function_name = request.previous_state["FunctionName"]
@@ -1,4 +1,11 @@
1
1
  {
2
+ "tagging": {
3
+ "taggable": true,
4
+ "tagOnCreate": true,
5
+ "tagUpdatable": true,
6
+ "tagProperty": "/properties/Tags",
7
+ "cloudFormationSystemTags": true
8
+ },
2
9
  "handlers": {
3
10
  "read": {
4
11
  "permissions": [
@@ -17,11 +24,22 @@
17
24
  "ec2:DescribeSecurityGroups",
18
25
  "ec2:DescribeSubnets",
19
26
  "ec2:DescribeVpcs",
27
+ "elasticfilesystem:DescribeMountTargets",
28
+ "kms:CreateGrant",
20
29
  "kms:Decrypt",
30
+ "kms:Encrypt",
31
+ "kms:GenerateDataKey",
21
32
  "lambda:GetCodeSigningConfig",
22
33
  "lambda:GetFunctionCodeSigningConfig",
34
+ "lambda:GetLayerVersion",
23
35
  "lambda:GetRuntimeManagementConfig",
24
- "lambda:PutRuntimeManagementConfig"
36
+ "lambda:PutRuntimeManagementConfig",
37
+ "lambda:TagResource",
38
+ "lambda:GetPolicy",
39
+ "lambda:AddPermission",
40
+ "lambda:RemovePermission",
41
+ "lambda:GetResourcePolicy",
42
+ "lambda:PutResourcePolicy"
25
43
  ]
26
44
  },
27
45
  "update": {
@@ -40,13 +58,22 @@
40
58
  "ec2:DescribeSecurityGroups",
41
59
  "ec2:DescribeSubnets",
42
60
  "ec2:DescribeVpcs",
61
+ "elasticfilesystem:DescribeMountTargets",
62
+ "kms:CreateGrant",
43
63
  "kms:Decrypt",
64
+ "kms:GenerateDataKey",
65
+ "lambda:GetRuntimeManagementConfig",
66
+ "lambda:PutRuntimeManagementConfig",
44
67
  "lambda:PutFunctionCodeSigningConfig",
45
68
  "lambda:DeleteFunctionCodeSigningConfig",
46
69
  "lambda:GetCodeSigningConfig",
47
70
  "lambda:GetFunctionCodeSigningConfig",
48
- "lambda:GetRuntimeManagementConfig",
49
- "lambda:PutRuntimeManagementConfig"
71
+ "lambda:GetPolicy",
72
+ "lambda:AddPermission",
73
+ "lambda:RemovePermission",
74
+ "lambda:GetResourcePolicy",
75
+ "lambda:PutResourcePolicy",
76
+ "lambda:DeleteResourcePolicy"
50
77
  ]
51
78
  },
52
79
  "list": {
@@ -63,13 +90,15 @@
63
90
  },
64
91
  "typeName": "AWS::Lambda::Function",
65
92
  "readOnlyProperties": [
66
- "/properties/Arn",
67
93
  "/properties/SnapStartResponse",
68
94
  "/properties/SnapStartResponse/ApplyOn",
69
- "/properties/SnapStartResponse/OptimizationStatus"
95
+ "/properties/SnapStartResponse/OptimizationStatus",
96
+ "/properties/Arn"
70
97
  ],
71
- "description": "Resource Type definition for AWS::Lambda::Function",
98
+ "description": "Resource Type definition for AWS::Lambda::Function in region",
72
99
  "writeOnlyProperties": [
100
+ "/properties/SnapStart",
101
+ "/properties/SnapStart/ApplyOn",
73
102
  "/properties/Code",
74
103
  "/properties/Code/ImageUri",
75
104
  "/properties/Code/S3Bucket",
@@ -133,6 +162,10 @@
133
162
  "additionalProperties": false,
134
163
  "type": "object",
135
164
  "properties": {
165
+ "Ipv6AllowedForDualStack": {
166
+ "description": "A boolean indicating whether IPv6 protocols will be allowed for dual stack subnets",
167
+ "type": "boolean"
168
+ },
136
169
  "SecurityGroupIds": {
137
170
  "maxItems": 5,
138
171
  "uniqueItems": false,
@@ -261,6 +294,49 @@
261
294
  }
262
295
  }
263
296
  },
297
+ "LoggingConfig": {
298
+ "description": "The function's logging configuration.",
299
+ "additionalProperties": false,
300
+ "type": "object",
301
+ "properties": {
302
+ "LogFormat": {
303
+ "description": "Log delivery format for the lambda function",
304
+ "type": "string",
305
+ "enum": [
306
+ "Text",
307
+ "JSON"
308
+ ]
309
+ },
310
+ "ApplicationLogLevel": {
311
+ "description": "Application log granularity level, can only be used when LogFormat is set to JSON",
312
+ "type": "string",
313
+ "enum": [
314
+ "TRACE",
315
+ "DEBUG",
316
+ "INFO",
317
+ "WARN",
318
+ "ERROR",
319
+ "FATAL"
320
+ ]
321
+ },
322
+ "LogGroup": {
323
+ "minLength": 1,
324
+ "pattern": "[\\.\\-_/#A-Za-z0-9]+",
325
+ "description": "The log group name.",
326
+ "type": "string",
327
+ "maxLength": 512
328
+ },
329
+ "SystemLogLevel": {
330
+ "description": "System log granularity level, can only be used when LogFormat is set to JSON",
331
+ "type": "string",
332
+ "enum": [
333
+ "DEBUG",
334
+ "INFO",
335
+ "WARN"
336
+ ]
337
+ }
338
+ }
339
+ },
264
340
  "Environment": {
265
341
  "description": "A function's environment variable settings.",
266
342
  "additionalProperties": false,
@@ -457,6 +533,10 @@
457
533
  "description": "The Amazon Resource Name (ARN) of the function's execution role.",
458
534
  "type": "string"
459
535
  },
536
+ "LoggingConfig": {
537
+ "description": "The logging configuration of your function",
538
+ "$ref": "#/definitions/LoggingConfig"
539
+ },
460
540
  "Environment": {
461
541
  "description": "Environment variables that are accessible from function code during execution.",
462
542
  "$ref": "#/definitions/Environment"
@@ -237,11 +237,11 @@ def prepare_host_machine_id():
237
237
 
238
238
  @hooks.configure_localstack_container()
239
239
  def _mount_machine_file(container: Container):
240
- from localstack.utils.container_utils.container_client import VolumeBind
240
+ from localstack.utils.container_utils.container_client import BindMount
241
241
 
242
242
  # mount tha machine file from the host's CLI cache directory into the appropriate location in the
243
243
  # container
244
244
  machine_file = os.path.join(config.dirs.cache, "machine.json")
245
245
  if os.path.isfile(machine_file):
246
246
  target = os.path.join(config.dirs.for_container().cache, "machine.json")
247
- container.config.volumes.add(VolumeBind(machine_file, target, read_only=True))
247
+ container.config.volumes.add(BindMount(machine_file, target, read_only=True))
@@ -24,6 +24,7 @@ from localstack.constants import VERSION
24
24
  from localstack.runtime import hooks
25
25
  from localstack.utils.container_networking import get_main_container_name
26
26
  from localstack.utils.container_utils.container_client import (
27
+ BindMount,
27
28
  CancellableStream,
28
29
  ContainerClient,
29
30
  ContainerConfiguration,
@@ -33,7 +34,7 @@ from localstack.utils.container_utils.container_client import (
33
34
  NoSuchImage,
34
35
  NoSuchNetwork,
35
36
  PortMappings,
36
- VolumeBind,
37
+ VolumeDirMount,
37
38
  VolumeMappings,
38
39
  )
39
40
  from localstack.utils.container_utils.docker_cmd_client import CmdDockerClient
@@ -491,7 +492,7 @@ class ContainerConfigurators:
491
492
  target = "/var/run/docker.sock"
492
493
  if cfg.volumes.find_target_mapping(target):
493
494
  return
494
- cfg.volumes.add(VolumeBind(source, target))
495
+ cfg.volumes.add(BindMount(source, target))
495
496
  cfg.env_vars["DOCKER_HOST"] = f"unix://{target}"
496
497
 
497
498
  @staticmethod
@@ -501,7 +502,7 @@ class ContainerConfigurators:
501
502
  def _cfg(cfg: ContainerConfiguration):
502
503
  if cfg.volumes.find_target_mapping(constants.DEFAULT_VOLUME_DIR):
503
504
  return
504
- cfg.volumes.add(VolumeBind(str(host_path), constants.DEFAULT_VOLUME_DIR))
505
+ cfg.volumes.add(BindMount(str(host_path), constants.DEFAULT_VOLUME_DIR))
505
506
 
506
507
  return _cfg
507
508
 
@@ -679,7 +680,7 @@ class ContainerConfigurators:
679
680
  return _cfg
680
681
 
681
682
  @staticmethod
682
- def volume(volume: VolumeBind):
683
+ def volume(volume: BindMount | VolumeDirMount):
683
684
  def _cfg(cfg: ContainerConfiguration):
684
685
  cfg.volumes.add(volume)
685
686
 
@@ -807,7 +808,7 @@ class ContainerConfigurators:
807
808
 
808
809
  def _cfg(cfg: ContainerConfiguration):
809
810
  for param in params:
810
- cfg.volumes.append(VolumeBind.parse(param))
811
+ cfg.volumes.append(BindMount.parse(param))
811
812
 
812
813
  return _cfg
813
814
 
@@ -27,6 +27,7 @@ from typing import (
27
27
  import dotenv
28
28
 
29
29
  from localstack import config
30
+ from localstack.constants import DEFAULT_VOLUME_DIR
30
31
  from localstack.utils.collections import HashableList, ensure_list
31
32
  from localstack.utils.files import TMP_FILES, chmod_r, rm_rf, save_file
32
33
  from localstack.utils.no_exit_argument_parser import NoExitArgumentParser
@@ -370,7 +371,7 @@ SimpleVolumeBind = Tuple[str, str]
370
371
 
371
372
 
372
373
  @dataclasses.dataclass
373
- class VolumeBind:
374
+ class BindMount:
374
375
  """Represents a --volume argument run/create command. When using VolumeBind to bind-mount a file or directory
375
376
  that does not yet exist on the Docker host, -v creates the endpoint for you. It is always created as a directory.
376
377
  """
@@ -395,8 +396,14 @@ class VolumeBind:
395
396
 
396
397
  return ":".join(args)
397
398
 
399
+ def to_docker_sdk_parameters(self) -> tuple[str, dict[str, str]]:
400
+ return str(self.host_dir), {
401
+ "bind": self.container_dir,
402
+ "mode": "ro" if self.read_only else "rw",
403
+ }
404
+
398
405
  @classmethod
399
- def parse(cls, param: str) -> "VolumeBind":
406
+ def parse(cls, param: str) -> "BindMount":
400
407
  parts = param.split(":")
401
408
  if 1 > len(parts) > 3:
402
409
  raise ValueError(f"Cannot parse volume bind {param}")
@@ -408,27 +415,66 @@ class VolumeBind:
408
415
  return volume
409
416
 
410
417
 
418
+ @dataclasses.dataclass
419
+ class VolumeDirMount:
420
+ volume_path: str
421
+ """
422
+ Absolute path inside /var/lib/localstack to mount into the container
423
+ """
424
+ container_path: str
425
+ """
426
+ Target path inside the started container
427
+ """
428
+ read_only: bool = False
429
+
430
+ def to_str(self) -> str:
431
+ self._validate()
432
+ from localstack.utils.docker_utils import get_host_path_for_path_in_docker
433
+
434
+ host_dir = get_host_path_for_path_in_docker(self.volume_path)
435
+ return f"{host_dir}:{self.container_path}{':ro' if self.read_only else ''}"
436
+
437
+ def _validate(self):
438
+ if not self.volume_path:
439
+ raise ValueError("no volume dir specified")
440
+ if config.is_in_docker and not self.volume_path.startswith(DEFAULT_VOLUME_DIR):
441
+ raise ValueError(f"volume dir not starting with {DEFAULT_VOLUME_DIR}")
442
+ if not self.container_path:
443
+ raise ValueError("no container dir specified")
444
+
445
+ def to_docker_sdk_parameters(self) -> tuple[str, dict[str, str]]:
446
+ self._validate()
447
+ from localstack.utils.docker_utils import get_host_path_for_path_in_docker
448
+
449
+ host_dir = get_host_path_for_path_in_docker(self.volume_path)
450
+ return host_dir, {
451
+ "bind": self.container_path,
452
+ "mode": "ro" if self.read_only else "rw",
453
+ }
454
+
455
+
411
456
  class VolumeMappings:
412
- mappings: List[Union[SimpleVolumeBind, VolumeBind]]
457
+ mappings: List[Union[SimpleVolumeBind, BindMount]]
413
458
 
414
- def __init__(self, mappings: List[Union[SimpleVolumeBind, VolumeBind]] = None):
459
+ def __init__(self, mappings: List[Union[SimpleVolumeBind, BindMount, VolumeDirMount]] = None):
415
460
  self.mappings = mappings if mappings is not None else []
416
461
 
417
- def add(self, mapping: Union[SimpleVolumeBind, VolumeBind]):
462
+ def add(self, mapping: Union[SimpleVolumeBind, BindMount, VolumeDirMount]):
418
463
  self.append(mapping)
419
464
 
420
465
  def append(
421
466
  self,
422
467
  mapping: Union[
423
468
  SimpleVolumeBind,
424
- VolumeBind,
469
+ BindMount,
470
+ VolumeDirMount,
425
471
  ],
426
472
  ):
427
473
  self.mappings.append(mapping)
428
474
 
429
475
  def find_target_mapping(
430
476
  self, container_dir: str
431
- ) -> Optional[Union[SimpleVolumeBind, VolumeBind]]:
477
+ ) -> Optional[Union[SimpleVolumeBind, BindMount, VolumeDirMount]]:
432
478
  """
433
479
  Looks through the volumes and returns the one where the container dir matches ``container_dir``.
434
480
  Returns None if there is no volume mapping to the given container directory.
@@ -448,6 +494,12 @@ class VolumeMappings:
448
494
  def __repr__(self):
449
495
  return self.mappings.__repr__()
450
496
 
497
+ def __len__(self):
498
+ return len(self.mappings)
499
+
500
+ def __getitem__(self, item: int):
501
+ return self.mappings[item]
502
+
451
503
 
452
504
  VolumeType = Literal["bind", "volume"]
453
505
 
@@ -1441,12 +1493,9 @@ class Util:
1441
1493
  ) -> Dict[str, Dict[str, str]]:
1442
1494
  """Converts a List of (host_path, container_path) tuples to a Dict suitable as volume argument for docker sdk"""
1443
1495
 
1444
- def _map_to_dict(paths: SimpleVolumeBind | VolumeBind):
1445
- if isinstance(paths, VolumeBind):
1446
- return str(paths.host_dir), {
1447
- "bind": paths.container_dir,
1448
- "mode": "ro" if paths.read_only else "rw",
1449
- }
1496
+ def _map_to_dict(paths: SimpleVolumeBind | BindMount | VolumeDirMount):
1497
+ if isinstance(paths, (BindMount, VolumeDirMount)):
1498
+ return paths.to_docker_sdk_parameters()
1450
1499
  else:
1451
1500
  return str(paths[0]), {"bind": paths[1], "mode": "rw"}
1452
1501
 
@@ -12,6 +12,7 @@ from localstack import config
12
12
  from localstack.utils.collections import ensure_list
13
13
  from localstack.utils.container_utils.container_client import (
14
14
  AccessDenied,
15
+ BindMount,
15
16
  CancellableStream,
16
17
  ContainerClient,
17
18
  ContainerException,
@@ -29,7 +30,7 @@ from localstack.utils.container_utils.container_client import (
29
30
  SimpleVolumeBind,
30
31
  Ulimit,
31
32
  Util,
32
- VolumeBind,
33
+ VolumeDirMount,
33
34
  )
34
35
  from localstack.utils.run import run
35
36
  from localstack.utils.strings import first_char_to_upper, to_str
@@ -878,7 +879,7 @@ class CmdDockerClient(ContainerClient):
878
879
  return cmd, env_file
879
880
 
880
881
  @staticmethod
881
- def _map_to_volume_param(volume: Union[SimpleVolumeBind, VolumeBind]) -> str:
882
+ def _map_to_volume_param(volume: Union[SimpleVolumeBind, BindMount, VolumeDirMount]) -> str:
882
883
  """
883
884
  Maps the mount volume, to a parameter for the -v docker cli argument.
884
885
 
@@ -889,7 +890,7 @@ class CmdDockerClient(ContainerClient):
889
890
  :param volume: Either a SimpleVolumeBind, in essence a tuple (host_dir, container_dir), or a VolumeBind object
890
891
  :return: String which is passable as parameter to the docker cli -v option
891
892
  """
892
- if isinstance(volume, VolumeBind):
893
+ if isinstance(volume, (BindMount, VolumeDirMount)):
893
894
  return volume.to_str()
894
895
  else:
895
896
  return f"{volume[0]}:{volume[1]}"
localstack/version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '4.3.1.dev31'
21
- __version_tuple__ = version_tuple = (4, 3, 1, 'dev31')
20
+ __version__ = version = '4.3.1.dev33'
21
+ __version_tuple__ = version_tuple = (4, 3, 1, 'dev33')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.3.1.dev31
3
+ Version: 4.3.1.dev33
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
@@ -3,7 +3,7 @@ localstack/constants.py,sha256=bBh6djh4x37MrS8az8LizX_APMZ56XdtJHCnZdOnmeg,6867
3
3
  localstack/deprecations.py,sha256=t3zeaZaHhKYM8snP1wRZhpvAy6MbB12Vqv5hK78bwJ0,15162
4
4
  localstack/openapi.yaml,sha256=B803NmpwsxG8PHpHrdZYBrUYjnrRh7B_JX0XuNynuFs,30237
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
- localstack/version.py,sha256=Cea6t1Il7y3o70mAg1MxOYKFfz6RW5OszAw_mgFb7a0,526
6
+ localstack/version.py,sha256=oFmiJpmHCO3PCSdFocFtfkaKXfFIDm2lG9E5zq8ABfo,526
7
7
  localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
9
9
  localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
@@ -109,7 +109,7 @@ localstack/dev/kubernetes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
109
109
  localstack/dev/kubernetes/__main__.py,sha256=-x_RCT6C9k1Q70m_QzNWRNLvuZOMvLGATQGiGOfFx5E,10844
110
110
  localstack/dev/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
111
  localstack/dev/run/__main__.py,sha256=2p2A_jngPIMZuzy6_11C5qCegaV9Rl0On2paHPYZFFU,13489
112
- localstack/dev/run/configurators.py,sha256=mHeczQOeCq3P6Zbq_D3l7UaJthjYpxECYq-l8GiD6JY,14314
112
+ localstack/dev/run/configurators.py,sha256=OPHDzCIL-eFbtk_vN2_HH2Tz1buMumkQiS7X5Y3dZBo,14303
113
113
  localstack/dev/run/paths.py,sha256=VbZydUB4AoSp-mI4D1pdazq1q2RPnCMnTx1B760HI3Q,3546
114
114
  localstack/dns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  localstack/dns/models.py,sha256=-2iUSGtKmDnsbObYesT-pzwirvsggHxoKyCwBYWvqmE,5785
@@ -567,7 +567,7 @@ localstack/services/lambda_/event_source_mapping/senders/sender_utils.py,sha256=
567
567
  localstack/services/lambda_/invocation/__init__.py,sha256=g6PC4HNlQSu3sgTQ8-L7YrW7bj8J0OQyuvE9vWUXY50,202
568
568
  localstack/services/lambda_/invocation/assignment.py,sha256=Q85sAdKdX2N29bS8EZsqe_RPvo5SXAqZDgzEeDtiXzw,7721
569
569
  localstack/services/lambda_/invocation/counting_service.py,sha256=e3f__j4cpZoA3nVQzhp_kYI8hiqhfXW4JUUw_PyaZv0,13161
570
- localstack/services/lambda_/invocation/docker_runtime_executor.py,sha256=RmGdXwLow4McYOYhIrJ7izm0g7qACw1t5iDTt8z-DqE,21661
570
+ localstack/services/lambda_/invocation/docker_runtime_executor.py,sha256=Y6h53H8-hoLtrdAINXfeeEwSfc1w4uhHgfhdD8kBLO8,21659
571
571
  localstack/services/lambda_/invocation/event_manager.py,sha256=OQTCHkpPPDv_Vis5lL5QtEbIKc7WcNFeFDkQQwBw2WE,27004
572
572
  localstack/services/lambda_/invocation/execution_environment.py,sha256=2tilgA18tcQ4D7kHn9piYWKrfSKWxMcWlUk-XizMGp0,18192
573
573
  localstack/services/lambda_/invocation/executor_endpoint.py,sha256=ok1unx1_vroBKvV9We8iZNt6O4u58q788ywHTgFrm9o,8481
@@ -592,8 +592,8 @@ localstack/services/lambda_/resource_providers/aws_lambda_eventinvokeconfig_plug
592
592
  localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.py,sha256=hHoh4xknJkWx60e6cmNv9Icu9oLfFBafmNVLUohAZWQ,6802
593
593
  localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping.schema.json,sha256=G8UhvVDWJiywkdSLhimyNJz1oSbOEq4uASGYe1kz4Tk,13019
594
594
  localstack/services/lambda_/resource_providers/aws_lambda_eventsourcemapping_plugin.py,sha256=0ZMjrCKmeibDe2j1ygUh1YU6ZGXGy-r6-pxfbl-6lr4,619
595
- localstack/services/lambda_/resource_providers/aws_lambda_function.py,sha256=-k02lGFb4RhjG0txlXOqS7j-WQcHG0KhCxCKQtBkkVc,19463
596
- localstack/services/lambda_/resource_providers/aws_lambda_function.schema.json,sha256=Iih-mtREu3edNfxcOIUdnfN8GBWwgVESnrvM0VvKTY8,16077
595
+ localstack/services/lambda_/resource_providers/aws_lambda_function.py,sha256=ZZH6Vj3axfe6QCW7VGXOUQ33MM9NilDtBH1M1TIibcM,20389
596
+ localstack/services/lambda_/resource_providers/aws_lambda_function.schema.json,sha256=6wmDJSN1D4R3toOrUa21ywMs2NIVhMpVtWVPHt6_vBM,18522
597
597
  localstack/services/lambda_/resource_providers/aws_lambda_function_plugin.py,sha256=QQjEFcqirtxx51xTCLylJcIcCHCPb8onVtc3XWpbxF8,569
598
598
  localstack/services/lambda_/resource_providers/aws_lambda_layerversion.py,sha256=n6DKp5uIYv1Lg5AyPEa1m49LpHpUsaESxgasnkrRKVY,6772
599
599
  localstack/services/lambda_/resource_providers/aws_lambda_layerversion.schema.json,sha256=LTHMOtEApQ1PqOwFVK7tiIq-_ISzzFNrI8n652d-8hU,2998
@@ -1191,7 +1191,7 @@ localstack/utils/asyncio.py,sha256=hBn7XH7Txk0WA_kwRvVjHudWJuDZxOkiNd9pQJl4_Lk,5
1191
1191
  localstack/utils/auth.py,sha256=uZNbD3hoQE29BykHANiy0uh-yLcvR05zjyYGN7gDmXQ,2415
1192
1192
  localstack/utils/backoff.py,sha256=mVyADce0BzHFA0MzbQ3VH6R9i3DBLitxGOEj-LeLD48,4117
1193
1193
  localstack/utils/batch_policy.py,sha256=jLzSb5y_-fszblGXfz7hDCpTmomTBTfsTjU4uP8QS5Q,4243
1194
- localstack/utils/bootstrap.py,sha256=nqTN35zFJUUS8aupnJAvtXyHkJ2fX1udneFkd4ox54o,50436
1194
+ localstack/utils/bootstrap.py,sha256=vlvbzruedOJbXZlx4MGDJoYH4bu0MCZJ5sfxdEVt6tY,50468
1195
1195
  localstack/utils/collections.py,sha256=RbNxoAeEp12PBriCkueMTBgShlsQ1sTM9QgkvKPh6vY,17517
1196
1196
  localstack/utils/common.py,sha256=A6pfxPHyDR8xsFTcxmxmKDSfGY1NMhn6NFXaS-sJDVM,6427
1197
1197
  localstack/utils/config_listener.py,sha256=x7mStigWGTM6vg4HViXdSeD8kE3GpWUOcRwvHrraghE,1218
@@ -1233,7 +1233,7 @@ localstack/utils/analytics/cli.py,sha256=OEDUkaLgmGA5GEBm5bjlpPWIGE6fzO75z-KbypS
1233
1233
  localstack/utils/analytics/client.py,sha256=6bUWMpS42dUCRcRhkJuqHhlx_OSJegQJ4WJoL79kLZs,3425
1234
1234
  localstack/utils/analytics/events.py,sha256=XMzrrcJc-p-6DxQfALHWO4lZco_I30dt_5MbCR_sKJc,582
1235
1235
  localstack/utils/analytics/logger.py,sha256=-sA_zjptY7o2kOXP2sDduQPzfNwULYIRnoqwKGgsg2Q,1397
1236
- localstack/utils/analytics/metadata.py,sha256=DxzXIickagKB-Ww5FZ5WL--U2g7vr8m__omgWNj5bVM,7153
1236
+ localstack/utils/analytics/metadata.py,sha256=tup9FurX-SlDGGY0at4YBcfdavz5C4pLet-gaqZltfM,7151
1237
1237
  localstack/utils/analytics/metrics.py,sha256=xDfmDwWEt-WmB2goY96X0J1WhqlYkjFUTLwcgEja5KM,10130
1238
1238
  localstack/utils/analytics/publisher.py,sha256=Y_xbaM-cZjZVtTRSCQWpGLU4KrSiLJ7TC-iaIyBOufw,8629
1239
1239
  localstack/utils/analytics/service_request_aggregator.py,sha256=QhgvA79wDjrXq3FI7EP9ziTHYEOspot7fy6D0yfVKDw,3926
@@ -1253,8 +1253,8 @@ localstack/utils/aws/templating.py,sha256=4YWJZfgPLXq1JyC09sa-8vrB6lIY1gb6KsqIN4
1253
1253
  localstack/utils/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1254
1254
  localstack/utils/cloudwatch/cloudwatch_util.py,sha256=pzAkinoZr7m97pojuaSTdy2UlgyO8DOEqwtPMSMr75U,8478
1255
1255
  localstack/utils/container_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1256
- localstack/utils/container_utils/container_client.py,sha256=Gcg3WM1V3fdDXS79FAvheyjKEf1_HYM1hujkLDssUyE,55499
1257
- localstack/utils/container_utils/docker_cmd_client.py,sha256=xlC0LcpCrOMr7iqBHrWETi_YUGvQhqlsbddVofnFOFs,36953
1256
+ localstack/utils/container_utils/container_client.py,sha256=3JdGesK7Ya2gdhzET_tzpexDZn19QIbSjQrb4tsEkl8,57203
1257
+ localstack/utils/container_utils/docker_cmd_client.py,sha256=OFqtYbWT3fZto5L-GNMCZdp19Q37WRcK6UfOXfIsKuc,37004
1258
1258
  localstack/utils/container_utils/docker_sdk_client.py,sha256=kqpqZb73vA9InOundun0ma2kaQDfeWKXrsIJCi6zrmU,38381
1259
1259
  localstack/utils/kinesis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1260
1260
  localstack/utils/kinesis/kclipy_helper.py,sha256=D3GPG9eT21IXuS94iIrJSAEtxGbcoDOkuRyCnHGd4Ek,4022
@@ -1268,13 +1268,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1268
1268
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1269
1269
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1270
1270
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1271
- localstack_core-4.3.1.dev31.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1272
- localstack_core-4.3.1.dev31.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1273
- localstack_core-4.3.1.dev31.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1274
- localstack_core-4.3.1.dev31.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1275
- localstack_core-4.3.1.dev31.dist-info/METADATA,sha256=ZwOIrfLIOAcIULC2lCUoMw7YsCXqhs7Er---7bokvS4,5506
1276
- localstack_core-4.3.1.dev31.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
1277
- localstack_core-4.3.1.dev31.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1278
- localstack_core-4.3.1.dev31.dist-info/plux.json,sha256=kGfPhYn_Vko1NGk85ZhZW9P4qxvp2xJBs2ddYvX4ULQ,20786
1279
- localstack_core-4.3.1.dev31.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1280
- localstack_core-4.3.1.dev31.dist-info/RECORD,,
1271
+ localstack_core-4.3.1.dev33.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1272
+ localstack_core-4.3.1.dev33.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1273
+ localstack_core-4.3.1.dev33.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1274
+ localstack_core-4.3.1.dev33.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1275
+ localstack_core-4.3.1.dev33.dist-info/METADATA,sha256=YQmnfX1mE63Zz5fYqcvR71Cn7cbJRicDRIIIqmnWM3c,5506
1276
+ localstack_core-4.3.1.dev33.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
1277
+ localstack_core-4.3.1.dev33.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1278
+ localstack_core-4.3.1.dev33.dist-info/plux.json,sha256=yl1QvSFNtWSxtidRbXn_Z54AiCtLQ1lmNaef9iV1Nzk,20786
1279
+ localstack_core-4.3.1.dev33.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1280
+ localstack_core-4.3.1.dev33.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "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::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "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::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.hooks.on_infra_shutdown": ["_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics"], "localstack.hooks.on_infra_start": ["_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches"], "localstack.packages": ["jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_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", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.configure_localstack_container": ["_mount_machine_file=localstack.utils.analytics.metadata:_mount_machine_file"], "localstack.hooks.prepare_host": ["prepare_host_machine_id=localstack.utils.analytics.metadata:prepare_host_machine_id"]}
@@ -1 +0,0 @@
1
- {"localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package"], "localstack.hooks.on_infra_start": ["register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "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", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "_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"], "localstack.hooks.on_infra_shutdown": ["remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send"], "localstack.cloudformation.resource_providers": ["AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "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::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "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::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "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::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin"], "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"], "localstack.aws.provider": ["acm:default=localstack.services.providers:acm", "apigateway:default=localstack.services.providers:apigateway", "apigateway:legacy=localstack.services.providers:apigateway_legacy", "apigateway:next_gen=localstack.services.providers:apigateway_next_gen", "config:default=localstack.services.providers:awsconfig", "cloudformation:default=localstack.services.providers:cloudformation", "cloudformation:engine-v2=localstack.services.providers:cloudformation_v2", "cloudwatch:default=localstack.services.providers:cloudwatch", "cloudwatch:v1=localstack.services.providers:cloudwatch_v1", "cloudwatch:v2=localstack.services.providers:cloudwatch_v2", "dynamodb:default=localstack.services.providers:dynamodb", "dynamodb:v2=localstack.services.providers:dynamodb_v2", "dynamodbstreams:default=localstack.services.providers:dynamodbstreams", "dynamodbstreams:v2=localstack.services.providers:dynamodbstreams_v2", "ec2:default=localstack.services.providers:ec2", "es:default=localstack.services.providers:es", "events:default=localstack.services.providers:events", "events:legacy=localstack.services.providers:events_legacy", "events:v1=localstack.services.providers:events_v1", "events:v2=localstack.services.providers:events_v2", "firehose:default=localstack.services.providers:firehose", "iam:default=localstack.services.providers:iam", "kinesis:default=localstack.services.providers:kinesis", "kms:default=localstack.services.providers:kms", "lambda:default=localstack.services.providers:lambda_", "lambda:asf=localstack.services.providers:lambda_asf", "lambda:v2=localstack.services.providers:lambda_v2", "logs:default=localstack.services.providers:logs", "opensearch:default=localstack.services.providers:opensearch", "redshift:default=localstack.services.providers:redshift", "resource-groups:default=localstack.services.providers:resource_groups", "resourcegroupstaggingapi:default=localstack.services.providers:resourcegroupstaggingapi", "route53:default=localstack.services.providers:route53", "route53resolver:default=localstack.services.providers:route53resolver", "s3:default=localstack.services.providers:s3", "s3control:default=localstack.services.providers:s3control", "scheduler:default=localstack.services.providers:scheduler", "secretsmanager:default=localstack.services.providers:secretsmanager", "ses:default=localstack.services.providers:ses", "sns:default=localstack.services.providers:sns", "sqs:default=localstack.services.providers:sqs", "ssm:default=localstack.services.providers:ssm", "stepfunctions:default=localstack.services.providers:stepfunctions", "stepfunctions:v2=localstack.services.providers:stepfunctions_v2", "sts:default=localstack.services.providers:sts", "support:default=localstack.services.providers:support", "swf:default=localstack.services.providers:swf", "transcribe:default=localstack.services.providers:transcribe"], "localstack.hooks.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"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"]}