localstack-core 4.3.1.dev66__py3-none-any.whl → 4.3.1.dev68__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 (24) hide show
  1. localstack/config.py +1 -1
  2. localstack/constants.py +1 -1
  3. localstack/packages/api.py +34 -22
  4. localstack/packages/core.py +6 -4
  5. localstack/packages/debugpy.py +4 -4
  6. localstack/packages/ffmpeg.py +6 -6
  7. localstack/packages/java.py +13 -10
  8. localstack/packages/plugins.py +10 -3
  9. localstack/packages/terraform.py +5 -5
  10. localstack/services/kinesis/packages.py +3 -3
  11. localstack/utils/archives.py +12 -13
  12. localstack/utils/venv.py +2 -2
  13. localstack/version.py +2 -2
  14. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/METADATA +2 -1
  15. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/RECORD +23 -23
  16. localstack_core-4.3.1.dev68.dist-info/plux.json +1 -0
  17. localstack_core-4.3.1.dev66.dist-info/plux.json +0 -1
  18. {localstack_core-4.3.1.dev66.data → localstack_core-4.3.1.dev68.data}/scripts/localstack +0 -0
  19. {localstack_core-4.3.1.dev66.data → localstack_core-4.3.1.dev68.data}/scripts/localstack-supervisor +0 -0
  20. {localstack_core-4.3.1.dev66.data → localstack_core-4.3.1.dev68.data}/scripts/localstack.bat +0 -0
  21. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/WHEEL +0 -0
  22. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/entry_points.txt +0 -0
  23. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/licenses/LICENSE.txt +0 -0
  24. {localstack_core-4.3.1.dev66.dist-info → localstack_core-4.3.1.dev68.dist-info}/top_level.txt +0 -0
localstack/config.py CHANGED
@@ -605,7 +605,7 @@ class HostAndPort:
605
605
  def is_unprivileged(self) -> bool:
606
606
  return self.port >= self._get_unprivileged_port_range_start()
607
607
 
608
- def host_and_port(self):
608
+ def host_and_port(self) -> str:
609
609
  formatted_host = f"[{self.host}]" if is_ipv6_address(self.host) else self.host
610
610
  return f"{formatted_host}:{self.port}" if self.port is not None else formatted_host
611
611
 
localstack/constants.py CHANGED
@@ -45,7 +45,7 @@ MODULE_MAIN_PATH = os.path.dirname(os.path.realpath(__file__))
45
45
  LOCALSTACK_ROOT_FOLDER = os.path.realpath(os.path.join(MODULE_MAIN_PATH, ".."))
46
46
 
47
47
  # virtualenv folder
48
- LOCALSTACK_VENV_FOLDER = os.environ.get("VIRTUAL_ENV")
48
+ LOCALSTACK_VENV_FOLDER: str = os.environ.get("VIRTUAL_ENV")
49
49
  if not LOCALSTACK_VENV_FOLDER:
50
50
  # fallback to the previous logic
51
51
  LOCALSTACK_VENV_FOLDER = os.path.join(LOCALSTACK_ROOT_FOLDER, ".venv")
@@ -6,9 +6,9 @@ from collections import defaultdict
6
6
  from enum import Enum
7
7
  from inspect import getmodule
8
8
  from threading import RLock
9
- from typing import Callable, List, Optional, Tuple
9
+ from typing import Any, Callable, Generic, List, Optional, ParamSpec, TypeVar
10
10
 
11
- from plux import Plugin, PluginManager, PluginSpec
11
+ from plux import Plugin, PluginManager, PluginSpec # type: ignore[import-untyped]
12
12
 
13
13
  from localstack import config
14
14
 
@@ -24,7 +24,7 @@ class PackageException(Exception):
24
24
  class NoSuchVersionException(PackageException):
25
25
  """Exception indicating that a requested installer version is not available / supported."""
26
26
 
27
- def __init__(self, package: str = None, version: str = None):
27
+ def __init__(self, package: str | None = None, version: str | None = None):
28
28
  message = "Unable to find requested version"
29
29
  if package and version:
30
30
  message += f"Unable to find requested version '{version}' for package '{package}'"
@@ -123,6 +123,7 @@ class PackageInstaller(abc.ABC):
123
123
  directory = self._get_install_dir(target)
124
124
  if directory and os.path.exists(self._get_install_marker_path(directory)):
125
125
  return directory
126
+ return None
126
127
 
127
128
  def _get_install_dir(self, target: InstallTarget) -> str:
128
129
  """
@@ -181,7 +182,12 @@ class PackageInstaller(abc.ABC):
181
182
  pass
182
183
 
183
184
 
184
- class Package(abc.ABC):
185
+ # With Python 3.13 we should be able to set PackageInstaller as the default
186
+ # https://typing.python.org/en/latest/spec/generics.html#type-parameter-defaults
187
+ T = TypeVar("T", bound=PackageInstaller)
188
+
189
+
190
+ class Package(abc.ABC, Generic[T]):
185
191
  """
186
192
  A Package defines a specific kind of software, mostly used as backends or supporting system for service
187
193
  implementations.
@@ -214,7 +220,7 @@ class Package(abc.ABC):
214
220
  self.get_installer(version).install(target)
215
221
 
216
222
  @functools.lru_cache()
217
- def get_installer(self, version: str | None = None) -> PackageInstaller:
223
+ def get_installer(self, version: str | None = None) -> T:
218
224
  """
219
225
  Returns the installer instance for a specific version of the package.
220
226
 
@@ -237,7 +243,7 @@ class Package(abc.ABC):
237
243
  """
238
244
  raise NotImplementedError()
239
245
 
240
- def _get_installer(self, version: str) -> PackageInstaller:
246
+ def _get_installer(self, version: str) -> T:
241
247
  """
242
248
  Internal lookup function which needs to be implemented by specific packages.
243
249
  It creates PackageInstaller instances for the specific version.
@@ -247,7 +253,7 @@ class Package(abc.ABC):
247
253
  """
248
254
  raise NotImplementedError()
249
255
 
250
- def __str__(self):
256
+ def __str__(self) -> str:
251
257
  return self.name
252
258
 
253
259
 
@@ -298,7 +304,7 @@ class MultiPackageInstaller(PackageInstaller):
298
304
  PLUGIN_NAMESPACE = "localstack.packages"
299
305
 
300
306
 
301
- class PackagesPlugin(Plugin):
307
+ class PackagesPlugin(Plugin): # type: ignore[misc]
302
308
  """
303
309
  Plugin implementation for Package plugins.
304
310
  A package plugin exposes a specific package instance.
@@ -311,8 +317,8 @@ class PackagesPlugin(Plugin):
311
317
  self,
312
318
  name: str,
313
319
  scope: str,
314
- get_package: Callable[[], Package | List[Package]],
315
- should_load: Callable[[], bool] = None,
320
+ get_package: Callable[[], Package[PackageInstaller] | List[Package[PackageInstaller]]],
321
+ should_load: Callable[[], bool] | None = None,
316
322
  ) -> None:
317
323
  super().__init__()
318
324
  self.name = name
@@ -325,11 +331,11 @@ class PackagesPlugin(Plugin):
325
331
  return self._should_load()
326
332
  return True
327
333
 
328
- def get_package(self) -> Package:
334
+ def get_package(self) -> Package[PackageInstaller]:
329
335
  """
330
336
  :return: returns the package instance of this package plugin
331
337
  """
332
- return self._get_package()
338
+ return self._get_package() # type: ignore[return-value]
333
339
 
334
340
 
335
341
  class NoSuchPackageException(PackageException):
@@ -338,20 +344,20 @@ class NoSuchPackageException(PackageException):
338
344
  pass
339
345
 
340
346
 
341
- class PackagesPluginManager(PluginManager[PackagesPlugin]):
347
+ class PackagesPluginManager(PluginManager[PackagesPlugin]): # type: ignore[misc]
342
348
  """PluginManager which simplifies the loading / access of PackagesPlugins and their exposed package instances."""
343
349
 
344
- def __init__(self):
350
+ def __init__(self) -> None:
345
351
  super().__init__(PLUGIN_NAMESPACE)
346
352
 
347
- def get_all_packages(self) -> List[Tuple[str, str, Package]]:
353
+ def get_all_packages(self) -> list[tuple[str, str, Package[PackageInstaller]]]:
348
354
  return sorted(
349
355
  [(plugin.name, plugin.scope, plugin.get_package()) for plugin in self.load_all()]
350
356
  )
351
357
 
352
358
  def get_packages(
353
- self, package_names: List[str], version: Optional[str] = None
354
- ) -> List[Package]:
359
+ self, package_names: list[str], version: Optional[str] = None
360
+ ) -> list[Package[PackageInstaller]]:
355
361
  # Plugin names are unique, but there could be multiple packages with the same name in different scopes
356
362
  plugin_specs_per_name = defaultdict(list)
357
363
  # Plugin names have the format "<package-name>/<scope>", build a dict of specs per package name for the lookup
@@ -359,7 +365,7 @@ class PackagesPluginManager(PluginManager[PackagesPlugin]):
359
365
  (package_name, _, _) = plugin_spec.name.rpartition("/")
360
366
  plugin_specs_per_name[package_name].append(plugin_spec)
361
367
 
362
- package_instances: List[Package] = []
368
+ package_instances: list[Package[PackageInstaller]] = []
363
369
  for package_name in package_names:
364
370
  plugin_specs = plugin_specs_per_name.get(package_name)
365
371
  if not plugin_specs:
@@ -377,9 +383,15 @@ class PackagesPluginManager(PluginManager[PackagesPlugin]):
377
383
  return package_instances
378
384
 
379
385
 
386
+ P = ParamSpec("P")
387
+ T2 = TypeVar("T2")
388
+
389
+
380
390
  def package(
381
- name: str = None, scope: str = "community", should_load: Optional[Callable[[], bool]] = None
382
- ):
391
+ name: str | None = None,
392
+ scope: str = "community",
393
+ should_load: Optional[Callable[[], bool]] = None,
394
+ ) -> Callable[[Callable[[], Package[Any] | list[Package[Any]]]], PluginSpec]:
383
395
  """
384
396
  Decorator for marking methods that create Package instances as a PackagePlugin.
385
397
  Methods marked with this decorator are discoverable as a PluginSpec within the namespace "localstack.packages",
@@ -387,8 +399,8 @@ def package(
387
399
  service name.
388
400
  """
389
401
 
390
- def wrapper(fn):
391
- _name = name or getmodule(fn).__name__.split(".")[-2]
402
+ def wrapper(fn: Callable[[], Package[Any] | list[Package[Any]]]) -> PluginSpec:
403
+ _name = name or getmodule(fn).__name__.split(".")[-2] # type: ignore[union-attr]
392
404
 
393
405
  @functools.wraps(fn)
394
406
  def factory() -> PackagesPlugin:
@@ -4,7 +4,7 @@ import re
4
4
  from abc import ABC
5
5
  from functools import lru_cache
6
6
  from sys import version_info
7
- from typing import Optional, Tuple
7
+ from typing import Any, Optional, Tuple
8
8
 
9
9
  import requests
10
10
 
@@ -39,6 +39,7 @@ class ExecutableInstaller(PackageInstaller, ABC):
39
39
  install_dir = self.get_installed_dir()
40
40
  if install_dir:
41
41
  return self._get_install_marker_path(install_dir)
42
+ return None
42
43
 
43
44
 
44
45
  class DownloadInstaller(ExecutableInstaller):
@@ -104,6 +105,7 @@ class ArchiveDownloadAndExtractInstaller(ExecutableInstaller):
104
105
  if install_dir:
105
106
  install_dir = install_dir[: -len(subdir)]
106
107
  return self._get_install_marker_path(install_dir)
108
+ return None
107
109
 
108
110
  def _install(self, target: InstallTarget) -> None:
109
111
  target_directory = self._get_install_dir(target)
@@ -133,7 +135,7 @@ class ArchiveDownloadAndExtractInstaller(ExecutableInstaller):
133
135
  class PermissionDownloadInstaller(DownloadInstaller, ABC):
134
136
  def _install(self, target: InstallTarget) -> None:
135
137
  super()._install(target)
136
- chmod_r(self.get_executable_path(), 0o777)
138
+ chmod_r(self.get_executable_path(), 0o777) # type: ignore[arg-type]
137
139
 
138
140
 
139
141
  class GitHubReleaseInstaller(PermissionDownloadInstaller):
@@ -249,11 +251,11 @@ class PythonPackageInstaller(PackageInstaller):
249
251
  normalized_name: str
250
252
  """Normalized package name according to PEP440."""
251
253
 
252
- def __init__(self, name: str, version: str, *args, **kwargs):
254
+ def __init__(self, name: str, version: str, *args: Any, **kwargs: Any):
253
255
  super().__init__(name, version, *args, **kwargs)
254
256
  self.normalized_name = self._normalize_package_name(name)
255
257
 
256
- def _normalize_package_name(self, name: str):
258
+ def _normalize_package_name(self, name: str) -> str:
257
259
  """
258
260
  Normalized the Python package name according to PEP440.
259
261
  https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization
@@ -4,14 +4,14 @@ from localstack.packages import InstallTarget, Package, PackageInstaller
4
4
  from localstack.utils.run import run
5
5
 
6
6
 
7
- class DebugPyPackage(Package):
8
- def __init__(self):
7
+ class DebugPyPackage(Package["DebugPyPackageInstaller"]):
8
+ def __init__(self) -> None:
9
9
  super().__init__("DebugPy", "latest")
10
10
 
11
11
  def get_versions(self) -> List[str]:
12
12
  return ["latest"]
13
13
 
14
- def _get_installer(self, version: str) -> PackageInstaller:
14
+ def _get_installer(self, version: str) -> "DebugPyPackageInstaller":
15
15
  return DebugPyPackageInstaller("debugpy", version)
16
16
 
17
17
 
@@ -20,7 +20,7 @@ class DebugPyPackageInstaller(PackageInstaller):
20
20
 
21
21
  def is_installed(self) -> bool:
22
22
  try:
23
- import debugpy # noqa: T100
23
+ import debugpy # type: ignore[import-not-found] # noqa: T100
24
24
 
25
25
  assert debugpy
26
26
  return True
@@ -1,7 +1,7 @@
1
1
  import os
2
2
  from typing import List
3
3
 
4
- from localstack.packages import Package, PackageInstaller
4
+ from localstack.packages import Package
5
5
  from localstack.packages.core import ArchiveDownloadAndExtractInstaller
6
6
  from localstack.utils.platform import get_arch
7
7
 
@@ -10,11 +10,11 @@ FFMPEG_STATIC_BIN_URL = (
10
10
  )
11
11
 
12
12
 
13
- class FfmpegPackage(Package):
14
- def __init__(self):
13
+ class FfmpegPackage(Package["FfmpegPackageInstaller"]):
14
+ def __init__(self) -> None:
15
15
  super().__init__(name="ffmpeg", default_version="7.0.1")
16
16
 
17
- def _get_installer(self, version: str) -> PackageInstaller:
17
+ def _get_installer(self, version: str) -> "FfmpegPackageInstaller":
18
18
  return FfmpegPackageInstaller(version)
19
19
 
20
20
  def get_versions(self) -> List[str]:
@@ -35,10 +35,10 @@ class FfmpegPackageInstaller(ArchiveDownloadAndExtractInstaller):
35
35
  return f"ffmpeg-{self.version}-{get_arch()}-static"
36
36
 
37
37
  def get_ffmpeg_path(self) -> str:
38
- return os.path.join(self.get_installed_dir(), "ffmpeg")
38
+ return os.path.join(self.get_installed_dir(), "ffmpeg") # type: ignore[arg-type]
39
39
 
40
40
  def get_ffprobe_path(self) -> str:
41
- return os.path.join(self.get_installed_dir(), "ffprobe")
41
+ return os.path.join(self.get_installed_dir(), "ffprobe") # type: ignore[arg-type]
42
42
 
43
43
 
44
44
  ffmpeg_package = FfmpegPackage()
@@ -47,8 +47,11 @@ class JavaInstallerMixin:
47
47
  if is_mac_os():
48
48
  return os.path.join(java_home, "lib", "jli", "libjli.dylib")
49
49
  return os.path.join(java_home, "lib", "server", "libjvm.so")
50
+ return None
50
51
 
51
- def get_java_env_vars(self, path: str = None, ld_library_path: str = None) -> dict[str, str]:
52
+ def get_java_env_vars(
53
+ self, path: str | None = None, ld_library_path: str | None = None
54
+ ) -> dict[str, str]:
52
55
  """
53
56
  Returns environment variables pointing to the Java installation. This is useful to build the environment where
54
57
  the application will run.
@@ -64,16 +67,16 @@ class JavaInstallerMixin:
64
67
 
65
68
  path = path or os.environ["PATH"]
66
69
 
67
- ld_library_path = ld_library_path or os.environ.get("LD_LIBRARY_PATH")
70
+ library_path = ld_library_path or os.environ.get("LD_LIBRARY_PATH")
68
71
  # null paths (e.g. `:/foo`) have a special meaning according to the manpages
69
- if ld_library_path is None:
70
- ld_library_path = f"{java_home}/lib:{java_home}/lib/server"
72
+ if library_path is None:
73
+ full_library_path = f"{java_home}/lib:{java_home}/lib/server"
71
74
  else:
72
- ld_library_path = f"{java_home}/lib:{java_home}/lib/server:{ld_library_path}"
75
+ full_library_path = f"{java_home}/lib:{java_home}/lib/server:{library_path}"
73
76
 
74
77
  return {
75
- "JAVA_HOME": java_home,
76
- "LD_LIBRARY_PATH": ld_library_path,
78
+ "JAVA_HOME": java_home, # type: ignore[dict-item]
79
+ "LD_LIBRARY_PATH": full_library_path,
77
80
  "PATH": f"{java_bin}:{path}",
78
81
  }
79
82
 
@@ -144,7 +147,7 @@ class JavaPackageInstaller(ArchiveDownloadAndExtractInstaller):
144
147
  """
145
148
  installed_dir = self.get_installed_dir()
146
149
  if is_mac_os():
147
- return os.path.join(installed_dir, "Contents", "Home")
150
+ return os.path.join(installed_dir, "Contents", "Home") # type: ignore[arg-type]
148
151
  return installed_dir
149
152
 
150
153
  @property
@@ -188,14 +191,14 @@ class JavaPackageInstaller(ArchiveDownloadAndExtractInstaller):
188
191
  )
189
192
 
190
193
 
191
- class JavaPackage(Package):
194
+ class JavaPackage(Package[JavaPackageInstaller]):
192
195
  def __init__(self, default_version: str = DEFAULT_JAVA_VERSION):
193
196
  super().__init__(name="Java", default_version=default_version)
194
197
 
195
198
  def get_versions(self) -> List[str]:
196
199
  return list(JAVA_VERSIONS.keys())
197
200
 
198
- def _get_installer(self, version):
201
+ def _get_installer(self, version: str) -> JavaPackageInstaller:
199
202
  return JavaPackageInstaller(version)
200
203
 
201
204
 
@@ -1,22 +1,29 @@
1
+ from typing import TYPE_CHECKING
2
+
1
3
  from localstack.packages.api import Package, package
2
4
 
5
+ if TYPE_CHECKING:
6
+ from localstack.packages.ffmpeg import FfmpegPackageInstaller
7
+ from localstack.packages.java import JavaPackageInstaller
8
+ from localstack.packages.terraform import TerraformPackageInstaller
9
+
3
10
 
4
11
  @package(name="terraform")
5
- def terraform_package() -> Package:
12
+ def terraform_package() -> Package["TerraformPackageInstaller"]:
6
13
  from .terraform import terraform_package
7
14
 
8
15
  return terraform_package
9
16
 
10
17
 
11
18
  @package(name="ffmpeg")
12
- def ffmpeg_package() -> Package:
19
+ def ffmpeg_package() -> Package["FfmpegPackageInstaller"]:
13
20
  from localstack.packages.ffmpeg import ffmpeg_package
14
21
 
15
22
  return ffmpeg_package
16
23
 
17
24
 
18
25
  @package(name="java")
19
- def java_package() -> Package:
26
+ def java_package() -> Package["JavaPackageInstaller"]:
20
27
  from localstack.packages.java import java_package
21
28
 
22
29
  return java_package
@@ -2,7 +2,7 @@ import os
2
2
  import platform
3
3
  from typing import List
4
4
 
5
- from localstack.packages import InstallTarget, Package, PackageInstaller
5
+ from localstack.packages import InstallTarget, Package
6
6
  from localstack.packages.core import ArchiveDownloadAndExtractInstaller
7
7
  from localstack.utils.files import chmod_r
8
8
  from localstack.utils.platform import get_arch
@@ -13,14 +13,14 @@ TERRAFORM_URL_TEMPLATE = (
13
13
  )
14
14
 
15
15
 
16
- class TerraformPackage(Package):
17
- def __init__(self):
16
+ class TerraformPackage(Package["TerraformPackageInstaller"]):
17
+ def __init__(self) -> None:
18
18
  super().__init__("Terraform", TERRAFORM_VERSION)
19
19
 
20
20
  def get_versions(self) -> List[str]:
21
21
  return [TERRAFORM_VERSION]
22
22
 
23
- def _get_installer(self, version: str) -> PackageInstaller:
23
+ def _get_installer(self, version: str) -> "TerraformPackageInstaller":
24
24
  return TerraformPackageInstaller("terraform", version)
25
25
 
26
26
 
@@ -35,7 +35,7 @@ class TerraformPackageInstaller(ArchiveDownloadAndExtractInstaller):
35
35
 
36
36
  def _install(self, target: InstallTarget) -> None:
37
37
  super()._install(target)
38
- chmod_r(self.get_executable_path(), 0o777)
38
+ chmod_r(self.get_executable_path(), 0o777) # type: ignore[arg-type]
39
39
 
40
40
 
41
41
  terraform_package = TerraformPackage()
@@ -2,18 +2,18 @@ import os
2
2
  from functools import lru_cache
3
3
  from typing import List
4
4
 
5
- from localstack.packages import Package, PackageInstaller
5
+ from localstack.packages import Package
6
6
  from localstack.packages.core import NodePackageInstaller
7
7
 
8
8
  _KINESIS_MOCK_VERSION = os.environ.get("KINESIS_MOCK_VERSION") or "0.4.9"
9
9
 
10
10
 
11
- class KinesisMockPackage(Package):
11
+ class KinesisMockPackage(Package[NodePackageInstaller]):
12
12
  def __init__(self, default_version: str = _KINESIS_MOCK_VERSION):
13
13
  super().__init__(name="Kinesis Mock", default_version=default_version)
14
14
 
15
15
  @lru_cache
16
- def _get_installer(self, version: str) -> PackageInstaller:
16
+ def _get_installer(self, version: str) -> NodePackageInstaller:
17
17
  return KinesisMockPackageInstaller(version)
18
18
 
19
19
  def get_versions(self) -> List[str]:
@@ -1,21 +1,14 @@
1
- import io
2
- import tarfile
3
- import zipfile
4
- from subprocess import Popen
5
- from typing import IO, Optional
6
-
7
- try:
8
- from typing import Literal
9
- except ImportError:
10
- from typing_extensions import Literal
11
-
12
1
  import glob
2
+ import io
13
3
  import logging
14
4
  import os
15
5
  import re
6
+ import tarfile
16
7
  import tempfile
17
8
  import time
18
- from typing import Union
9
+ import zipfile
10
+ from subprocess import Popen
11
+ from typing import IO, Literal, Optional, Union
19
12
 
20
13
  from localstack.constants import MAVEN_REPO_URL
21
14
  from localstack.utils.files import load_file, mkdir, new_tmp_file, rm_rf, save_file
@@ -177,7 +170,13 @@ def upgrade_jar_file(base_dir: str, file_glob: str, maven_asset: str):
177
170
  download(maven_asset_url, target_file)
178
171
 
179
172
 
180
- def download_and_extract(archive_url, target_dir, retries=0, sleep=3, tmp_archive=None):
173
+ def download_and_extract(
174
+ archive_url: str,
175
+ target_dir: str,
176
+ retries: Optional[int] = 0,
177
+ sleep: Optional[int] = 3,
178
+ tmp_archive: Optional[str] = None,
179
+ ) -> None:
181
180
  mkdir(target_dir)
182
181
 
183
182
  _, ext = os.path.splitext(tmp_archive or archive_url)
localstack/utils/venv.py CHANGED
@@ -14,7 +14,7 @@ class VirtualEnvironment:
14
14
  def __init__(self, venv_dir: Union[str, os.PathLike]):
15
15
  self._venv_dir = venv_dir
16
16
 
17
- def create(self):
17
+ def create(self) -> None:
18
18
  """
19
19
  Uses the virtualenv cli to create the virtual environment.
20
20
  :return:
@@ -73,7 +73,7 @@ class VirtualEnvironment:
73
73
 
74
74
  return matches[0]
75
75
 
76
- def inject_to_sys_path(self):
76
+ def inject_to_sys_path(self) -> None:
77
77
  path = str(self.site_dir)
78
78
  if path and path not in sys.path:
79
79
  sys.path.append(path)
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.dev66'
21
- __version_tuple__ = version_tuple = (4, 3, 1, 'dev66')
20
+ __version__ = version = '4.3.1.dev68'
21
+ __version_tuple__ = version_tuple = (4, 3, 1, 'dev68')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.3.1.dev66
3
+ Version: 4.3.1.dev68
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
@@ -91,6 +91,7 @@ Requires-Dist: pre-commit>=3.5.0; extra == "dev"
91
91
  Requires-Dist: pypandoc; extra == "dev"
92
92
  Requires-Dist: ruff>=0.3.3; extra == "dev"
93
93
  Requires-Dist: rstr>=3.2.0; extra == "dev"
94
+ Requires-Dist: mypy; extra == "dev"
94
95
  Provides-Extra: typehint
95
96
  Requires-Dist: localstack-core[dev]; extra == "typehint"
96
97
  Requires-Dist: boto3-stubs[acm,acm-pca,amplify,apigateway,apigatewayv2,appconfig,appconfigdata,application-autoscaling,appsync,athena,autoscaling,backup,batch,ce,cloudcontrol,cloudformation,cloudfront,cloudtrail,cloudwatch,codebuild,codecommit,codeconnections,codedeploy,codepipeline,codestar-connections,cognito-identity,cognito-idp,dms,docdb,dynamodb,dynamodbstreams,ec2,ecr,ecs,efs,eks,elasticache,elasticbeanstalk,elbv2,emr,emr-serverless,es,events,firehose,fis,glacier,glue,iam,identitystore,iot,iot-data,iotanalytics,iotwireless,kafka,kinesis,kinesisanalytics,kinesisanalyticsv2,kms,lakeformation,lambda,logs,managedblockchain,mediaconvert,mediastore,mq,mwaa,neptune,opensearch,organizations,pi,pinpoint,pipes,qldb,qldb-session,rds,rds-data,redshift,redshift-data,resource-groups,resourcegroupstaggingapi,route53,route53resolver,s3,s3control,sagemaker,sagemaker-runtime,secretsmanager,serverlessrepo,servicediscovery,ses,sesv2,sns,sqs,ssm,sso-admin,stepfunctions,sts,timestream-query,timestream-write,transcribe,verifiedpermissions,wafv2,xray]; extra == "typehint"
@@ -1,10 +1,10 @@
1
- localstack/config.py,sha256=gE06cIItR0cSIvKGqiF0v5bkxLAdY6nJ4QWQAdPA_xA,64420
2
- localstack/constants.py,sha256=bBh6djh4x37MrS8az8LizX_APMZ56XdtJHCnZdOnmeg,6867
1
+ localstack/config.py,sha256=pXgl7lwhBr3vepDgGSpeEOiifAt5MBwuSs5YqHxbeXs,64427
2
+ localstack/constants.py,sha256=riikzAY9WFOnAHJqA9OEG1einNykFyGNVrvr2L4cnQc,6872
3
3
  localstack/deprecations.py,sha256=mNXTebZ8kSbQjFKz0LbT-g1Kdr0CE8bhEgZfHV3IX0s,15912
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=YpR5BMZjL9nactirPkWLWZ0dStEcNmq5Q576Dz8FHBk,526
7
+ localstack/version.py,sha256=rUnhgYXhWfCHm5w6HzHBtGzVcGJghJvywdT-rSJ8hbg,526
8
8
  localstack/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  localstack/aws/accounts.py,sha256=102zpGowOxo0S6UGMpfjw14QW7WCLVAGsnFK5xFMLoo,3043
10
10
  localstack/aws/app.py,sha256=n9bJCfJRuMz_gLGAH430c3bIQXgUXeWO5NPfcdL2MV8,5145
@@ -147,13 +147,13 @@ localstack/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
147
147
  localstack/logging/format.py,sha256=AkTRZcLapZFKx7e6SjOAQ5Hxim19HhbL2sz-Z9WyRpk,7086
148
148
  localstack/logging/setup.py,sha256=RewDJux2h706V3EFA0Oz1Ld2ByQ3vDhRTkDCId_c_v8,4316
149
149
  localstack/packages/__init__.py,sha256=o22iDQIrfvTS3Qj2CSHQ7ouKpYhtcIa5DPPM73xe8kI,533
150
- localstack/packages/api.py,sha256=9b_BRWxZqx-pYLRH_-5d4fnukj9HZBeatVsnhQbUfk4,16463
151
- localstack/packages/core.py,sha256=PxggkycyHEtsElcl9rWYqfLZo5q0cZgZAB24abL1ypk,14709
152
- localstack/packages/debugpy.py,sha256=R1k78bb_AWtuvMg5OKu_VPvDQNe_i-2R9ubAbKcbwrg,1310
153
- localstack/packages/ffmpeg.py,sha256=8Al32ec8bYL2U3xLDrsfa98L7yZv1Wp-H5pAobz5StE,1386
154
- localstack/packages/java.py,sha256=5SKdbfkXlvAcPyfEF5VDmDZT9RzK8yNtTkNO0ZeoiVg,7615
155
- localstack/packages/plugins.py,sha256=NvcYj-TD-8Oxq5mK9JPZbp0_POxDi35rlh1FhxgTNEk,471
156
- localstack/packages/terraform.py,sha256=gMbCHjSaNnMzpvP7qoIDHmGMTs9tCT9pSed55DCzLHE,1365
150
+ localstack/packages/api.py,sha256=Hyr8IzM_D_EY-mCaYNPWyE65lkEogEoIfm6ZeIu26ww,17164
151
+ localstack/packages/core.py,sha256=Y8PnGQN_A27uPjVZCfpD8sJ3V1O8KT5ddG5y6jnd9Mo,14797
152
+ localstack/packages/debugpy.py,sha256=L3VPJ6_iK7kzp1Yn6wqSKKsxtEyTmS_Y41qefhvBrdk,1388
153
+ localstack/packages/ffmpeg.py,sha256=cSwqcZAliA0dC_tC6xmJQZi31D0LxLED2Kq5pCus9uM,1462
154
+ localstack/packages/java.py,sha256=3Rmzo6g5RweLoa2pxJ8ETeT-JL48fo8xRcR2YPUMwzk,7764
155
+ localstack/packages/plugins.py,sha256=Ban7a_1tSzu0j5hD2nPN67K_8MQH7e4NrNUkpk9omM0,803
156
+ localstack/packages/terraform.py,sha256=ygQPRMkEaefw-MBWUJVVdKfy4C80ukmjG_sBiq0Gl8Q,1421
157
157
  localstack/runtime/__init__.py,sha256=th-8bfJFd011WcYnrlmpe0-79UWJ2LOqEZWLpVQno5Y,83
158
158
  localstack/runtime/analytics.py,sha256=ZXiDOUI8YujxUuojA4fasBHkGXjOo6NHU_UkD1oM6d8,4790
159
159
  localstack/runtime/components.py,sha256=Mkbukxm1TM2uKFKHXf5HoPsQ5jEywZ2hADxbPBteLOY,1641
@@ -508,7 +508,7 @@ localstack/services/iam/resources/service_linked_roles.py,sha256=4LWz9vTSTOQTxT4
508
508
  localstack/services/kinesis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
509
509
  localstack/services/kinesis/kinesis_mock_server.py,sha256=fT6fa8EtmmGkp-7SdcJJ-p0AI7kJ6RY79B0Y1stUIYo,6580
510
510
  localstack/services/kinesis/models.py,sha256=Ttmo8o_f9QpIlGX9zKxkLM-ITJSkahCOo6vXs-pT4rc,641
511
- localstack/services/kinesis/packages.py,sha256=dYr02ipX0GL78BblNjvlKt6SsFWzcGHN1I546sQiK4k,871
511
+ localstack/services/kinesis/packages.py,sha256=aClv2S7ZLcsmant46mHEJuLz31MDniXPYN-7Ln6LhN8,879
512
512
  localstack/services/kinesis/plugins.py,sha256=oqhoCRdfAKxrn1OSeDfnbNExYOol7oidY3M8mqVomVU,224
513
513
  localstack/services/kinesis/provider.py,sha256=SM8yyrGTL6dq5k1PXRkJPkJZgdWODpE6u20zK954E5g,7630
514
514
  localstack/services/kinesis/resource_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1196,7 +1196,7 @@ localstack/testing/testselection/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
1196
1196
  localstack/testing/testselection/scripts/filter_by_test_selection.py,sha256=NXMEJtAEbS1wEMWBA2TkpbYJvpcvqZF2DsHN-6SRHUc,1043
1197
1197
  localstack/testing/testselection/scripts/generate_test_selection.py,sha256=CGTgsSian0_F0BSyyspW3dLoIrzz1LDpkP3_tF3DK3M,4410
1198
1198
  localstack/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1199
- localstack/utils/archives.py,sha256=qKNn62Ds3pOE6fS6dsZj8elz6D0pz3Dudl7hohCcMzk,8479
1199
+ localstack/utils/archives.py,sha256=b1JtruBs7exm9MK5bC64a0jyhK7k_6cOGmadanjIBcM,8462
1200
1200
  localstack/utils/async_utils.py,sha256=diN_tDL6hIs1n7k1kWN5gOl141lFToLt6Tjf0dGNyBQ,282
1201
1201
  localstack/utils/asyncio.py,sha256=hBn7XH7Txk0WA_kwRvVjHudWJuDZxOkiNd9pQJl4_Lk,5210
1202
1202
  localstack/utils/auth.py,sha256=uZNbD3hoQE29BykHANiy0uh-yLcvR05zjyYGN7gDmXQ,2415
@@ -1237,7 +1237,7 @@ localstack/utils/testutil.py,sha256=Yh1mk2kadsV1wR9AfmejJLvwFFrhcDTFIf_kB2FKh40,
1237
1237
  localstack/utils/threads.py,sha256=U6-sHX_cc1z-ItGQg0dbCmVWizV_jP3gCOnlZxIDASg,5056
1238
1238
  localstack/utils/time.py,sha256=ACxjUPpYPJxUW67NmRO5pC81vWeZk_qjpw8X50ikvTc,2017
1239
1239
  localstack/utils/urls.py,sha256=s66FfBL_KJcCKOvMn-vi1PksrWFud602Os0Vzg01_XA,717
1240
- localstack/utils/venv.py,sha256=YAB_izPGmzSiKPcbPtfcXVtenzhQeRM5fHwq4d3U_nE,3194
1240
+ localstack/utils/venv.py,sha256=ORSmZn6fWhN9jml_lsv_WE8PvOn9cIGgEMbeY6paAQo,3210
1241
1241
  localstack/utils/xml.py,sha256=b2jsqUxjXj6oSwalUftISvJ8JhIKKO2BqWv6qvFywew,1465
1242
1242
  localstack/utils/analytics/__init__.py,sha256=cW6bUXqGUPXNjJIfG0FOb72RPy7ciya4r3u0jKyQUHQ,290
1243
1243
  localstack/utils/analytics/cli.py,sha256=OEDUkaLgmGA5GEBm5bjlpPWIGE6fzO75z-KbypS0e9I,2410
@@ -1279,13 +1279,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1279
1279
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1280
1280
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1281
1281
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1282
- localstack_core-4.3.1.dev66.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
- localstack_core-4.3.1.dev66.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
- localstack_core-4.3.1.dev66.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
- localstack_core-4.3.1.dev66.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
- localstack_core-4.3.1.dev66.dist-info/METADATA,sha256=45pqrOVms22g30GqWfxsbQFWHuFE1JUidtPdDKCsdu8,5499
1287
- localstack_core-4.3.1.dev66.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
1288
- localstack_core-4.3.1.dev66.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1289
- localstack_core-4.3.1.dev66.dist-info/plux.json,sha256=FEe9Q4N4GWfibgflS_EqdIRCz8guI85DmWjYh9OW2Ps,20786
1290
- localstack_core-4.3.1.dev66.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
- localstack_core-4.3.1.dev66.dist-info/RECORD,,
1282
+ localstack_core-4.3.1.dev68.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1283
+ localstack_core-4.3.1.dev68.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1284
+ localstack_core-4.3.1.dev68.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1285
+ localstack_core-4.3.1.dev68.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1286
+ localstack_core-4.3.1.dev68.dist-info/METADATA,sha256=MyV4Lh3RRWH2s_E3KOsJnn7R0B0VOh6c_BCRaeF21XA,5535
1287
+ localstack_core-4.3.1.dev68.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
1288
+ localstack_core-4.3.1.dev68.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1289
+ localstack_core-4.3.1.dev68.dist-info/plux.json,sha256=g2i9V_Sa1X_w6cW1MUTJOJ5EvxsCrQNGBOG37GfotiI,20786
1290
+ localstack_core-4.3.1.dev68.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1291
+ localstack_core-4.3.1.dev68.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "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::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "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::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin"], "localstack.hooks.on_infra_start": ["setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "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", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_runtime_patches=localstack.runtime.patches:apply_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_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics"], "localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "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.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "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.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.cloudformation.resource_providers": ["AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::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::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "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::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "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::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "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::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "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::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "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::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "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::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "localstack.hooks.on_infra_start": ["delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "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", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "_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", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints"], "localstack.packages": ["jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package"], "localstack.hooks.on_infra_shutdown": ["run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "publish_metrics=localstack.utils.analytics.metrics:publish_metrics", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "stop_server=localstack.dns.plugins:stop_server"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.hooks.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.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"]}