localstack-core 4.5.1.dev39__py3-none-any.whl → 4.5.1.dev41__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.
@@ -52,6 +52,7 @@ from localstack.aws.api.s3 import (
52
52
  ObjectStorageClass,
53
53
  ObjectVersionId,
54
54
  Owner,
55
+ Part,
55
56
  PartNumber,
56
57
  Payer,
57
58
  Policy,
@@ -91,6 +92,10 @@ LOG = logging.getLogger(__name__)
91
92
  _gmt_zone_info = ZoneInfo("GMT")
92
93
 
93
94
 
95
+ class InternalObjectPart(Part):
96
+ _position: int
97
+
98
+
94
99
  # note: not really a need to use a dataclass here, as it has a lot of fields, but only a few are set at creation
95
100
  class S3Bucket:
96
101
  name: BucketName
@@ -275,7 +280,7 @@ class S3Object:
275
280
  website_redirect_location: Optional[WebsiteRedirectLocation]
276
281
  acl: Optional[AccessControlPolicy]
277
282
  is_current: bool
278
- parts: Optional[dict[int, tuple[int, int]]]
283
+ parts: Optional[dict[int, InternalObjectPart]]
279
284
  restore: Optional[Restore]
280
285
  internal_last_modified: int
281
286
 
@@ -498,14 +503,16 @@ class S3Multipart:
498
503
  object_etag = hashlib.md5(usedforsecurity=False)
499
504
  has_checksum = self.checksum_algorithm is not None
500
505
  checksum_hash = None
506
+ checksum_key = None
501
507
  if has_checksum:
508
+ checksum_key = f"Checksum{self.checksum_algorithm.upper()}"
502
509
  if self.checksum_type == ChecksumType.COMPOSITE:
503
510
  checksum_hash = get_s3_checksum(self.checksum_algorithm)
504
511
  else:
505
512
  checksum_hash = CombinedCrcHash(self.checksum_algorithm)
506
513
 
507
514
  pos = 0
508
- parts_map = {}
515
+ parts_map: dict[int, InternalObjectPart] = {}
509
516
  for index, part in enumerate(parts):
510
517
  part_number = part["PartNumber"]
511
518
  part_etag = part["ETag"].strip('"')
@@ -526,7 +533,6 @@ class S3Multipart:
526
533
  )
527
534
 
528
535
  if has_checksum:
529
- checksum_key = f"Checksum{self.checksum_algorithm.upper()}"
530
536
  if not (part_checksum := part.get(checksum_key)):
531
537
  if self.checksum_type == ChecksumType.COMPOSITE:
532
538
  # weird case, they still try to validate a different checksum type than the multipart
@@ -575,7 +581,16 @@ class S3Multipart:
575
581
 
576
582
  object_etag.update(bytes.fromhex(s3_part.etag))
577
583
  # keep track of the parts size, as it can be queried afterward on the object as a Range
578
- parts_map[part_number] = (pos, s3_part.size)
584
+ internal_part = InternalObjectPart(
585
+ _position=pos,
586
+ Size=s3_part.size,
587
+ ETag=s3_part.etag,
588
+ PartNumber=s3_part.part_number,
589
+ )
590
+ if has_checksum and self.checksum_type == ChecksumType.COMPOSITE:
591
+ internal_part[checksum_key] = s3_part.checksum_value
592
+
593
+ parts_map[part_number] = internal_part
579
594
  pos += s3_part.size
580
595
 
581
596
  if mpu_size and mpu_size != pos:
@@ -167,6 +167,7 @@ from localstack.aws.api.s3 import (
167
167
  ObjectLockRetention,
168
168
  ObjectLockToken,
169
169
  ObjectOwnership,
170
+ ObjectPart,
170
171
  ObjectVersion,
171
172
  ObjectVersionId,
172
173
  ObjectVersionStorageClass,
@@ -317,6 +318,7 @@ from localstack.services.s3.validation import (
317
318
  from localstack.services.s3.website_hosting import register_website_hosting_routes
318
319
  from localstack.state import AssetDirectory, StateVisitor
319
320
  from localstack.utils.aws.arns import s3_bucket_name
321
+ from localstack.utils.collections import select_from_typed_dict
320
322
  from localstack.utils.strings import short_uid, to_bytes, to_str
321
323
 
322
324
  LOG = logging.getLogger(__name__)
@@ -2032,6 +2034,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2032
2034
 
2033
2035
  object_attrs = request.get("ObjectAttributes", [])
2034
2036
  response = GetObjectAttributesOutput()
2037
+ object_checksum_type = getattr(s3_object, "checksum_type", ChecksumType.FULL_OBJECT)
2035
2038
  if "ETag" in object_attrs:
2036
2039
  response["ETag"] = s3_object.etag
2037
2040
  if "StorageClass" in object_attrs:
@@ -2045,7 +2048,7 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2045
2048
  checksum_value = s3_object.checksum_value
2046
2049
  response["Checksum"] = {
2047
2050
  f"Checksum{checksum_algorithm.upper()}": checksum_value,
2048
- "ChecksumType": getattr(s3_object, "checksum_type", ChecksumType.FULL_OBJECT),
2051
+ "ChecksumType": object_checksum_type,
2049
2052
  }
2050
2053
 
2051
2054
  response["LastModified"] = s3_object.last_modified
@@ -2054,9 +2057,55 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2054
2057
  response["VersionId"] = s3_object.version_id
2055
2058
 
2056
2059
  if "ObjectParts" in object_attrs and s3_object.parts:
2057
- # TODO: implements ObjectParts, this is basically a simplified `ListParts` call on the object, we might
2058
- # need to store more data about the Parts once we implement checksums for them
2059
- response["ObjectParts"] = GetObjectAttributesParts(TotalPartsCount=len(s3_object.parts))
2060
+ if object_checksum_type == ChecksumType.FULL_OBJECT:
2061
+ response["ObjectParts"] = GetObjectAttributesParts(
2062
+ TotalPartsCount=len(s3_object.parts)
2063
+ )
2064
+ else:
2065
+ # this is basically a simplified `ListParts` call on the object, only returned when the checksum type is
2066
+ # COMPOSITE
2067
+ count = 0
2068
+ is_truncated = False
2069
+ part_number_marker = request.get("PartNumberMarker") or 0
2070
+ max_parts = request.get("MaxParts") or 1000
2071
+
2072
+ parts = []
2073
+ all_parts = sorted(s3_object.parts.items())
2074
+ last_part_number, last_part = all_parts[-1]
2075
+
2076
+ # TODO: remove this backward compatibility hack needed for state created with <= 4.5
2077
+ # the parts would only be a tuple and would not store the proper state for 4.5 and earlier, so we need
2078
+ # to return early
2079
+ if isinstance(last_part, tuple):
2080
+ response["ObjectParts"] = GetObjectAttributesParts(
2081
+ TotalPartsCount=len(s3_object.parts)
2082
+ )
2083
+ return response
2084
+
2085
+ for part_number, part in all_parts:
2086
+ if part_number <= part_number_marker:
2087
+ continue
2088
+ part_item = select_from_typed_dict(ObjectPart, part)
2089
+
2090
+ parts.append(part_item)
2091
+ count += 1
2092
+
2093
+ if count >= max_parts and part["PartNumber"] != last_part_number:
2094
+ is_truncated = True
2095
+ break
2096
+
2097
+ object_parts = GetObjectAttributesParts(
2098
+ TotalPartsCount=len(s3_object.parts),
2099
+ IsTruncated=is_truncated,
2100
+ MaxParts=max_parts,
2101
+ PartNumberMarker=part_number_marker,
2102
+ NextPartNumberMarker=0,
2103
+ )
2104
+ if parts:
2105
+ object_parts["Parts"] = parts
2106
+ object_parts["NextPartNumberMarker"] = parts[-1]["PartNumber"]
2107
+
2108
+ response["ObjectParts"] = object_parts
2060
2109
 
2061
2110
  return response
2062
2111
 
@@ -2729,8 +2778,6 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2729
2778
  sse_customer_key_md5: SSECustomerKeyMD5 = None,
2730
2779
  **kwargs,
2731
2780
  ) -> ListPartsOutput:
2732
- # TODO: implement MaxParts
2733
- # TODO: implements PartNumberMarker
2734
2781
  store, s3_bucket = self._get_cross_account_bucket(context, bucket)
2735
2782
 
2736
2783
  if (
@@ -2743,10 +2790,6 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2743
2790
  UploadId=upload_id,
2744
2791
  )
2745
2792
 
2746
- # AbortDate: Optional[AbortDate] TODO: lifecycle
2747
- # AbortRuleId: Optional[AbortRuleId] TODO: lifecycle
2748
- # RequestCharged: Optional[RequestCharged]
2749
-
2750
2793
  count = 0
2751
2794
  is_truncated = False
2752
2795
  part_number_marker = part_number_marker or 0
@@ -2797,6 +2840,10 @@ class S3Provider(S3Api, ServiceLifecycleHook):
2797
2840
  response["ChecksumAlgorithm"] = s3_multipart.object.checksum_algorithm
2798
2841
  response["ChecksumType"] = getattr(s3_multipart, "checksum_type", None)
2799
2842
 
2843
+ # AbortDate: Optional[AbortDate] TODO: lifecycle
2844
+ # AbortRuleId: Optional[AbortRuleId] TODO: lifecycle
2845
+ # RequestCharged: Optional[RequestCharged]
2846
+
2800
2847
  return response
2801
2848
 
2802
2849
  def list_multipart_uploads(
@@ -4680,7 +4727,13 @@ def get_part_range(s3_object: S3Object, part_number: PartNumber) -> ObjectRange:
4680
4727
  ActualPartCount=len(s3_object.parts),
4681
4728
  )
4682
4729
 
4683
- begin, part_length = part_data
4730
+ # TODO: remove for next major version 5.0, compatibility for <= 4.5
4731
+ if isinstance(part_data, tuple):
4732
+ begin, part_length = part_data
4733
+ else:
4734
+ begin = part_data["_position"]
4735
+ part_length = part_data["Size"]
4736
+
4684
4737
  end = begin + part_length - 1
4685
4738
  return ObjectRange(
4686
4739
  begin=begin,
@@ -392,6 +392,7 @@ class SyncExecution(Execution):
392
392
  exec_comm=self._get_start_execution_worker_comm(),
393
393
  cloud_watch_logging_session=self._cloud_watch_logging_session,
394
394
  activity_store=self._activity_store,
395
+ mock_test_case=self.mock_test_case,
395
396
  )
396
397
 
397
398
  def _get_start_execution_worker_comm(self) -> BaseExecutionWorkerCommunication:
@@ -443,7 +443,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
443
443
  logging_configuration=state_machine_logging_configuration
444
444
  )
445
445
 
446
- # CreateStateMachine is an idempotent API. Subsequent requests wont create a duplicate resource if it was
446
+ # CreateStateMachine is an idempotent API. Subsequent requests won't create a duplicate resource if it was
447
447
  # already created.
448
448
  idem_state_machine: Optional[StateMachineRevision] = self._idempotent_revision(
449
449
  context=context,
@@ -656,7 +656,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
656
656
  stateMachineAliasArn=state_machine_alias_arn, creationDate=alias.create_date
657
657
  )
658
658
  else:
659
- # CreateStateMachineAlias is an idempotent API. Idempotent requests wont create duplicate resources.
659
+ # CreateStateMachineAlias is an idempotent API. Idempotent requests won't create duplicate resources.
660
660
  raise ConflictException(
661
661
  "Failed to create alias because an alias with the same name and a "
662
662
  "different routing configuration already exists."
@@ -772,6 +772,33 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
772
772
  raise TaskDoesNotExist()
773
773
  raise InvalidToken("Invalid token")
774
774
 
775
+ @staticmethod
776
+ def _get_state_machine_arn(state_machine_arn: str) -> str:
777
+ """Extract the state machine ARN by removing the test case suffix."""
778
+ return state_machine_arn.split("#")[0]
779
+
780
+ @staticmethod
781
+ def _get_mock_test_case(
782
+ state_machine_arn: str, state_machine_name: str
783
+ ) -> Optional[MockTestCase]:
784
+ """Extract and load a mock test case from a state machine ARN if present."""
785
+ parts = state_machine_arn.split("#")
786
+ if len(parts) != 2:
787
+ return None
788
+
789
+ mock_test_case_name = parts[1]
790
+ mock_test_case = load_mock_test_case_for(
791
+ state_machine_name=state_machine_name, test_case_name=mock_test_case_name
792
+ )
793
+ if mock_test_case is None:
794
+ raise InvalidName(
795
+ f"Invalid mock test case name '{mock_test_case_name}' "
796
+ f"for state machine '{state_machine_name}'."
797
+ "Either the test case is not defined or the mock configuration file "
798
+ "could not be loaded. See logs for details."
799
+ )
800
+ return mock_test_case
801
+
775
802
  def start_execution(
776
803
  self,
777
804
  context: RequestContext,
@@ -783,21 +810,16 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
783
810
  ) -> StartExecutionOutput:
784
811
  self._validate_state_machine_arn(state_machine_arn)
785
812
 
786
- state_machine_arn_parts = state_machine_arn.split("#")
787
- state_machine_arn = state_machine_arn_parts[0]
788
- mock_test_case_name = (
789
- state_machine_arn_parts[1] if len(state_machine_arn_parts) == 2 else None
790
- )
791
-
813
+ base_arn = self._get_state_machine_arn(state_machine_arn)
792
814
  store = self.get_store(context=context)
793
815
 
794
- alias: Optional[Alias] = store.aliases.get(state_machine_arn)
816
+ alias: Optional[Alias] = store.aliases.get(base_arn)
795
817
  alias_sample_state_machine_version_arn = alias.sample() if alias is not None else None
796
818
  unsafe_state_machine: Optional[StateMachineInstance] = store.state_machines.get(
797
- alias_sample_state_machine_version_arn or state_machine_arn
819
+ alias_sample_state_machine_version_arn or base_arn
798
820
  )
799
821
  if not unsafe_state_machine:
800
- self._raise_state_machine_does_not_exist(state_machine_arn)
822
+ self._raise_state_machine_does_not_exist(base_arn)
801
823
 
802
824
  # Update event change parameters about the state machine and should not affect those about this execution.
803
825
  state_machine_clone = copy.deepcopy(unsafe_state_machine)
@@ -842,19 +864,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
842
864
  configuration=state_machine_clone.cloud_watch_logging_configuration,
843
865
  )
844
866
 
845
- mock_test_case: Optional[MockTestCase] = None
846
- if mock_test_case_name is not None:
847
- state_machine_name = state_machine_clone.name
848
- mock_test_case = load_mock_test_case_for(
849
- state_machine_name=state_machine_name, test_case_name=mock_test_case_name
850
- )
851
- if mock_test_case is None:
852
- raise InvalidName(
853
- f"Invalid mock test case name '{mock_test_case_name}' "
854
- f"for state machine '{state_machine_name}'."
855
- "Either the test case is not defined or the mock configuration file "
856
- "could not be loaded. See logs for details."
857
- )
867
+ mock_test_case = self._get_mock_test_case(state_machine_arn, state_machine_clone.name)
858
868
 
859
869
  execution = Execution(
860
870
  name=exec_name,
@@ -889,11 +899,13 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
889
899
  **kwargs,
890
900
  ) -> StartSyncExecutionOutput:
891
901
  self._validate_state_machine_arn(state_machine_arn)
902
+
903
+ base_arn = self._get_state_machine_arn(state_machine_arn)
892
904
  unsafe_state_machine: Optional[StateMachineInstance] = self.get_store(
893
905
  context
894
- ).state_machines.get(state_machine_arn)
906
+ ).state_machines.get(base_arn)
895
907
  if not unsafe_state_machine:
896
- self._raise_state_machine_does_not_exist(state_machine_arn)
908
+ self._raise_state_machine_does_not_exist(base_arn)
897
909
 
898
910
  if unsafe_state_machine.sm_type == StateMachineType.STANDARD:
899
911
  self._raise_state_machine_type_not_supported()
@@ -928,6 +940,8 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
928
940
  configuration=state_machine_clone.cloud_watch_logging_configuration,
929
941
  )
930
942
 
943
+ mock_test_case = self._get_mock_test_case(state_machine_arn, state_machine_clone.name)
944
+
931
945
  execution = SyncExecution(
932
946
  name=exec_name,
933
947
  sm_type=state_machine_clone.sm_type,
@@ -941,6 +955,7 @@ class StepFunctionsProvider(StepfunctionsApi, ServiceLifecycleHook):
941
955
  input_data=input_data,
942
956
  trace_header=trace_header,
943
957
  activity_store=self.get_store(context).activities,
958
+ mock_test_case=mock_test_case,
944
959
  )
945
960
  self.get_store(context).executions[exec_arn] = execution
946
961
 
@@ -404,6 +404,7 @@ def create_state_machine_with_iam_role(
404
404
  definition: Definition,
405
405
  logging_configuration: Optional[LoggingConfiguration] = None,
406
406
  state_machine_name: Optional[str] = None,
407
+ state_machine_type: StateMachineType = StateMachineType.STANDARD,
407
408
  ):
408
409
  snf_role_arn = create_state_machine_iam_role(target_aws_client=target_aws_client)
409
410
  snapshot.add_transformer(RegexTransformer(snf_role_arn, "snf_role_arn"))
@@ -422,6 +423,7 @@ def create_state_machine_with_iam_role(
422
423
  "name": sm_name,
423
424
  "definition": definition,
424
425
  "roleArn": snf_role_arn,
426
+ "type": state_machine_type,
425
427
  }
426
428
  if logging_configuration is not None:
427
429
  create_arguments["loggingConfiguration"] = logging_configuration
@@ -507,6 +509,27 @@ def launch_and_record_mocked_execution(
507
509
  return execution_arn
508
510
 
509
511
 
512
+ def launch_and_record_mocked_sync_execution(
513
+ target_aws_client,
514
+ sfn_snapshot,
515
+ state_machine_arn,
516
+ execution_input,
517
+ test_name,
518
+ ) -> LongArn:
519
+ stepfunctions_client = target_aws_client.stepfunctions
520
+
521
+ exec_resp = stepfunctions_client.start_sync_execution(
522
+ stateMachineArn=f"{state_machine_arn}#{test_name}",
523
+ input=execution_input,
524
+ )
525
+
526
+ sfn_snapshot.add_transformer(sfn_snapshot.transform.sfn_sm_sync_exec_arn(exec_resp, 0))
527
+
528
+ sfn_snapshot.match("start_execution_sync_response", exec_resp)
529
+
530
+ return exec_resp["executionArn"]
531
+
532
+
510
533
  def launch_and_record_logs(
511
534
  target_aws_client,
512
535
  state_machine_arn,
@@ -579,6 +602,7 @@ def create_and_record_mocked_execution(
579
602
  execution_input,
580
603
  state_machine_name,
581
604
  test_name,
605
+ state_machine_type: StateMachineType = StateMachineType.STANDARD,
582
606
  ) -> LongArn:
583
607
  state_machine_arn = create_state_machine_with_iam_role(
584
608
  target_aws_client,
@@ -587,6 +611,7 @@ def create_and_record_mocked_execution(
587
611
  sfn_snapshot,
588
612
  definition,
589
613
  state_machine_name=state_machine_name,
614
+ state_machine_type=state_machine_type,
590
615
  )
591
616
  execution_arn = launch_and_record_mocked_execution(
592
617
  target_aws_client, sfn_snapshot, state_machine_arn, execution_input, test_name
@@ -594,6 +619,31 @@ def create_and_record_mocked_execution(
594
619
  return execution_arn
595
620
 
596
621
 
622
+ def create_and_record_mocked_sync_execution(
623
+ target_aws_client,
624
+ create_state_machine_iam_role,
625
+ create_state_machine,
626
+ sfn_snapshot,
627
+ definition,
628
+ execution_input,
629
+ state_machine_name,
630
+ test_name,
631
+ ) -> LongArn:
632
+ state_machine_arn = create_state_machine_with_iam_role(
633
+ target_aws_client,
634
+ create_state_machine_iam_role,
635
+ create_state_machine,
636
+ sfn_snapshot,
637
+ definition,
638
+ state_machine_name=state_machine_name,
639
+ state_machine_type=StateMachineType.EXPRESS,
640
+ )
641
+ execution_arn = launch_and_record_mocked_sync_execution(
642
+ target_aws_client, sfn_snapshot, state_machine_arn, execution_input, test_name
643
+ )
644
+ return execution_arn
645
+
646
+
597
647
  def create_and_run_mock(
598
648
  target_aws_client,
599
649
  monkeypatch,
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.5.1.dev39'
21
- __version_tuple__ = version_tuple = (4, 5, 1, 'dev39')
20
+ __version__ = version = '4.5.1.dev41'
21
+ __version_tuple__ = version_tuple = (4, 5, 1, 'dev41')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localstack-core
3
- Version: 4.5.1.dev39
3
+ Version: 4.5.1.dev41
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=i86xqIDobHtG_X3W1bVJvGPKR7DGbD-2JTbuLcoT5Yo,526
7
+ localstack/version.py,sha256=MNpz-sCDO55_pYPgX4nXlltXJg1sNqKzl3udSOIlQmQ,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
@@ -682,10 +682,10 @@ localstack/services/s3/codec.py,sha256=l3nt8G7W8i7DiVGNy8jUMsCV69QI_eqovjbKYY7yE
682
682
  localstack/services/s3/constants.py,sha256=8Pmp5K_EK4OUQ5GChIR7n9Rzf3iHRp2ecKSAPI__Ytc,3866
683
683
  localstack/services/s3/cors.py,sha256=KQCdda-sLrx8RleQ7jh3PsxzTrmCparx4JIZl7nYsTk,13320
684
684
  localstack/services/s3/exceptions.py,sha256=zQ6p5a1ROqI79gxTpTa-wktKu41d6cOdbgl24FAoN-A,1942
685
- localstack/services/s3/models.py,sha256=CcTJzZMj2bxlnHs-z22cqRrLFRiyQDqzbQgOPXMYpTc,30543
685
+ localstack/services/s3/models.py,sha256=DfHNVsgnc4GqkujAeSfFIr7zv38nTeu-puRPCAYt4Z8,31017
686
686
  localstack/services/s3/notifications.py,sha256=_VYS4IAx9SxoF0Xwe6rnzhv4DkSctSiU4xmKqXGHm1M,32219
687
687
  localstack/services/s3/presigned_url.py,sha256=dblysN_41oU4E8qQujORELU6IbQulwrrfV9bhDkxYAE,39536
688
- localstack/services/s3/provider.py,sha256=6kcIuiXNtHnqnDYHxCqtGNFkp_rJBJC8kAVfOXG92Hs,192673
688
+ localstack/services/s3/provider.py,sha256=D0c5AgMdjn2GwEunK2Pv_Lq5dBwhYIZr0-ts1Rqg7rI,194827
689
689
  localstack/services/s3/utils.py,sha256=AmUXoBDKaBjdd_7r9XhmjnzSC6bhOaMOsE330RDVB2A,39198
690
690
  localstack/services/s3/validation.py,sha256=wz5Emgkf8a8LuPW8sOu51OkH5CFytNtvnr7Gjd2FQog,19968
691
691
  localstack/services/s3/website_hosting.py,sha256=hjwKAYOR_xNkml5c7naQW_iK_Vy2RGpRXBZL-vCmUb4,16627
@@ -789,7 +789,7 @@ localstack/services/stepfunctions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
789
789
  localstack/services/stepfunctions/analytics.py,sha256=xc23IY6CZ1xzB_YLh8pQWWqBWo74Q8gn3nLaxBwItLQ,363
790
790
  localstack/services/stepfunctions/packages.py,sha256=RZblddr9VARCXqtCeFn_Z6FmyLerWP1-REkJ-spi1Ko,1705
791
791
  localstack/services/stepfunctions/plugins.py,sha256=oY-qlTgrZHUalqoeIV4v9mkpC5cpMRUN_PX4YMPFMMI,324
792
- localstack/services/stepfunctions/provider.py,sha256=yEV5eVLA-aiu1Zfu6Nxt3fE_dpc5F6zJzCMFnCjVP0w,70120
792
+ localstack/services/stepfunctions/provider.py,sha256=lTMyE9fT8cdqs9iyqeOtaXynYvrlFBbHvswrA21wpms,70591
793
793
  localstack/services/stepfunctions/quotas.py,sha256=FprfsAD-_IziguWQnR-b3VA7QYhFdQzItuMLOwl9_FU,484
794
794
  localstack/services/stepfunctions/stepfunctions_utils.py,sha256=8LUfXJ3N1LC_y2QIe_TgHIVIkoQLhS0R4i6aXiSMink,2340
795
795
  localstack/services/stepfunctions/asl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1120,7 +1120,7 @@ localstack/services/stepfunctions/asl/utils/json_path.py,sha256=Its-8J-JCd9hvam9
1120
1120
  localstack/services/stepfunctions/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1121
1121
  localstack/services/stepfunctions/backend/activity.py,sha256=O0mPxXtSSg04-enVIL7e62qB4PYwiidoy0NymHOc9Dk,1371
1122
1122
  localstack/services/stepfunctions/backend/alias.py,sha256=5u7yugVzFUs6lcaomVAOh2tsZHk2mbm5YzCLWLrJatg,4566
1123
- localstack/services/stepfunctions/backend/execution.py,sha256=1Jy1ir3dGGxwpLwy07A_94dwYQQQtD7UdhZ_aQoVdUI,16854
1123
+ localstack/services/stepfunctions/backend/execution.py,sha256=2UNstkiAFhDGLsFrRITrQ0TG69NZ5PDBjf7h1RdTv6Q,16902
1124
1124
  localstack/services/stepfunctions/backend/execution_worker.py,sha256=f_b8QUArn0C51P_f0XUjcDS3EFhAZ2RFGKBjk2xn6co,5190
1125
1125
  localstack/services/stepfunctions/backend/execution_worker_comm.py,sha256=61yq2i_KAPFZj-f6kd5TETR0VT2xkOLmaOUkwxnuIvw,387
1126
1126
  localstack/services/stepfunctions/backend/state_machine.py,sha256=14KdKg6ugJoVrrbH5X47uUh3tODtWdWc5_MWX5Qc_vs,9581
@@ -1182,7 +1182,7 @@ localstack/testing/pytest/cloudformation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5
1182
1182
  localstack/testing/pytest/cloudformation/fixtures.py,sha256=q0dyZlcjUwNlhlZuxCCxWJFhgq9HQF9jt_WjFxdHHJk,7029
1183
1183
  localstack/testing/pytest/stepfunctions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1184
1184
  localstack/testing/pytest/stepfunctions/fixtures.py,sha256=m9gdU7opK1LoDKuUDTJKcuUfWi4LWHw0idL0_GNlkfo,32817
1185
- localstack/testing/pytest/stepfunctions/utils.py,sha256=zK9qD4o1dOoKkr2hwmNBfv4DqgxNiX1zRd335FG9i7o,31298
1185
+ localstack/testing/pytest/stepfunctions/utils.py,sha256=L_Zc6-iDC76E5JsGAXltBIi_ZB3-vrCBTGcOcmfEO3g,32819
1186
1186
  localstack/testing/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1187
1187
  localstack/testing/scenario/cdk_lambda_helper.py,sha256=FdFDOTykrtqfP_FRJftijkUjwMbIY-DL9ovAtQwPBb4,8609
1188
1188
  localstack/testing/scenario/provisioning.py,sha256=yo8E-fyspL6gG_46yZhmNce9nryf1oSZ4CiXteJMY14,18527
@@ -1284,13 +1284,13 @@ localstack/utils/server/tcp_proxy.py,sha256=rR6d5jR0ozDvIlpHiqW0cfyY9a2fRGdOzyA8
1284
1284
  localstack/utils/xray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1285
1285
  localstack/utils/xray/trace_header.py,sha256=ahXk9eonq7LpeENwlqUEPj3jDOCiVRixhntQuxNor-Q,6209
1286
1286
  localstack/utils/xray/traceid.py,sha256=SQSsMV2rhbTNK6ceIoozZYuGU7Fg687EXcgqxoDl1Fw,1106
1287
- localstack_core-4.5.1.dev39.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1288
- localstack_core-4.5.1.dev39.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1289
- localstack_core-4.5.1.dev39.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1290
- localstack_core-4.5.1.dev39.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1291
- localstack_core-4.5.1.dev39.dist-info/METADATA,sha256=xlVusXMf9Z-0lXtYsAtj6y_LZMa5GomZAt4RFVY854U,5539
1292
- localstack_core-4.5.1.dev39.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1293
- localstack_core-4.5.1.dev39.dist-info/entry_points.txt,sha256=tsZ2TeV3-omCfAUEXmTWXu_D40b_17a9FDAEpbeaoNw,20571
1294
- localstack_core-4.5.1.dev39.dist-info/plux.json,sha256=4pZOXbusULgqykxErvTQ6cj7yUDYh9A7dvVmqR21Bno,20793
1295
- localstack_core-4.5.1.dev39.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1296
- localstack_core-4.5.1.dev39.dist-info/RECORD,,
1287
+ localstack_core-4.5.1.dev41.data/scripts/localstack,sha256=WyL11vp5CkuP79iIR-L8XT7Cj8nvmxX7XRAgxhbmXNE,529
1288
+ localstack_core-4.5.1.dev41.data/scripts/localstack-supervisor,sha256=nm1Il2d6ASyOB6Vo4CRHd90w7TK9FdRl9VPp0NN6hUk,6378
1289
+ localstack_core-4.5.1.dev41.data/scripts/localstack.bat,sha256=tlzZTXtveHkMX_s_fa7VDfvdNdS8iVpEz2ER3uk9B_c,29
1290
+ localstack_core-4.5.1.dev41.dist-info/licenses/LICENSE.txt,sha256=3PC-9Z69UsNARuQ980gNR_JsLx8uvMjdG6C7cc4LBYs,606
1291
+ localstack_core-4.5.1.dev41.dist-info/METADATA,sha256=LQAOhIPYcpr6Alocy0VIeOV9ldgl2JLYoN29M4UM9ZE,5539
1292
+ localstack_core-4.5.1.dev41.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1293
+ localstack_core-4.5.1.dev41.dist-info/entry_points.txt,sha256=tsZ2TeV3-omCfAUEXmTWXu_D40b_17a9FDAEpbeaoNw,20571
1294
+ localstack_core-4.5.1.dev41.dist-info/plux.json,sha256=aAC8p1ueZTYyIYqTDLU4LHbV5HJOZhi7LVAobYDPbfU,20793
1295
+ localstack_core-4.5.1.dev41.dist-info/top_level.txt,sha256=3sqmK2lGac8nCy8nwsbS5SpIY_izmtWtgaTFKHYVHbI,11
1296
+ localstack_core-4.5.1.dev41.dist-info/RECORD,,
@@ -0,0 +1 @@
1
+ {"localstack.cloudformation.resource_providers": ["AWS::EC2::SecurityGroup=localstack.services.ec2.resource_providers.aws_ec2_securitygroup_plugin:EC2SecurityGroupProviderPlugin", "AWS::SSM::MaintenanceWindow=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindow_plugin:SSMMaintenanceWindowProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::SSM::MaintenanceWindowTask=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtask_plugin:SSMMaintenanceWindowTaskProviderPlugin", "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::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::EC2::InternetGateway=localstack.services.ec2.resource_providers.aws_ec2_internetgateway_plugin:EC2InternetGatewayProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::EC2::SubnetRouteTableAssociation=localstack.services.ec2.resource_providers.aws_ec2_subnetroutetableassociation_plugin:EC2SubnetRouteTableAssociationProviderPlugin", "AWS::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Lambda::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::ApiGateway::DomainName=localstack.services.apigateway.resource_providers.aws_apigateway_domainname_plugin:ApiGatewayDomainNameProviderPlugin", "AWS::Route53::HealthCheck=localstack.services.route53.resource_providers.aws_route53_healthcheck_plugin:Route53HealthCheckProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "AWS::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "AWS::SecretsManager::SecretTargetAttachment=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secrettargetattachment_plugin:SecretsManagerSecretTargetAttachmentProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "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::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::SES::EmailIdentity=localstack.services.ses.resource_providers.aws_ses_emailidentity_plugin:SESEmailIdentityProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "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::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::ApiGateway::ApiKey=localstack.services.apigateway.resource_providers.aws_apigateway_apikey_plugin:ApiGatewayApiKeyProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::Scheduler::ScheduleGroup=localstack.services.scheduler.resource_providers.aws_scheduler_schedulegroup_plugin:SchedulerScheduleGroupProviderPlugin", "AWS::SQS::QueuePolicy=localstack.services.sqs.resource_providers.aws_sqs_queuepolicy_plugin:SQSQueuePolicyProviderPlugin", "AWS::ApiGateway::BasePathMapping=localstack.services.apigateway.resource_providers.aws_apigateway_basepathmapping_plugin:ApiGatewayBasePathMappingProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::EC2::RouteTable=localstack.services.ec2.resource_providers.aws_ec2_routetable_plugin:EC2RouteTableProviderPlugin"], "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", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "stop_server=localstack.dns.plugins:stop_server", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics"], "localstack.packages": ["ffmpeg/community=localstack.packages.plugins:ffmpeg_package", "java/community=localstack.packages.plugins:java_package", "terraform/community=localstack.packages.plugins:terraform_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package", "vosk/community=localstack.services.transcribe.plugins:vosk_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "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", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "elasticsearch/community=localstack.services.es.plugins:elasticsearch_package"], "localstack.hooks.on_infra_start": ["register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "setup_dns_configuration_on_host=localstack.dns.plugins:setup_dns_configuration_on_host", "start_dns_server=localstack.dns.plugins:start_dns_server", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "eager_load_services=localstack.services.plugins:eager_load_services", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches"], "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.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "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.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "localstack.openapi.spec": ["localstack=localstack.plugins:CoreOASPlugin"], "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::SecretsManager::ResourcePolicy=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_resourcepolicy_plugin:SecretsManagerResourcePolicyProviderPlugin", "AWS::IAM::ManagedPolicy=localstack.services.iam.resource_providers.aws_iam_managedpolicy_plugin:IAMManagedPolicyProviderPlugin", "AWS::OpenSearchService::Domain=localstack.services.opensearch.resource_providers.aws_opensearchservice_domain_plugin:OpenSearchServiceDomainProviderPlugin", "AWS::KMS::Alias=localstack.services.kms.resource_providers.aws_kms_alias_plugin:KMSAliasProviderPlugin", "AWS::Lambda::EventSourceMapping=localstack.services.lambda_.resource_providers.aws_lambda_eventsourcemapping_plugin:LambdaEventSourceMappingProviderPlugin", "AWS::Kinesis::Stream=localstack.services.kinesis.resource_providers.aws_kinesis_stream_plugin:KinesisStreamProviderPlugin", "AWS::ApiGateway::GatewayResponse=localstack.services.apigateway.resource_providers.aws_apigateway_gatewayresponse_plugin:ApiGatewayGatewayResponseProviderPlugin", "AWS::SNS::Topic=localstack.services.sns.resource_providers.aws_sns_topic_plugin:SNSTopicProviderPlugin", "AWS::Events::Rule=localstack.services.events.resource_providers.aws_events_rule_plugin:EventsRuleProviderPlugin", "AWS::CloudFormation::Macro=localstack.services.cloudformation.resource_providers.aws_cloudformation_macro_plugin:CloudFormationMacroProviderPlugin", "AWS::Lambda::LayerVersion=localstack.services.lambda_.resource_providers.aws_lambda_layerversion_plugin:LambdaLayerVersionProviderPlugin", "AWS::EC2::PrefixList=localstack.services.ec2.resource_providers.aws_ec2_prefixlist_plugin:EC2PrefixListProviderPlugin", "AWS::EC2::Route=localstack.services.ec2.resource_providers.aws_ec2_route_plugin:EC2RouteProviderPlugin", "AWS::CloudFormation::WaitConditionHandle=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitconditionhandle_plugin:CloudFormationWaitConditionHandleProviderPlugin", "AWS::ApiGateway::Stage=localstack.services.apigateway.resource_providers.aws_apigateway_stage_plugin:ApiGatewayStageProviderPlugin", "AWS::CDK::Metadata=localstack.services.cdk.resource_providers.cdk_metadata_plugin:LambdaAliasProviderPlugin", "AWS::Redshift::Cluster=localstack.services.redshift.resource_providers.aws_redshift_cluster_plugin:RedshiftClusterProviderPlugin", "AWS::Kinesis::StreamConsumer=localstack.services.kinesis.resource_providers.aws_kinesis_streamconsumer_plugin:KinesisStreamConsumerProviderPlugin", "AWS::CertificateManager::Certificate=localstack.services.certificatemanager.resource_providers.aws_certificatemanager_certificate_plugin:CertificateManagerCertificateProviderPlugin", "AWS::Logs::SubscriptionFilter=localstack.services.logs.resource_providers.aws_logs_subscriptionfilter_plugin:LogsSubscriptionFilterProviderPlugin", "AWS::ApiGateway::Account=localstack.services.apigateway.resource_providers.aws_apigateway_account_plugin:ApiGatewayAccountProviderPlugin", "AWS::KMS::Key=localstack.services.kms.resource_providers.aws_kms_key_plugin:KMSKeyProviderPlugin", "AWS::Lambda::Version=localstack.services.lambda_.resource_providers.aws_lambda_version_plugin:LambdaVersionProviderPlugin", "AWS::ApiGateway::UsagePlan=localstack.services.apigateway.resource_providers.aws_apigateway_usageplan_plugin:ApiGatewayUsagePlanProviderPlugin", "AWS::DynamoDB::GlobalTable=localstack.services.dynamodb.resource_providers.aws_dynamodb_globaltable_plugin:DynamoDBGlobalTableProviderPlugin", "AWS::Lambda::Function=localstack.services.lambda_.resource_providers.aws_lambda_function_plugin:LambdaFunctionProviderPlugin", "AWS::ApiGateway::RestApi=localstack.services.apigateway.resource_providers.aws_apigateway_restapi_plugin:ApiGatewayRestApiProviderPlugin", "AWS::Events::ApiDestination=localstack.services.events.resource_providers.aws_events_apidestination_plugin:EventsApiDestinationProviderPlugin", "AWS::EC2::Instance=localstack.services.ec2.resource_providers.aws_ec2_instance_plugin:EC2InstanceProviderPlugin", "AWS::ECR::Repository=localstack.services.ecr.resource_providers.aws_ecr_repository_plugin:ECRRepositoryProviderPlugin", "AWS::IAM::Group=localstack.services.iam.resource_providers.aws_iam_group_plugin:IAMGroupProviderPlugin", "AWS::ApiGateway::Deployment=localstack.services.apigateway.resource_providers.aws_apigateway_deployment_plugin:ApiGatewayDeploymentProviderPlugin", "AWS::SSM::MaintenanceWindowTarget=localstack.services.ssm.resource_providers.aws_ssm_maintenancewindowtarget_plugin:SSMMaintenanceWindowTargetProviderPlugin", "AWS::DynamoDB::Table=localstack.services.dynamodb.resource_providers.aws_dynamodb_table_plugin:DynamoDBTableProviderPlugin", "AWS::Lambda::Permission=localstack.services.lambda_.resource_providers.aws_lambda_permission_plugin:LambdaPermissionProviderPlugin", "AWS::Logs::LogStream=localstack.services.logs.resource_providers.aws_logs_logstream_plugin:LogsLogStreamProviderPlugin", "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::SSM::Parameter=localstack.services.ssm.resource_providers.aws_ssm_parameter_plugin:SSMParameterProviderPlugin", "AWS::IAM::Policy=localstack.services.iam.resource_providers.aws_iam_policy_plugin:IAMPolicyProviderPlugin", "AWS::EC2::KeyPair=localstack.services.ec2.resource_providers.aws_ec2_keypair_plugin:EC2KeyPairProviderPlugin", "AWS::CloudWatch::CompositeAlarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_compositealarm_plugin:CloudWatchCompositeAlarmProviderPlugin", "AWS::EC2::NatGateway=localstack.services.ec2.resource_providers.aws_ec2_natgateway_plugin:EC2NatGatewayProviderPlugin", "AWS::EC2::TransitGateway=localstack.services.ec2.resource_providers.aws_ec2_transitgateway_plugin:EC2TransitGatewayProviderPlugin", "AWS::Lambda::LayerVersionPermission=localstack.services.lambda_.resource_providers.aws_lambda_layerversionpermission_plugin:LambdaLayerVersionPermissionProviderPlugin", "AWS::IAM::User=localstack.services.iam.resource_providers.aws_iam_user_plugin:IAMUserProviderPlugin", "AWS::IAM::ServiceLinkedRole=localstack.services.iam.resource_providers.aws_iam_servicelinkedrole_plugin:IAMServiceLinkedRoleProviderPlugin", "AWS::SSM::PatchBaseline=localstack.services.ssm.resource_providers.aws_ssm_patchbaseline_plugin:SSMPatchBaselineProviderPlugin", "AWS::EC2::VPC=localstack.services.ec2.resource_providers.aws_ec2_vpc_plugin:EC2VPCProviderPlugin", "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::CloudWatch::Alarm=localstack.services.cloudwatch.resource_providers.aws_cloudwatch_alarm_plugin:CloudWatchAlarmProviderPlugin", "AWS::StepFunctions::StateMachine=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_statemachine_plugin:StepFunctionsStateMachineProviderPlugin", "AWS::EC2::NetworkAcl=localstack.services.ec2.resource_providers.aws_ec2_networkacl_plugin:EC2NetworkAclProviderPlugin", "AWS::Lambda::Alias=localstack.services.lambda_.resource_providers.lambda_alias_plugin:LambdaAliasProviderPlugin", "AWS::Events::EventBus=localstack.services.events.resource_providers.aws_events_eventbus_plugin:EventsEventBusProviderPlugin", "AWS::Lambda::EventInvokeConfig=localstack.services.lambda_.resource_providers.aws_lambda_eventinvokeconfig_plugin:LambdaEventInvokeConfigProviderPlugin", "AWS::EC2::VPCGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_vpcgatewayattachment_plugin:EC2VPCGatewayAttachmentProviderPlugin", "AWS::Logs::LogGroup=localstack.services.logs.resource_providers.aws_logs_loggroup_plugin:LogsLogGroupProviderPlugin", "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::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::S3::BucketPolicy=localstack.services.s3.resource_providers.aws_s3_bucketpolicy_plugin:S3BucketPolicyProviderPlugin", "AWS::EC2::VPCEndpoint=localstack.services.ec2.resource_providers.aws_ec2_vpcendpoint_plugin:EC2VPCEndpointProviderPlugin", "AWS::S3::Bucket=localstack.services.s3.resource_providers.aws_s3_bucket_plugin:S3BucketProviderPlugin", "AWS::Scheduler::Schedule=localstack.services.scheduler.resource_providers.aws_scheduler_schedule_plugin:SchedulerScheduleProviderPlugin", "AWS::EC2::TransitGatewayAttachment=localstack.services.ec2.resource_providers.aws_ec2_transitgatewayattachment_plugin:EC2TransitGatewayAttachmentProviderPlugin", "AWS::ApiGateway::RequestValidator=localstack.services.apigateway.resource_providers.aws_apigateway_requestvalidator_plugin:ApiGatewayRequestValidatorProviderPlugin", "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::SQS::Queue=localstack.services.sqs.resource_providers.aws_sqs_queue_plugin:SQSQueueProviderPlugin", "AWS::Events::Connection=localstack.services.events.resource_providers.aws_events_connection_plugin:EventsConnectionProviderPlugin", "AWS::CloudFormation::WaitCondition=localstack.services.cloudformation.resource_providers.aws_cloudformation_waitcondition_plugin:CloudFormationWaitConditionProviderPlugin", "AWS::Elasticsearch::Domain=localstack.services.opensearch.resource_providers.aws_elasticsearch_domain_plugin:ElasticsearchDomainProviderPlugin", "AWS::KinesisFirehose::DeliveryStream=localstack.services.kinesisfirehose.resource_providers.aws_kinesisfirehose_deliverystream_plugin:KinesisFirehoseDeliveryStreamProviderPlugin", "AWS::CloudFormation::Stack=localstack.services.cloudformation.resource_providers.aws_cloudformation_stack_plugin:CloudFormationStackProviderPlugin", "AWS::SNS::Subscription=localstack.services.sns.resource_providers.aws_sns_subscription_plugin:SNSSubscriptionProviderPlugin", "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::Lambda::CodeSigningConfig=localstack.services.lambda_.resource_providers.aws_lambda_codesigningconfig_plugin:LambdaCodeSigningConfigProviderPlugin", "AWS::ApiGateway::Resource=localstack.services.apigateway.resource_providers.aws_apigateway_resource_plugin:ApiGatewayResourceProviderPlugin", "AWS::ApiGateway::Model=localstack.services.apigateway.resource_providers.aws_apigateway_model_plugin:ApiGatewayModelProviderPlugin", "AWS::ResourceGroups::Group=localstack.services.resource_groups.resource_providers.aws_resourcegroups_group_plugin:ResourceGroupsGroupProviderPlugin", "AWS::SNS::TopicPolicy=localstack.services.sns.resource_providers.aws_sns_topicpolicy_plugin:SNSTopicPolicyProviderPlugin", "AWS::ApiGateway::Method=localstack.services.apigateway.resource_providers.aws_apigateway_method_plugin:ApiGatewayMethodProviderPlugin", "AWS::Route53::RecordSet=localstack.services.route53.resource_providers.aws_route53_recordset_plugin:Route53RecordSetProviderPlugin", "AWS::EC2::DHCPOptions=localstack.services.ec2.resource_providers.aws_ec2_dhcpoptions_plugin:EC2DHCPOptionsProviderPlugin", "AWS::IAM::InstanceProfile=localstack.services.iam.resource_providers.aws_iam_instanceprofile_plugin:IAMInstanceProfileProviderPlugin", "AWS::StepFunctions::Activity=localstack.services.stepfunctions.resource_providers.aws_stepfunctions_activity_plugin:StepFunctionsActivityProviderPlugin", "AWS::ApiGateway::UsagePlanKey=localstack.services.apigateway.resource_providers.aws_apigateway_usageplankey_plugin:ApiGatewayUsagePlanKeyProviderPlugin", "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::Url=localstack.services.lambda_.resource_providers.aws_lambda_url_plugin:LambdaUrlProviderPlugin", "AWS::SecretsManager::Secret=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_secret_plugin:SecretsManagerSecretProviderPlugin", "AWS::IAM::ServerCertificate=localstack.services.iam.resource_providers.aws_iam_servercertificate_plugin:IAMServerCertificateProviderPlugin", "AWS::IAM::Role=localstack.services.iam.resource_providers.aws_iam_role_plugin:IAMRoleProviderPlugin", "AWS::IAM::AccessKey=localstack.services.iam.resource_providers.aws_iam_accesskey_plugin:IAMAccessKeyProviderPlugin", "AWS::Events::EventBusPolicy=localstack.services.events.resource_providers.aws_events_eventbuspolicy_plugin:EventsEventBusPolicyProviderPlugin", "AWS::SecretsManager::RotationSchedule=localstack.services.secretsmanager.resource_providers.aws_secretsmanager_rotationschedule_plugin:SecretsManagerRotationScheduleProviderPlugin", "AWS::EC2::Subnet=localstack.services.ec2.resource_providers.aws_ec2_subnet_plugin:EC2SubnetProviderPlugin"], "localstack.runtime.components": ["aws=localstack.aws.components:AwsComponents"], "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", "_publish_config_as_analytics_event=localstack.runtime.analytics:_publish_config_as_analytics_event", "_publish_container_info=localstack.runtime.analytics:_publish_container_info", "delete_cached_certificate=localstack.plugins:delete_cached_certificate", "deprecation_warnings=localstack.plugins:deprecation_warnings", "_patch_botocore_endpoint_in_memory=localstack.aws.client:_patch_botocore_endpoint_in_memory", "_patch_botocore_json_parser=localstack.aws.client:_patch_botocore_json_parser", "_patch_cbor2=localstack.aws.client:_patch_cbor2", "_run_init_scripts_on_start=localstack.runtime.init:_run_init_scripts_on_start", "register_custom_endpoints=localstack.services.lambda_.plugins:register_custom_endpoints", "validate_configuration=localstack.services.lambda_.plugins:validate_configuration", "register_cloudformation_deploy_ui=localstack.services.cloudformation.plugins:register_cloudformation_deploy_ui", "register_swagger_endpoints=localstack.http.resources.swagger.plugins:register_swagger_endpoints", "apply_runtime_patches=localstack.runtime.patches:apply_runtime_patches", "eager_load_services=localstack.services.plugins:eager_load_services", "apply_aws_runtime_patches=localstack.aws.patches:apply_aws_runtime_patches", "conditionally_enable_debugger=localstack.dev.debugger.plugins:conditionally_enable_debugger"], "localstack.hooks.on_infra_shutdown": ["stop_server=localstack.dns.plugins:stop_server", "_run_init_scripts_on_shutdown=localstack.runtime.init:_run_init_scripts_on_shutdown", "publish_metrics=localstack.utils.analytics.metrics.publisher:publish_metrics", "run_on_after_service_shutdown_handlers=localstack.runtime.shutdown:run_on_after_service_shutdown_handlers", "run_shutdown_handlers=localstack.runtime.shutdown:run_shutdown_handlers", "shutdown_services=localstack.runtime.shutdown:shutdown_services", "remove_custom_endpoints=localstack.services.lambda_.plugins:remove_custom_endpoints"], "localstack.packages": ["vosk/community=localstack.services.transcribe.plugins:vosk_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", "dynamodb-local/community=localstack.services.dynamodb.plugins:dynamodb_local_package", "kinesis-mock/community=localstack.services.kinesis.plugins:kinesismock_package", "lambda-java-libs/community=localstack.services.lambda_.plugins:lambda_java_libs", "lambda-runtime/community=localstack.services.lambda_.plugins:lambda_runtime_package", "opensearch/community=localstack.services.opensearch.plugins:opensearch_package", "jpype-jsonata/community=localstack.services.stepfunctions.plugins:jpype_jsonata_package"], "localstack.lambda.runtime_executor": ["docker=localstack.services.lambda_.invocation.plugins:DockerRuntimeExecutorPlugin"], "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"], "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.runtime.server": ["hypercorn=localstack.runtime.server.plugins:HypercornRuntimeServerPlugin", "twisted=localstack.runtime.server.plugins:TwistedRuntimeServerPlugin"]}