localstack-core 4.3.1.dev46__py3-none-any.whl → 4.3.1.dev48__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.
@@ -3,7 +3,6 @@ import copy
3
3
  import hashlib
4
4
  import json
5
5
  import logging
6
- from datetime import datetime
7
6
  from typing import List, Optional, TypedDict, Union
8
7
  from urllib import parse as urlparse
9
8
 
@@ -61,7 +60,6 @@ INVOKE_TEST_LOG_TEMPLATE = """Execution log for request {request_id}
61
60
  {formatted_date} : Method completed with status: {status_code}
62
61
  """
63
62
 
64
-
65
63
  EMPTY_MODEL = "Empty"
66
64
  ERROR_MODEL = "Error"
67
65
 
@@ -984,35 +982,6 @@ def is_variable_path(path_part: str) -> bool:
984
982
  return path_part.startswith("{") and path_part.endswith("}")
985
983
 
986
984
 
987
- def log_template(
988
- request_id: str,
989
- date: datetime,
990
- http_method: str,
991
- resource_path: str,
992
- request_path: str,
993
- query_string: str,
994
- request_headers: str,
995
- request_body: str,
996
- response_body: str,
997
- response_headers: str,
998
- status_code: str,
999
- ):
1000
- formatted_date = date.strftime("%a %b %d %H:%M:%S %Z %Y")
1001
- return INVOKE_TEST_LOG_TEMPLATE.format(
1002
- request_id=request_id,
1003
- formatted_date=formatted_date,
1004
- http_method=http_method,
1005
- resource_path=resource_path,
1006
- request_path=request_path,
1007
- query_string=query_string,
1008
- request_headers=request_headers,
1009
- request_body=request_body,
1010
- response_body=response_body,
1011
- response_headers=response_headers,
1012
- status_code=status_code,
1013
- )
1014
-
1015
-
1016
985
  def get_domain_name_hash(domain_name: str) -> str:
1017
986
  """
1018
987
  Return a hash of the given domain name, which help construct regional domain names for APIs.
@@ -98,6 +98,7 @@ from localstack.services.apigateway.exporter import OpenApiExporter
98
98
  from localstack.services.apigateway.helpers import (
99
99
  EMPTY_MODEL,
100
100
  ERROR_MODEL,
101
+ INVOKE_TEST_LOG_TEMPLATE,
101
102
  OpenAPIExt,
102
103
  apply_json_patch_safe,
103
104
  get_apigateway_store,
@@ -108,7 +109,6 @@ from localstack.services.apigateway.helpers import (
108
109
  import_api_from_openapi_spec,
109
110
  is_greedy_path,
110
111
  is_variable_path,
111
- log_template,
112
112
  resolve_references,
113
113
  )
114
114
  from localstack.services.apigateway.legacy.helpers import multi_value_dict_for_list
@@ -217,9 +217,10 @@ class ApigatewayProvider(ApigatewayApi, ServiceLifecycleHook):
217
217
 
218
218
  # TODO: add the missing fields to the log. Next iteration will add helpers to extract the missing fields
219
219
  # from the apicontext
220
- log = log_template(
220
+ formatted_date = req_start_time.strftime("%a %b %d %H:%M:%S %Z %Y")
221
+ log = INVOKE_TEST_LOG_TEMPLATE.format(
221
222
  request_id=invocation_context.context["requestId"],
222
- date=req_start_time,
223
+ formatted_date=formatted_date,
223
224
  http_method=invocation_context.method,
224
225
  resource_path=invocation_context.invocation_path,
225
226
  request_path="",
@@ -230,6 +231,7 @@ class ApigatewayProvider(ApigatewayApi, ServiceLifecycleHook):
230
231
  response_headers=result.headers,
231
232
  status_code=result.status_code,
232
233
  )
234
+
233
235
  return TestInvokeMethodResponse(
234
236
  status=result.status_code,
235
237
  headers=dict(result.headers),
@@ -0,0 +1,206 @@
1
+ import datetime
2
+ from urllib.parse import parse_qs
3
+
4
+ from rolo import Request
5
+ from rolo.gateway.chain import HandlerChain
6
+ from werkzeug.datastructures import Headers
7
+
8
+ from localstack.aws.api.apigateway import TestInvokeMethodRequest, TestInvokeMethodResponse
9
+ from localstack.constants import APPLICATION_JSON
10
+ from localstack.http import Response
11
+ from localstack.utils.strings import to_bytes, to_str
12
+
13
+ from ...models import RestApiDeployment
14
+ from . import handlers
15
+ from .context import InvocationRequest, RestApiInvocationContext
16
+ from .handlers.resource_router import RestAPIResourceRouter
17
+ from .header_utils import build_multi_value_headers
18
+ from .template_mapping import dict_to_string
19
+
20
+ # TODO: we probably need to write and populate those logs as part of the handler chain itself
21
+ # and store it in the InvocationContext. That way, we could also retrieve in when calling TestInvoke
22
+
23
+ TEST_INVOKE_TEMPLATE = """Execution log for request {request_id}
24
+ {formatted_date} : Starting execution for request: {request_id}
25
+ {formatted_date} : HTTP Method: {request_method}, Resource Path: {resource_path}
26
+ {formatted_date} : Method request path: {method_request_path_parameters}
27
+ {formatted_date} : Method request query string: {method_request_query_string}
28
+ {formatted_date} : Method request headers: {method_request_headers}
29
+ {formatted_date} : Method request body before transformations: {method_request_body}
30
+ {formatted_date} : Endpoint request URI: {endpoint_uri}
31
+ {formatted_date} : Endpoint request headers: {endpoint_request_headers}
32
+ {formatted_date} : Endpoint request body after transformations: {endpoint_request_body}
33
+ {formatted_date} : Sending request to {endpoint_uri}
34
+ {formatted_date} : Received response. Status: {endpoint_response_status_code}, Integration latency: {endpoint_response_latency} ms
35
+ {formatted_date} : Endpoint response headers: {endpoint_response_headers}
36
+ {formatted_date} : Endpoint response body before transformations: {endpoint_response_body}
37
+ {formatted_date} : Method response body after transformations: {method_response_body}
38
+ {formatted_date} : Method response headers: {method_response_headers}
39
+ {formatted_date} : Successfully completed execution
40
+ {formatted_date} : Method completed with status: {method_response_status}
41
+ """
42
+
43
+
44
+ def _dump_headers(headers: Headers) -> str:
45
+ if not headers:
46
+ return "{}"
47
+ multi_headers = {key: ",".join(headers.getlist(key)) for key in headers.keys()}
48
+ string_headers = dict_to_string(multi_headers)
49
+ if len(string_headers) > 998:
50
+ return f"{string_headers[:998]} [TRUNCATED]"
51
+
52
+ return string_headers
53
+
54
+
55
+ def log_template(invocation_context: RestApiInvocationContext, response_headers: Headers) -> str:
56
+ # TODO: funny enough, in AWS for the `endpoint_response_headers` in AWS_PROXY, they log the response headers from
57
+ # lambda HTTP Invoke call even though we use the headers from the lambda response itself
58
+ formatted_date = datetime.datetime.now(tz=datetime.UTC).strftime("%a %b %d %H:%M:%S %Z %Y")
59
+ request = invocation_context.invocation_request
60
+ context_var = invocation_context.context_variables
61
+ integration_req = invocation_context.integration_request
62
+ endpoint_resp = invocation_context.endpoint_response
63
+ method_resp = invocation_context.invocation_response
64
+ # TODO: if endpoint_uri is an ARN, it means it's an AWS_PROXY integration
65
+ # this should be transformed to the true URL of a lambda invoke call
66
+ endpoint_uri = integration_req.get("uri", "")
67
+
68
+ return TEST_INVOKE_TEMPLATE.format(
69
+ formatted_date=formatted_date,
70
+ request_id=context_var["requestId"],
71
+ resource_path=request["path"],
72
+ request_method=request["http_method"],
73
+ method_request_path_parameters=dict_to_string(request["path_parameters"]),
74
+ method_request_query_string=dict_to_string(request["query_string_parameters"]),
75
+ method_request_headers=_dump_headers(request.get("headers")),
76
+ method_request_body=to_str(request.get("body", "")),
77
+ endpoint_uri=endpoint_uri,
78
+ endpoint_request_headers=_dump_headers(integration_req.get("headers")),
79
+ endpoint_request_body=to_str(integration_req.get("body", "")),
80
+ # TODO: measure integration latency
81
+ endpoint_response_latency=150,
82
+ endpoint_response_status_code=endpoint_resp.get("status_code"),
83
+ endpoint_response_body=to_str(endpoint_resp.get("body", "")),
84
+ endpoint_response_headers=_dump_headers(endpoint_resp.get("headers")),
85
+ method_response_status=method_resp.get("status_code"),
86
+ method_response_body=to_str(method_resp.get("body", "")),
87
+ method_response_headers=_dump_headers(response_headers),
88
+ )
89
+
90
+
91
+ def create_test_chain() -> HandlerChain[RestApiInvocationContext]:
92
+ return HandlerChain(
93
+ request_handlers=[
94
+ handlers.method_request_handler,
95
+ handlers.integration_request_handler,
96
+ handlers.integration_handler,
97
+ handlers.integration_response_handler,
98
+ handlers.method_response_handler,
99
+ ],
100
+ exception_handlers=[
101
+ handlers.gateway_exception_handler,
102
+ ],
103
+ )
104
+
105
+
106
+ def create_test_invocation_context(
107
+ test_request: TestInvokeMethodRequest,
108
+ deployment: RestApiDeployment,
109
+ ) -> RestApiInvocationContext:
110
+ parse_handler = handlers.parse_request
111
+ http_method = test_request["httpMethod"]
112
+
113
+ # we do not need a true HTTP request for the context, as we are skipping all the parsing steps and using the
114
+ # provider data
115
+ invocation_context = RestApiInvocationContext(
116
+ request=Request(method=http_method),
117
+ )
118
+ path_query = test_request.get("pathWithQueryString", "/").split("?")
119
+ path = path_query[0]
120
+ multi_query_args: dict[str, list[str]] = {}
121
+
122
+ if len(path_query) > 1:
123
+ multi_query_args = parse_qs(path_query[1])
124
+
125
+ # for the single value parameters, AWS only keeps the last value of the list
126
+ single_query_args = {k: v[-1] for k, v in multi_query_args.items()}
127
+
128
+ invocation_request = InvocationRequest(
129
+ http_method=http_method,
130
+ path=path,
131
+ raw_path=path,
132
+ query_string_parameters=single_query_args,
133
+ multi_value_query_string_parameters=multi_query_args,
134
+ headers=Headers(test_request.get("headers")),
135
+ # TODO: handle multiValueHeaders
136
+ body=to_bytes(test_request.get("body") or ""),
137
+ )
138
+ invocation_context.invocation_request = invocation_request
139
+
140
+ _, path_parameters = RestAPIResourceRouter(deployment).match(invocation_context)
141
+ invocation_request["path_parameters"] = path_parameters
142
+
143
+ invocation_context.deployment = deployment
144
+ invocation_context.api_id = test_request["restApiId"]
145
+ invocation_context.stage = None
146
+ invocation_context.deployment_id = ""
147
+ invocation_context.account_id = deployment.account_id
148
+ invocation_context.region = deployment.region
149
+ invocation_context.stage_variables = test_request.get("stageVariables", {})
150
+ invocation_context.context_variables = parse_handler.create_context_variables(
151
+ invocation_context
152
+ )
153
+ invocation_context.trace_id = parse_handler.populate_trace_id({})
154
+
155
+ resource = deployment.rest_api.resources[test_request["resourceId"]]
156
+ resource_method = resource["resourceMethods"][http_method]
157
+ invocation_context.resource = resource
158
+ invocation_context.resource_method = resource_method
159
+ invocation_context.integration = resource_method["methodIntegration"]
160
+ handlers.route_request.update_context_variables_with_resource(
161
+ invocation_context.context_variables, resource
162
+ )
163
+
164
+ return invocation_context
165
+
166
+
167
+ def run_test_invocation(
168
+ test_request: TestInvokeMethodRequest, deployment: RestApiDeployment
169
+ ) -> TestInvokeMethodResponse:
170
+ # validate resource exists in deployment
171
+ invocation_context = create_test_invocation_context(test_request, deployment)
172
+
173
+ test_chain = create_test_chain()
174
+ # header order is important
175
+ if invocation_context.integration["type"] == "MOCK":
176
+ base_headers = {"Content-Type": APPLICATION_JSON}
177
+ else:
178
+ # we manually add the trace-id, as it is normally added by handlers.response_enricher which adds to much data
179
+ # for the TestInvoke. It needs to be first
180
+ base_headers = {
181
+ "X-Amzn-Trace-Id": invocation_context.trace_id,
182
+ "Content-Type": APPLICATION_JSON,
183
+ }
184
+
185
+ test_response = Response(headers=base_headers)
186
+ start_time = datetime.datetime.now()
187
+ test_chain.handle(context=invocation_context, response=test_response)
188
+ end_time = datetime.datetime.now()
189
+
190
+ response_headers = test_response.headers.copy()
191
+ # AWS does not return the Content-Length for TestInvokeMethod
192
+ response_headers.remove("Content-Length")
193
+
194
+ log = log_template(invocation_context, response_headers)
195
+
196
+ headers = dict(response_headers)
197
+ multi_value_headers = build_multi_value_headers(response_headers)
198
+
199
+ return TestInvokeMethodResponse(
200
+ log=log,
201
+ status=test_response.status_code,
202
+ body=test_response.get_data(as_text=True),
203
+ headers=headers,
204
+ multiValueHeaders=multi_value_headers,
205
+ latency=int((end_time - start_time).total_seconds()),
206
+ )
@@ -37,6 +37,7 @@ from .execute_api.gateway_response import (
37
37
  )
38
38
  from .execute_api.helpers import freeze_rest_api
39
39
  from .execute_api.router import ApiGatewayEndpoint, ApiGatewayRouter
40
+ from .execute_api.test_invoke import run_test_invocation
40
41
 
41
42
 
42
43
  class ApigatewayNextGenProvider(ApigatewayProvider):
@@ -242,8 +243,28 @@ class ApigatewayNextGenProvider(ApigatewayProvider):
242
243
  def test_invoke_method(
243
244
  self, context: RequestContext, request: TestInvokeMethodRequest
244
245
  ) -> TestInvokeMethodResponse:
245
- # TODO: rewrite and migrate to NextGen
246
- return super().test_invoke_method(context, request)
246
+ rest_api_id = request["restApiId"]
247
+ moto_rest_api = get_moto_rest_api(context=context, rest_api_id=rest_api_id)
248
+ resource = moto_rest_api.resources.get(request["resourceId"])
249
+ if not resource:
250
+ raise NotFoundException("Invalid Resource identifier specified")
251
+
252
+ # test httpMethod
253
+
254
+ rest_api_container = get_rest_api_container(context, rest_api_id=rest_api_id)
255
+ frozen_deployment = freeze_rest_api(
256
+ account_id=context.account_id,
257
+ region=context.region,
258
+ moto_rest_api=moto_rest_api,
259
+ localstack_rest_api=rest_api_container,
260
+ )
261
+
262
+ response = run_test_invocation(
263
+ test_request=request,
264
+ deployment=frozen_deployment,
265
+ )
266
+
267
+ return response
247
268
 
248
269
 
249
270
  def _get_gateway_response_or_default(
@@ -1973,6 +1973,30 @@ def ses_verify_identity(aws_client):
1973
1973
  aws_client.ses.delete_identity(Identity=identity)
1974
1974
 
1975
1975
 
1976
+ @pytest.fixture
1977
+ def setup_sender_email_address(ses_verify_identity):
1978
+ """
1979
+ If the test is running against AWS then assume the email address passed is already
1980
+ verified, and passes the given email address through. Otherwise, it generates one random
1981
+ email address and verify them.
1982
+ """
1983
+
1984
+ def inner(sender_email_address: Optional[str] = None) -> str:
1985
+ if is_aws_cloud():
1986
+ if sender_email_address is None:
1987
+ raise ValueError(
1988
+ "sender_email_address must be specified to run this test against AWS"
1989
+ )
1990
+ else:
1991
+ # overwrite the given parameters with localstack specific ones
1992
+ sender_email_address = f"sender-{short_uid()}@example.com"
1993
+ ses_verify_identity(sender_email_address)
1994
+
1995
+ return sender_email_address
1996
+
1997
+ return inner
1998
+
1999
+
1976
2000
  @pytest.fixture
1977
2001
  def ec2_create_security_group(aws_client):
1978
2002
  ec2_sgs = []
@@ -524,6 +524,16 @@ def route53_resolver_query_log_config_arn(id: str, account_id: str, region_name:
524
524
  return _resource_arn(id, pattern, account_id=account_id, region_name=region_name)
525
525
 
526
526
 
527
+ #
528
+ # SES
529
+ #
530
+
531
+
532
+ def ses_identity_arn(email: str, account_id: str, region_name: str) -> str:
533
+ pattern = "arn:%s:ses:%s:%s:identity/%s"
534
+ return _resource_arn(email, pattern, account_id=account_id, region_name=region_name)
535
+
536
+
527
537
  #
528
538
  # Other ARN related helpers
529
539
  #
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.dev46'
21
- __version_tuple__ = version_tuple = (4, 3, 1, 'dev46')
20
+ __version__ = version = '4.3.1.dev48'
21
+ __version_tuple__ = version_tuple = (4, 3, 1, 'dev48')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.3.1.dev46
3
+ Version: 4.3.1.dev48
4
4
  Summary: The core library and runtime of LocalStack
5
5
  Author-email: LocalStack Contributors <info@localstack.cloud>
6
6
  License-Expression: Apache-2.0
@@ -4,7 +4,7 @@ localstack/deprecations.py,sha256=mNXTebZ8kSbQjFKz0LbT-g1Kdr0CE8bhEgZfHV3IX0s,15
4
4
  localstack/openapi.yaml,sha256=B803NmpwsxG8PHpHrdZYBrUYjnrRh7B_JX0XuNynuFs,30237
5
5
  localstack/plugins.py,sha256=BIJC9dlo0WbP7lLKkCiGtd_2q5oeqiHZohvoRTcejXM,2457
6
6
  localstack/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- localstack/version.py,sha256=VQ967TwbD4lprQX7hNlR-PExHE_aCzddL9NCBLCP7Cg,526
7
+ localstack/version.py,sha256=e5vUCrGmaaejc4m8HApQ1QsPf5sxVKNw0-crIxi5vbE,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
@@ -183,7 +183,7 @@ localstack/services/acm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
183
183
  localstack/services/acm/provider.py,sha256=Wflar6XwvglR3rsYQs2rk0F5yZNktCbxfRN_wYHVSBA,5317
184
184
  localstack/services/apigateway/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
185
  localstack/services/apigateway/exporter.py,sha256=GlgBi1Hh_iSYsYiFkvWdjTT3UkwWw90boaEWXHNrDw4,13445
186
- localstack/services/apigateway/helpers.py,sha256=AT0ksUQbuXyTQQac-W21q2H7ytx9FnA1wElrHp7i9cs,45816
186
+ localstack/services/apigateway/helpers.py,sha256=fgg1NIMHHWUbrVMev_LChcA3gBoiarg9lN6aYcxsLCw,44996
187
187
  localstack/services/apigateway/models.py,sha256=RHyjlVwRQHPI02J3XBD3cWCcYvt_jZewKX0zE6W-O88,5479
188
188
  localstack/services/apigateway/patches.py,sha256=VjJFOiKWAWp9bOWuFt0LFECqvWghGX7VrK3swJ4Xm9U,7748
189
189
  localstack/services/apigateway/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -191,11 +191,11 @@ localstack/services/apigateway/legacy/context.py,sha256=rAxA3Hsse8uDpDWsbJPvQUyD
191
191
  localstack/services/apigateway/legacy/helpers.py,sha256=NXqO51XF84JNhfiACs2GS7IkZrVDD9THmq-j5oNkn-I,27714
192
192
  localstack/services/apigateway/legacy/integration.py,sha256=huAXczErE_txGt29zLLm6Sl8GDemLTdI9Ku94uAZ0Y4,48669
193
193
  localstack/services/apigateway/legacy/invocations.py,sha256=rowiOycXuehS6JC-WPipLTuNVoGS4lC-Y2VPy7pxUK0,15310
194
- localstack/services/apigateway/legacy/provider.py,sha256=6_CEjFRXFjzjKNRRuLnox960TCztkZbOGiGkBKBbAsU,121751
194
+ localstack/services/apigateway/legacy/provider.py,sha256=f43MKh_zB-S7PVNI_0tS9mCQE0mlzlzvY1Ry15fr5As,121869
195
195
  localstack/services/apigateway/legacy/router_asf.py,sha256=-hf0eRxn0BXiSf_-1j2N2JtY6dVeoY19eckB8JTCPwI,6102
196
196
  localstack/services/apigateway/legacy/templates.py,sha256=LiK-LRO0hadI3_JgzbwMsybD-2XEGvgn06KcUEjL0Uo,15065
197
197
  localstack/services/apigateway/next_gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
- localstack/services/apigateway/next_gen/provider.py,sha256=e9bE7VMAunD4pVh_wwTeaPPkMTDgcYZvaKZdc1mNTII,10626
198
+ localstack/services/apigateway/next_gen/provider.py,sha256=iDkrJmfx_4GOk7ixeOx9gOCW78VEgLvZBpv_1VESAAk,11367
199
199
  localstack/services/apigateway/next_gen/execute_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
200
  localstack/services/apigateway/next_gen/execute_api/api.py,sha256=4hBm-VYLhctVocblhap2g9HxbDu2HoMW0LkvxaMVFCA,550
201
201
  localstack/services/apigateway/next_gen/execute_api/context.py,sha256=t7hou4HJshaJJbHMP-Xi2zTzImiATcv_nIcTJ4JOJeY,4905
@@ -207,6 +207,7 @@ localstack/services/apigateway/next_gen/execute_api/moto_helpers.py,sha256=TIoKS
207
207
  localstack/services/apigateway/next_gen/execute_api/parameters_mapping.py,sha256=iDkI7WIp9xBnKQx--Xpao5bmTNpdDfu6Iz3HRfl6ykc,12173
208
208
  localstack/services/apigateway/next_gen/execute_api/router.py,sha256=JoGjA3ofnbmyUYrbJVQlQltRpa0K18SqoN-SoN6dW2E,7719
209
209
  localstack/services/apigateway/next_gen/execute_api/template_mapping.py,sha256=JBOa1pSI6czRRhox6ijDzYY1q-EXPzmlE_BYZUEtbPw,9987
210
+ localstack/services/apigateway/next_gen/execute_api/test_invoke.py,sha256=G0ORdW3PEPlM4zHeEClniSMf9lKfnfMpQS4h6eMCyBI,9206
210
211
  localstack/services/apigateway/next_gen/execute_api/variables.py,sha256=HEwuFhsskRLJKP1-qmgE0v4rBDcUiJj6Wavo6-i6Jxs,7787
211
212
  localstack/services/apigateway/next_gen/execute_api/handlers/__init__.py,sha256=GRzXR6DKcPRI7vcg5xyPTPBoNCXvLkojZoR6TvtVUls,1239
212
213
  localstack/services/apigateway/next_gen/execute_api/handlers/analytics.py,sha256=oSvRgibvtL709w2Xt9GJdA4D1LBGr_Kir87TqEW87as,1859
@@ -1164,7 +1165,7 @@ localstack/testing/pytest/detect_thread_leakage.py,sha256=iV2qFm4sQ7AkoqRfSZgoAU
1164
1165
  localstack/testing/pytest/filters.py,sha256=wlD-rir8TDCH94YNo_PdTU2ZnZd2DyRib2ML3TNBC_s,1174
1165
1166
  localstack/testing/pytest/find_orphaned_snapshots.py,sha256=-abDUtXa2-9PkZBDjU9XxQkT7i0dATXnFR2GzsX0TFc,1336
1166
1167
  localstack/testing/pytest/fixture_conflicts.py,sha256=cCWOEwO5clVRFseFS0_9wH5v47n_x4OQeIfVXHJvSOU,1497
1167
- localstack/testing/pytest/fixtures.py,sha256=g1i_a3gzE-M7_EXq4iFNg0mZok9qBJoBkiEQIerT5FM,87887
1168
+ localstack/testing/pytest/fixtures.py,sha256=gW3V_hN8g73wfH5Pea39dIvXXMHT4Fbkp99bwA4MaV0,88739
1168
1169
  localstack/testing/pytest/in_memory_localstack.py,sha256=RVSbgCbKl19ldcanyp-tKKhDhofT4ggKDY4rRQxedb8,3267
1169
1170
  localstack/testing/pytest/marker_report.py,sha256=_GOdUQQ5e-FUdw-26rHJ3B13qHrM9m4qGuzKvW2CdsE,5549
1170
1171
  localstack/testing/pytest/marking.py,sha256=60LtgBT3A1re9IraY_wjc_ixS5qpskdcYPlxwew236k,7432
@@ -1246,7 +1247,7 @@ localstack/utils/analytics/publisher.py,sha256=Y_xbaM-cZjZVtTRSCQWpGLU4KrSiLJ7TC
1246
1247
  localstack/utils/analytics/service_request_aggregator.py,sha256=QhgvA79wDjrXq3FI7EP9ziTHYEOspot7fy6D0yfVKDw,3926
1247
1248
  localstack/utils/analytics/usage.py,sha256=0tyeFtlcjWbG9tFc5hRBH3M6skOXvXlzRv7WWWcXCYA,5622
1248
1249
  localstack/utils/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1249
- localstack/utils/aws/arns.py,sha256=qx1YMzr5OqiaXiDZnOD2Xlsyz1AyvcDsx3UT691ZM7I,16660
1250
+ localstack/utils/aws/arns.py,sha256=mPHxOYR6MyZtTyGzqNX7nySqiGSi6xQaUpDqJWV3DWQ,16884
1250
1251
  localstack/utils/aws/aws_responses.py,sha256=FUvUz-cTHNlgsE-1PiZJ780SBFvIHzS8K2tzvRkJWZs,7781
1251
1252
  localstack/utils/aws/aws_stack.py,sha256=IDyvPdtk4T9DJSgvmqh2c3w59UJQ9yCF3mHHuf_t-R0,3557
1252
1253
  localstack/utils/aws/client.py,sha256=wSAc_uxVfAUtoQokxpghqHEylN0G88SfMaFr5XrtQJA,2926
@@ -1275,13 +1276,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1275
1276
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1276
1277
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1277
1278
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1278
- localstack_core-4.3.1.dev46.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1279
- localstack_core-4.3.1.dev46.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1280
- localstack_core-4.3.1.dev46.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1281
- localstack_core-4.3.1.dev46.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1282
- localstack_core-4.3.1.dev46.dist-info/METADATA,sha256=Wmm7xrHLhpFW-Xt9sgGBhX3iZuNC0FjLZ3lw-aqIi0k,5499
1283
- localstack_core-4.3.1.dev46.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
1284
- localstack_core-4.3.1.dev46.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1285
- localstack_core-4.3.1.dev46.dist-info/plux.json,sha256=g7tJ7ZouC_xY4hc89mo5GYQdlD4e1_R3JV93gNhH-Co,20786
1286
- localstack_core-4.3.1.dev46.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1287
- localstack_core-4.3.1.dev46.dist-info/RECORD,,
1279
+ localstack_core-4.3.1.dev48.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1280
+ localstack_core-4.3.1.dev48.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1281
+ localstack_core-4.3.1.dev48.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1282
+ localstack_core-4.3.1.dev48.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1283
+ localstack_core-4.3.1.dev48.dist-info/METADATA,sha256=exm1FC_H6hWg1iTMvKpVdi1wlrVTGD0O4seu34G42ag,5499
1284
+ localstack_core-4.3.1.dev48.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
1285
+ localstack_core-4.3.1.dev48.dist-info/entry_points.txt,sha256=UqGFR0MPKa2sfresdqiCpqBZuWyRxCb3UG77oPVMzVA,20564
1286
+ localstack_core-4.3.1.dev48.dist-info/plux.json,sha256=6TOYITXg_QxTvP8K-HLjhHTw9VlhUPB6ly9M9nntVLE,20786
1287
+ localstack_core-4.3.1.dev48.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1288
+ localstack_core-4.3.1.dev48.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "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::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "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::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "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::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin"], "localstack.hooks.on_infra_start": ["_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "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", "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"], "localstack.hooks.on_infra_shutdown": ["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", "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"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_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", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package"], "localstack.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "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.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"]}
@@ -1 +0,0 @@
1
- {"localstack.cloudformation.resource_providers": ["AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "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::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "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::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin"], "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", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "_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", "_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", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "aggregate_and_send=localstack.utils.analytics.usage:aggregate_and_send", "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"], "localstack.packages": ["lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package"], "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.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "localstack.init.runner": ["py=localstack.runtime.init:PythonScriptRunner", "sh=localstack.runtime.init:ShellScriptRunner"], "localstack.hooks.on_infra_ready": ["_run_init_scripts_on_ready=localstack.runtime.init:_run_init_scripts_on_ready"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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.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"]}