localstack-core 4.10.1.dev42__py3-none-any.whl → 4.12.1.dev18__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. localstack/aws/api/apigateway/__init__.py +42 -0
  2. localstack/aws/api/cloudformation/__init__.py +161 -0
  3. localstack/aws/api/ec2/__init__.py +1178 -12
  4. localstack/aws/api/iam/__init__.py +228 -0
  5. localstack/aws/api/kms/__init__.py +1 -0
  6. localstack/aws/api/lambda_/__init__.py +1034 -66
  7. localstack/aws/api/logs/__init__.py +500 -0
  8. localstack/aws/api/opensearch/__init__.py +100 -0
  9. localstack/aws/api/redshift/__init__.py +69 -0
  10. localstack/aws/api/resourcegroupstaggingapi/__init__.py +36 -0
  11. localstack/aws/api/route53/__init__.py +45 -0
  12. localstack/aws/api/route53resolver/__init__.py +1 -0
  13. localstack/aws/api/s3/__init__.py +64 -0
  14. localstack/aws/api/s3control/__init__.py +19 -0
  15. localstack/aws/api/secretsmanager/__init__.py +37 -23
  16. localstack/aws/api/stepfunctions/__init__.py +52 -10
  17. localstack/aws/api/sts/__init__.py +52 -0
  18. localstack/aws/connect.py +35 -15
  19. localstack/aws/handlers/logging.py +8 -4
  20. localstack/aws/handlers/service.py +11 -2
  21. localstack/aws/protocol/serializer.py +1 -1
  22. localstack/config.py +8 -0
  23. localstack/constants.py +3 -0
  24. localstack/deprecations.py +0 -6
  25. localstack/dev/kubernetes/__main__.py +39 -14
  26. localstack/runtime/analytics.py +11 -0
  27. localstack/services/acm/provider.py +17 -1
  28. localstack/services/apigateway/legacy/provider.py +28 -15
  29. localstack/services/cloudformation/engine/template_preparer.py +6 -2
  30. localstack/services/cloudformation/engine/v2/change_set_model.py +9 -0
  31. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +15 -1
  32. localstack/services/cloudformation/engine/v2/change_set_resource_support_checker.py +114 -0
  33. localstack/services/cloudformation/provider.py +26 -1
  34. localstack/services/cloudformation/provider_utils.py +20 -0
  35. localstack/services/cloudformation/resource_provider.py +5 -4
  36. localstack/services/cloudformation/scaffolding/__main__.py +94 -22
  37. localstack/services/cloudformation/v2/provider.py +41 -0
  38. localstack/services/cloudwatch/provider.py +10 -3
  39. localstack/services/cloudwatch/provider_v2.py +6 -3
  40. localstack/services/configservice/provider.py +5 -1
  41. localstack/services/dynamodb/provider.py +1 -0
  42. localstack/services/dynamodb/v2/provider.py +1 -0
  43. localstack/services/dynamodbstreams/provider.py +6 -0
  44. localstack/services/dynamodbstreams/v2/provider.py +6 -0
  45. localstack/services/ec2/provider.py +6 -0
  46. localstack/services/es/provider.py +6 -0
  47. localstack/services/events/provider.py +4 -0
  48. localstack/services/events/v1/provider.py +9 -0
  49. localstack/services/firehose/provider.py +5 -0
  50. localstack/services/iam/provider.py +4 -0
  51. localstack/services/kinesis/packages.py +1 -1
  52. localstack/services/kms/models.py +16 -22
  53. localstack/services/kms/provider.py +4 -0
  54. localstack/services/lambda_/analytics.py +11 -2
  55. localstack/services/lambda_/api_utils.py +37 -20
  56. localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
  57. localstack/services/lambda_/invocation/assignment.py +4 -1
  58. localstack/services/lambda_/invocation/event_manager.py +15 -11
  59. localstack/services/lambda_/invocation/execution_environment.py +21 -2
  60. localstack/services/lambda_/invocation/lambda_models.py +31 -2
  61. localstack/services/lambda_/invocation/lambda_service.py +62 -3
  62. localstack/services/lambda_/invocation/models.py +9 -1
  63. localstack/services/lambda_/invocation/version_manager.py +18 -3
  64. localstack/services/lambda_/provider.py +307 -106
  65. localstack/services/lambda_/resource_providers/aws_lambda_function.py +33 -1
  66. localstack/services/lambda_/runtimes.py +3 -1
  67. localstack/services/logs/provider.py +9 -0
  68. localstack/services/opensearch/packages.py +34 -20
  69. localstack/services/opensearch/provider.py +53 -3
  70. localstack/services/resource_groups/provider.py +5 -1
  71. localstack/services/resourcegroupstaggingapi/provider.py +6 -1
  72. localstack/services/route53/provider.py +7 -0
  73. localstack/services/route53resolver/provider.py +5 -0
  74. localstack/services/s3/constants.py +5 -0
  75. localstack/services/s3/exceptions.py +9 -0
  76. localstack/services/s3/models.py +9 -1
  77. localstack/services/s3/provider.py +51 -43
  78. localstack/services/s3/utils.py +81 -15
  79. localstack/services/s3control/provider.py +107 -2
  80. localstack/services/s3control/validation.py +50 -0
  81. localstack/services/scheduler/provider.py +4 -2
  82. localstack/services/secretsmanager/provider.py +4 -0
  83. localstack/services/ses/provider.py +4 -0
  84. localstack/services/sns/constants.py +16 -1
  85. localstack/services/sns/provider.py +5 -0
  86. localstack/services/sns/publisher.py +15 -6
  87. localstack/services/sns/v2/models.py +9 -0
  88. localstack/services/sns/v2/provider.py +750 -19
  89. localstack/services/sns/v2/utils.py +12 -0
  90. localstack/services/sqs/constants.py +6 -0
  91. localstack/services/sqs/provider.py +9 -1
  92. localstack/services/sqs/resource_providers/aws_sqs_queue.py +61 -46
  93. localstack/services/ssm/provider.py +6 -0
  94. localstack/services/stepfunctions/asl/component/common/path/result_path.py +1 -1
  95. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +0 -1
  96. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +0 -1
  97. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +8 -8
  98. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/{mock_eval_utils.py → local_mock_eval_utils.py} +13 -9
  99. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +6 -6
  100. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +1 -1
  101. localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +4 -0
  102. localstack/services/stepfunctions/asl/component/test_state/state/base_mock.py +118 -0
  103. localstack/services/stepfunctions/asl/component/test_state/state/common.py +82 -0
  104. localstack/services/stepfunctions/asl/component/test_state/state/execution.py +139 -0
  105. localstack/services/stepfunctions/asl/component/test_state/state/map.py +77 -0
  106. localstack/services/stepfunctions/asl/component/test_state/state/task.py +44 -0
  107. localstack/services/stepfunctions/asl/eval/environment.py +30 -22
  108. localstack/services/stepfunctions/asl/eval/states.py +1 -1
  109. localstack/services/stepfunctions/asl/eval/test_state/environment.py +49 -9
  110. localstack/services/stepfunctions/asl/eval/test_state/program_state.py +22 -0
  111. localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -1
  112. localstack/services/stepfunctions/asl/parse/preprocessor.py +67 -24
  113. localstack/services/stepfunctions/asl/parse/test_state/asl_parser.py +5 -4
  114. localstack/services/stepfunctions/asl/parse/test_state/preprocessor.py +222 -31
  115. localstack/services/stepfunctions/asl/static_analyser/test_state/test_state_analyser.py +256 -22
  116. localstack/services/stepfunctions/backend/execution.py +10 -11
  117. localstack/services/stepfunctions/backend/execution_worker.py +5 -5
  118. localstack/services/stepfunctions/backend/test_state/execution.py +36 -0
  119. localstack/services/stepfunctions/backend/test_state/execution_worker.py +33 -1
  120. localstack/services/stepfunctions/backend/test_state/test_state_mock.py +127 -0
  121. localstack/services/stepfunctions/local_mocking/__init__.py +9 -0
  122. localstack/services/stepfunctions/{mocking → local_mocking}/mock_config.py +24 -17
  123. localstack/services/stepfunctions/provider.py +83 -25
  124. localstack/services/stepfunctions/test_state/mock_config.py +47 -0
  125. localstack/services/sts/provider.py +7 -0
  126. localstack/services/support/provider.py +5 -1
  127. localstack/services/swf/provider.py +5 -1
  128. localstack/services/transcribe/provider.py +7 -0
  129. localstack/testing/aws/lambda_utils.py +1 -1
  130. localstack/testing/aws/util.py +2 -1
  131. localstack/testing/config.py +1 -0
  132. localstack/testing/pytest/fixtures.py +28 -0
  133. localstack/testing/snapshots/transformer_utility.py +5 -0
  134. localstack/utils/analytics/publisher.py +37 -155
  135. localstack/utils/analytics/service_request_aggregator.py +6 -4
  136. localstack/utils/aws/arns.py +7 -0
  137. localstack/utils/aws/client_types.py +2 -4
  138. localstack/utils/batching.py +258 -0
  139. localstack/utils/bootstrap.py +2 -2
  140. localstack/utils/catalog/catalog.py +3 -2
  141. localstack/utils/collections.py +23 -11
  142. localstack/utils/container_utils/container_client.py +22 -13
  143. localstack/utils/container_utils/docker_cmd_client.py +6 -6
  144. localstack/version.py +2 -2
  145. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/METADATA +7 -7
  146. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/RECORD +155 -146
  147. localstack_core-4.12.1.dev18.dist-info/plux.json +1 -0
  148. localstack/services/stepfunctions/mocking/__init__.py +0 -0
  149. localstack/utils/batch_policy.py +0 -124
  150. localstack_core-4.10.1.dev42.dist-info/plux.json +0 -1
  151. /localstack/services/stepfunctions/{mocking → local_mocking}/mock_config_file.py +0 -0
  152. {localstack_core-4.10.1.dev42.data → localstack_core-4.12.1.dev18.data}/scripts/localstack +0 -0
  153. {localstack_core-4.10.1.dev42.data → localstack_core-4.12.1.dev18.data}/scripts/localstack-supervisor +0 -0
  154. {localstack_core-4.10.1.dev42.data → localstack_core-4.12.1.dev18.data}/scripts/localstack.bat +0 -0
  155. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/WHEEL +0 -0
  156. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/entry_points.txt +0 -0
  157. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/licenses/LICENSE.txt +0 -0
  158. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.12.1.dev18.dist-info}/top_level.txt +0 -0
@@ -46,12 +46,14 @@ IdentityCenterApplicationARN = str
46
46
  IdentityCenterInstanceARN = str
47
47
  IdentityPoolId = str
48
48
  IdentityStoreId = str
49
+ IndexName = str
49
50
  InstanceCount = int
50
51
  InstanceRole = str
51
52
  InstanceTypeString = str
52
53
  Integer = int
53
54
  IntegerClass = int
54
55
  Issue = str
56
+ KmsKeyArn = str
55
57
  KmsKeyId = str
56
58
  LicenseFilepath = str
57
59
  LimitName = str
@@ -262,6 +264,12 @@ class InboundConnectionStatusCode(StrEnum):
262
264
  DELETED = "DELETED"
263
265
 
264
266
 
267
+ class IndexStatus(StrEnum):
268
+ CREATED = "CREATED"
269
+ UPDATED = "UPDATED"
270
+ DELETED = "DELETED"
271
+
272
+
265
273
  class InitiatedBy(StrEnum):
266
274
  CUSTOMER = "CUSTOMER"
267
275
  SERVICE = "SERVICE"
@@ -679,12 +687,22 @@ class SlotNotAvailableException(ServiceException):
679
687
  SlotSuggestions: SlotList | None
680
688
 
681
689
 
690
+ class ThrottlingException(ServiceException):
691
+ code: str = "ThrottlingException"
692
+ sender_fault: bool = False
693
+ status_code: int = 429
694
+
695
+
682
696
  class ValidationException(ServiceException):
683
697
  code: str = "ValidationException"
684
698
  sender_fault: bool = False
685
699
  status_code: int = 400
686
700
 
687
701
 
702
+ class ServerlessVectorAcceleration(TypedDict, total=False):
703
+ Enabled: Boolean | None
704
+
705
+
688
706
  class S3VectorsEngine(TypedDict, total=False):
689
707
  Enabled: Boolean | None
690
708
 
@@ -696,6 +714,7 @@ class NaturalLanguageQueryGenerationOptionsInput(TypedDict, total=False):
696
714
  class AIMLOptionsInput(TypedDict, total=False):
697
715
  NaturalLanguageQueryGenerationOptions: NaturalLanguageQueryGenerationOptionsInput | None
698
716
  S3VectorsEngine: S3VectorsEngine | None
717
+ ServerlessVectorAcceleration: ServerlessVectorAcceleration | None
699
718
 
700
719
 
701
720
  class NaturalLanguageQueryGenerationOptionsOutput(TypedDict, total=False):
@@ -706,6 +725,7 @@ class NaturalLanguageQueryGenerationOptionsOutput(TypedDict, total=False):
706
725
  class AIMLOptionsOutput(TypedDict, total=False):
707
726
  NaturalLanguageQueryGenerationOptions: NaturalLanguageQueryGenerationOptionsOutput | None
708
727
  S3VectorsEngine: S3VectorsEngine | None
728
+ ServerlessVectorAcceleration: ServerlessVectorAcceleration | None
709
729
 
710
730
 
711
731
  UpdateTimestamp = datetime
@@ -1281,6 +1301,7 @@ class CreateApplicationRequest(ServiceRequest):
1281
1301
  iamIdentityCenterOptions: IamIdentityCenterOptionsInput | None
1282
1302
  appConfigs: AppConfigs | None
1283
1303
  tagList: TagList | None
1304
+ kmsKeyArn: KmsKeyArn | None
1284
1305
 
1285
1306
 
1286
1307
  class IamIdentityCenterOptions(TypedDict, total=False):
@@ -1299,6 +1320,7 @@ class CreateApplicationResponse(TypedDict, total=False):
1299
1320
  appConfigs: AppConfigs | None
1300
1321
  tagList: TagList | None
1301
1322
  createdAt: Timestamp | None
1323
+ kmsKeyArn: KmsKeyArn | None
1302
1324
 
1303
1325
 
1304
1326
  class SoftwareUpdateOptions(TypedDict, total=False):
@@ -1466,6 +1488,20 @@ class CreateDomainResponse(TypedDict, total=False):
1466
1488
  DomainStatus: DomainStatus | None
1467
1489
 
1468
1490
 
1491
+ class IndexSchema(TypedDict, total=False):
1492
+ pass
1493
+
1494
+
1495
+ class CreateIndexRequest(ServiceRequest):
1496
+ DomainName: DomainName
1497
+ IndexName: IndexName
1498
+ IndexSchema: IndexSchema
1499
+
1500
+
1501
+ class CreateIndexResponse(TypedDict, total=False):
1502
+ Status: IndexStatus
1503
+
1504
+
1469
1505
  class CreateOutboundConnectionRequest(ServiceRequest):
1470
1506
  LocalDomainInfo: DomainInformationContainer
1471
1507
  RemoteDomainInfo: DomainInformationContainer
@@ -1625,6 +1661,15 @@ class DeleteInboundConnectionResponse(TypedDict, total=False):
1625
1661
  Connection: InboundConnection | None
1626
1662
 
1627
1663
 
1664
+ class DeleteIndexRequest(ServiceRequest):
1665
+ DomainName: DomainName
1666
+ IndexName: IndexName
1667
+
1668
+
1669
+ class DeleteIndexResponse(TypedDict, total=False):
1670
+ Status: IndexStatus
1671
+
1672
+
1628
1673
  class DeleteOutboundConnectionRequest(ServiceRequest):
1629
1674
  ConnectionId: ConnectionId
1630
1675
 
@@ -2144,6 +2189,7 @@ class GetApplicationResponse(TypedDict, total=False):
2144
2189
  appConfigs: AppConfigs | None
2145
2190
  createdAt: Timestamp | None
2146
2191
  lastUpdatedAt: Timestamp | None
2192
+ kmsKeyArn: KmsKeyArn | None
2147
2193
 
2148
2194
 
2149
2195
  class GetCompatibleVersionsRequest(ServiceRequest):
@@ -2200,6 +2246,15 @@ class GetDomainMaintenanceStatusResponse(TypedDict, total=False):
2200
2246
  UpdatedAt: UpdateTimestamp | None
2201
2247
 
2202
2248
 
2249
+ class GetIndexRequest(ServiceRequest):
2250
+ DomainName: DomainName
2251
+ IndexName: IndexName
2252
+
2253
+
2254
+ class GetIndexResponse(TypedDict, total=False):
2255
+ IndexSchema: IndexSchema
2256
+
2257
+
2203
2258
  class GetPackageVersionHistoryRequest(ServiceRequest):
2204
2259
  PackageID: PackageID
2205
2260
  MaxResults: MaxResults | None
@@ -2579,6 +2634,16 @@ class UpdateDomainConfigResponse(TypedDict, total=False):
2579
2634
  DryRunProgressStatus: DryRunProgressStatus | None
2580
2635
 
2581
2636
 
2637
+ class UpdateIndexRequest(ServiceRequest):
2638
+ DomainName: DomainName
2639
+ IndexName: IndexName
2640
+ IndexSchema: IndexSchema
2641
+
2642
+
2643
+ class UpdateIndexResponse(TypedDict, total=False):
2644
+ Status: IndexStatus
2645
+
2646
+
2582
2647
  class UpdatePackageRequest(ServiceRequest):
2583
2648
  PackageID: PackageID
2584
2649
  PackageSource: PackageSource
@@ -2739,6 +2804,7 @@ class OpensearchApi:
2739
2804
  iam_identity_center_options: IamIdentityCenterOptionsInput | None = None,
2740
2805
  app_configs: AppConfigs | None = None,
2741
2806
  tag_list: TagList | None = None,
2807
+ kms_key_arn: KmsKeyArn | None = None,
2742
2808
  **kwargs,
2743
2809
  ) -> CreateApplicationResponse:
2744
2810
  raise NotImplementedError
@@ -2772,6 +2838,17 @@ class OpensearchApi:
2772
2838
  ) -> CreateDomainResponse:
2773
2839
  raise NotImplementedError
2774
2840
 
2841
+ @handler("CreateIndex")
2842
+ def create_index(
2843
+ self,
2844
+ context: RequestContext,
2845
+ domain_name: DomainName,
2846
+ index_name: IndexName,
2847
+ index_schema: IndexSchema,
2848
+ **kwargs,
2849
+ ) -> CreateIndexResponse:
2850
+ raise NotImplementedError
2851
+
2775
2852
  @handler("CreateOutboundConnection")
2776
2853
  def create_outbound_connection(
2777
2854
  self,
@@ -2842,6 +2919,12 @@ class OpensearchApi:
2842
2919
  ) -> DeleteInboundConnectionResponse:
2843
2920
  raise NotImplementedError
2844
2921
 
2922
+ @handler("DeleteIndex")
2923
+ def delete_index(
2924
+ self, context: RequestContext, domain_name: DomainName, index_name: IndexName, **kwargs
2925
+ ) -> DeleteIndexResponse:
2926
+ raise NotImplementedError
2927
+
2845
2928
  @handler("DeleteOutboundConnection")
2846
2929
  def delete_outbound_connection(
2847
2930
  self, context: RequestContext, connection_id: ConnectionId, **kwargs
@@ -3044,6 +3127,12 @@ class OpensearchApi:
3044
3127
  ) -> GetDomainMaintenanceStatusResponse:
3045
3128
  raise NotImplementedError
3046
3129
 
3130
+ @handler("GetIndex")
3131
+ def get_index(
3132
+ self, context: RequestContext, domain_name: DomainName, index_name: IndexName, **kwargs
3133
+ ) -> GetIndexResponse:
3134
+ raise NotImplementedError
3135
+
3047
3136
  @handler("GetPackageVersionHistory")
3048
3137
  def get_package_version_history(
3049
3138
  self,
@@ -3328,6 +3417,17 @@ class OpensearchApi:
3328
3417
  ) -> UpdateDomainConfigResponse:
3329
3418
  raise NotImplementedError
3330
3419
 
3420
+ @handler("UpdateIndex")
3421
+ def update_index(
3422
+ self,
3423
+ context: RequestContext,
3424
+ domain_name: DomainName,
3425
+ index_name: IndexName,
3426
+ index_schema: IndexSchema,
3427
+ **kwargs,
3428
+ ) -> UpdateIndexResponse:
3429
+ raise NotImplementedError
3430
+
3331
3431
  @handler("UpdatePackage")
3332
3432
  def update_package(
3333
3433
  self,
@@ -7,6 +7,7 @@ from localstack.aws.api import RequestContext, ServiceException, ServiceRequest,
7
7
  AuthenticationProfileNameString = str
8
8
  Boolean = bool
9
9
  BooleanOptional = bool
10
+ CatalogNameString = str
10
11
  CustomDomainCertificateArnString = str
11
12
  CustomDomainNameString = str
12
13
  Description = str
@@ -39,6 +40,11 @@ class ActionType(StrEnum):
39
40
  resize_cluster = "resize-cluster"
40
41
 
41
42
 
43
+ class ApplicationType(StrEnum):
44
+ None_ = "None"
45
+ Lakehouse = "Lakehouse"
46
+
47
+
42
48
  class AquaConfigurationStatus(StrEnum):
43
49
  enabled = "enabled"
44
50
  disabled = "disabled"
@@ -95,6 +101,16 @@ class ImpactRankingType(StrEnum):
95
101
  LOW = "LOW"
96
102
 
97
103
 
104
+ class LakehouseIdcRegistration(StrEnum):
105
+ Associate = "Associate"
106
+ Disassociate = "Disassociate"
107
+
108
+
109
+ class LakehouseRegistration(StrEnum):
110
+ Register = "Register"
111
+ Deregister = "Deregister"
112
+
113
+
98
114
  class LogDestinationType(StrEnum):
99
115
  s3 = "s3"
100
116
  cloudwatch = "cloudwatch"
@@ -1627,6 +1643,8 @@ class Cluster(TypedDict, total=False):
1627
1643
  IpAddressType: String | None
1628
1644
  MultiAZ: String | None
1629
1645
  MultiAZSecondary: SecondaryClusterInfo | None
1646
+ LakehouseRegistrationStatus: String | None
1647
+ CatalogArn: String | None
1630
1648
 
1631
1649
 
1632
1650
  class ClusterCredentials(TypedDict, total=False):
@@ -1768,6 +1786,10 @@ class ClustersMessage(TypedDict, total=False):
1768
1786
  Clusters: ClusterList | None
1769
1787
 
1770
1788
 
1789
+ class Connect(TypedDict, total=False):
1790
+ Authorization: ServiceAuthorization
1791
+
1792
+
1771
1793
  ConsumerIdentifierList = list[String]
1772
1794
 
1773
1795
 
@@ -1836,6 +1858,7 @@ class CreateClusterMessage(ServiceRequest):
1836
1858
  IpAddressType: String | None
1837
1859
  MultiAZ: BooleanOptional | None
1838
1860
  RedshiftIdcApplicationArn: String | None
1861
+ CatalogName: CatalogNameString | None
1839
1862
 
1840
1863
 
1841
1864
  class CreateClusterParameterGroupMessage(ServiceRequest):
@@ -1995,6 +2018,13 @@ class CreateIntegrationMessage(ServiceRequest):
1995
2018
  TagKeyList = list[String]
1996
2019
 
1997
2020
 
2021
+ class RedshiftScopeUnion(TypedDict, total=False):
2022
+ Connect: Connect | None
2023
+
2024
+
2025
+ RedshiftServiceIntegrations = list[RedshiftScopeUnion]
2026
+
2027
+
1998
2028
  class ReadWriteAccess(TypedDict, total=False):
1999
2029
  Authorization: ServiceAuthorization
2000
2030
 
@@ -2020,6 +2050,7 @@ LakeFormationServiceIntegrations = list[LakeFormationScopeUnion]
2020
2050
  class ServiceIntegrationsUnion(TypedDict, total=False):
2021
2051
  LakeFormation: LakeFormationServiceIntegrations | None
2022
2052
  S3AccessGrants: S3AccessGrantsServiceIntegrations | None
2053
+ Redshift: RedshiftServiceIntegrations | None
2023
2054
 
2024
2055
 
2025
2056
  ServiceIntegrationList = list[ServiceIntegrationsUnion]
@@ -2033,6 +2064,7 @@ class CreateRedshiftIdcApplicationMessage(ServiceRequest):
2033
2064
  IamRoleArn: String
2034
2065
  AuthorizedTokenIssuerList: AuthorizedTokenIssuerList | None
2035
2066
  ServiceIntegrations: ServiceIntegrationList | None
2067
+ ApplicationType: ApplicationType | None
2036
2068
  Tags: TagList | None
2037
2069
  SsoTagKeys: TagKeyList | None
2038
2070
 
@@ -2048,6 +2080,7 @@ class RedshiftIdcApplication(TypedDict, total=False):
2048
2080
  IdcOnboardStatus: String | None
2049
2081
  AuthorizedTokenIssuerList: AuthorizedTokenIssuerList | None
2050
2082
  ServiceIntegrations: ServiceIntegrationList | None
2083
+ ApplicationType: ApplicationType | None
2051
2084
  Tags: TagList | None
2052
2085
  SsoTagKeys: TagKeyList | None
2053
2086
 
@@ -3010,6 +3043,13 @@ class IntegrationsMessage(TypedDict, total=False):
3010
3043
  Integrations: IntegrationList | None
3011
3044
 
3012
3045
 
3046
+ class LakehouseConfiguration(TypedDict, total=False):
3047
+ ClusterIdentifier: String | None
3048
+ LakehouseIdcApplicationArn: String | None
3049
+ LakehouseRegistrationStatus: String | None
3050
+ CatalogArn: String | None
3051
+
3052
+
3013
3053
  class ListRecommendationsMessage(ServiceRequest):
3014
3054
  ClusterIdentifier: String | None
3015
3055
  NamespaceArn: String | None
@@ -3232,6 +3272,15 @@ class ModifyIntegrationMessage(ServiceRequest):
3232
3272
  IntegrationName: IntegrationName | None
3233
3273
 
3234
3274
 
3275
+ class ModifyLakehouseConfigurationMessage(ServiceRequest):
3276
+ ClusterIdentifier: String
3277
+ LakehouseRegistration: LakehouseRegistration | None
3278
+ CatalogName: CatalogNameString | None
3279
+ LakehouseIdcRegistration: LakehouseIdcRegistration | None
3280
+ LakehouseIdcApplicationArn: String | None
3281
+ DryRun: BooleanOptional | None
3282
+
3283
+
3235
3284
  class ModifyRedshiftIdcApplicationMessage(ServiceRequest):
3236
3285
  RedshiftIdcApplicationArn: String
3237
3286
  IdentityNamespace: IdentityNamespaceString | None
@@ -3442,6 +3491,8 @@ class RestoreFromClusterSnapshotMessage(ServiceRequest):
3442
3491
  MasterPasswordSecretKmsKeyId: String | None
3443
3492
  IpAddressType: String | None
3444
3493
  MultiAZ: BooleanOptional | None
3494
+ CatalogName: CatalogNameString | None
3495
+ RedshiftIdcApplicationArn: String | None
3445
3496
 
3446
3497
 
3447
3498
  class RestoreFromClusterSnapshotResult(TypedDict, total=False):
@@ -3792,6 +3843,7 @@ class RedshiftApi:
3792
3843
  ip_address_type: String | None = None,
3793
3844
  multi_az: BooleanOptional | None = None,
3794
3845
  redshift_idc_application_arn: String | None = None,
3846
+ catalog_name: CatalogNameString | None = None,
3795
3847
  **kwargs,
3796
3848
  ) -> CreateClusterResult:
3797
3849
  raise NotImplementedError
@@ -3934,6 +3986,7 @@ class RedshiftApi:
3934
3986
  identity_namespace: IdentityNamespaceString | None = None,
3935
3987
  authorized_token_issuer_list: AuthorizedTokenIssuerList | None = None,
3936
3988
  service_integrations: ServiceIntegrationList | None = None,
3989
+ application_type: ApplicationType | None = None,
3937
3990
  tags: TagList | None = None,
3938
3991
  sso_tag_keys: TagKeyList | None = None,
3939
3992
  **kwargs,
@@ -4957,6 +5010,20 @@ class RedshiftApi:
4957
5010
  ) -> Integration:
4958
5011
  raise NotImplementedError
4959
5012
 
5013
+ @handler("ModifyLakehouseConfiguration")
5014
+ def modify_lakehouse_configuration(
5015
+ self,
5016
+ context: RequestContext,
5017
+ cluster_identifier: String,
5018
+ lakehouse_registration: LakehouseRegistration | None = None,
5019
+ catalog_name: CatalogNameString | None = None,
5020
+ lakehouse_idc_registration: LakehouseIdcRegistration | None = None,
5021
+ lakehouse_idc_application_arn: String | None = None,
5022
+ dry_run: BooleanOptional | None = None,
5023
+ **kwargs,
5024
+ ) -> LakehouseConfiguration:
5025
+ raise NotImplementedError
5026
+
4960
5027
  @handler("ModifyRedshiftIdcApplication")
4961
5028
  def modify_redshift_idc_application(
4962
5029
  self,
@@ -5130,6 +5197,8 @@ class RedshiftApi:
5130
5197
  master_password_secret_kms_key_id: String | None = None,
5131
5198
  ip_address_type: String | None = None,
5132
5199
  multi_az: BooleanOptional | None = None,
5200
+ catalog_name: CatalogNameString | None = None,
5201
+ redshift_idc_application_arn: String | None = None,
5133
5202
  **kwargs,
5134
5203
  ) -> RestoreFromClusterSnapshotResult:
5135
5204
  raise NotImplementedError
@@ -4,16 +4,19 @@ from typing import TypedDict
4
4
  from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
5
5
 
6
6
  AmazonResourceType = str
7
+ CloudFormationResourceType = str
7
8
  ComplianceStatus = bool
8
9
  ErrorMessage = str
9
10
  ExceptionMessage = str
10
11
  ExcludeCompliantResources = bool
11
12
  IncludeComplianceDetails = bool
12
13
  LastUpdated = str
14
+ MaxResultsForListRequiredTags = int
13
15
  MaxResultsGetComplianceSummary = int
14
16
  PaginationToken = str
15
17
  Region = str
16
18
  ResourceARN = str
19
+ ResourceType = str
17
20
  ResourcesPerPage = int
18
21
  S3Bucket = str
19
22
  S3Location = str
@@ -78,6 +81,7 @@ class ThrottledException(ServiceException):
78
81
  status_code: int = 400
79
82
 
80
83
 
84
+ CloudFormationResourceTypes = list[CloudFormationResourceType]
81
85
  TagKeyList = list[TagKey]
82
86
 
83
87
 
@@ -208,6 +212,28 @@ class GetTagValuesOutput(TypedDict, total=False):
208
212
  TagValues: TagValuesOutputList | None
209
213
 
210
214
 
215
+ class ListRequiredTagsInput(ServiceRequest):
216
+ NextToken: PaginationToken | None
217
+ MaxResults: MaxResultsForListRequiredTags | None
218
+
219
+
220
+ ReportingTagKeys = list[TagKey]
221
+
222
+
223
+ class RequiredTag(TypedDict, total=False):
224
+ ResourceType: ResourceType | None
225
+ CloudFormationResourceTypes: CloudFormationResourceTypes | None
226
+ ReportingTagKeys: ReportingTagKeys | None
227
+
228
+
229
+ RequiredTagsForListRequiredTags = list[RequiredTag]
230
+
231
+
232
+ class ListRequiredTagsOutput(TypedDict, total=False):
233
+ RequiredTags: RequiredTagsForListRequiredTags | None
234
+ NextToken: PaginationToken | None
235
+
236
+
211
237
  ResourceARNListForTagUntag = list[ResourceARN]
212
238
 
213
239
 
@@ -298,6 +324,16 @@ class ResourcegroupstaggingapiApi:
298
324
  ) -> GetTagValuesOutput:
299
325
  raise NotImplementedError
300
326
 
327
+ @handler("ListRequiredTags")
328
+ def list_required_tags(
329
+ self,
330
+ context: RequestContext,
331
+ next_token: PaginationToken | None = None,
332
+ max_results: MaxResultsForListRequiredTags | None = None,
333
+ **kwargs,
334
+ ) -> ListRequiredTagsOutput:
335
+ raise NotImplementedError
336
+
301
337
  @handler("StartReportCreation")
302
338
  def start_report_creation(
303
339
  self, context: RequestContext, s3_bucket: S3Bucket, **kwargs
@@ -7,6 +7,7 @@ from localstack.aws.api import RequestContext, ServiceException, ServiceRequest,
7
7
  ARN = str
8
8
  AWSAccountID = str
9
9
  AWSRegion = str
10
+ AcceleratedRecoveryEnabled = bool
10
11
  AlarmName = str
11
12
  AliasHealthEnabled = bool
12
13
  AssociateVPCComment = str
@@ -26,6 +27,7 @@ DisassociateVPCComment = str
26
27
  EnableSNI = bool
27
28
  ErrorMessage = str
28
29
  EvaluationPeriods = int
30
+ FailureReason = str
29
31
  FailureThreshold = int
30
32
  FullyQualifiedDomainName = str
31
33
  GeoLocationContinentCode = str
@@ -98,6 +100,17 @@ UUID = str
98
100
  VPCId = str
99
101
 
100
102
 
103
+ class AcceleratedRecoveryStatus(StrEnum):
104
+ ENABLING = "ENABLING"
105
+ ENABLE_FAILED = "ENABLE_FAILED"
106
+ ENABLING_HOSTED_ZONE_LOCKED = "ENABLING_HOSTED_ZONE_LOCKED"
107
+ ENABLED = "ENABLED"
108
+ DISABLING = "DISABLING"
109
+ DISABLE_FAILED = "DISABLE_FAILED"
110
+ DISABLED = "DISABLED"
111
+ DISABLING_HOSTED_ZONE_LOCKED = "DISABLING_HOSTED_ZONE_LOCKED"
112
+
113
+
101
114
  class AccountLimitType(StrEnum):
102
115
  MAX_HEALTH_CHECKS_BY_OWNER = "MAX_HEALTH_CHECKS_BY_OWNER"
103
116
  MAX_HOSTED_ZONES_BY_OWNER = "MAX_HOSTED_ZONES_BY_OWNER"
@@ -168,6 +181,7 @@ class CloudWatchRegion(StrEnum):
168
181
  eu_isoe_west_1 = "eu-isoe-west-1"
169
182
  ap_southeast_6 = "ap-southeast-6"
170
183
  us_isob_west_1 = "us-isob-west-1"
184
+ eusc_de_east_1 = "eusc-de-east-1"
171
185
 
172
186
 
173
187
  class ComparisonOperator(StrEnum):
@@ -285,6 +299,7 @@ class ResourceRecordSetRegion(StrEnum):
285
299
  us_gov_west_1 = "us-gov-west-1"
286
300
  ap_east_2 = "ap-east-2"
287
301
  ap_southeast_6 = "ap-southeast-6"
302
+ eusc_de_east_1 = "eusc-de-east-1"
288
303
 
289
304
 
290
305
  class ReusableDelegationSetLimitType(StrEnum):
@@ -350,6 +365,7 @@ class VPCRegion(StrEnum):
350
365
  eu_isoe_west_1 = "eu-isoe-west-1"
351
366
  ap_southeast_6 = "ap-southeast-6"
352
367
  us_isob_west_1 = "us-isob-west-1"
368
+ eusc_de_east_1 = "eusc-de-east-1"
353
369
 
354
370
 
355
371
  class CidrBlockInUseException(ServiceException):
@@ -1073,6 +1089,15 @@ class DelegationSet(TypedDict, total=False):
1073
1089
  NameServers: DelegationSetNameServers
1074
1090
 
1075
1091
 
1092
+ class HostedZoneFailureReasons(TypedDict, total=False):
1093
+ AcceleratedRecovery: FailureReason | None
1094
+
1095
+
1096
+ class HostedZoneFeatures(TypedDict, total=False):
1097
+ AcceleratedRecoveryStatus: AcceleratedRecoveryStatus | None
1098
+ FailureReasons: HostedZoneFailureReasons | None
1099
+
1100
+
1076
1101
  HostedZoneRRSetCount = int
1077
1102
 
1078
1103
 
@@ -1083,6 +1108,7 @@ class HostedZone(TypedDict, total=False):
1083
1108
  Config: HostedZoneConfig | None
1084
1109
  ResourceRecordSetCount: HostedZoneRRSetCount | None
1085
1110
  LinkedService: LinkedService | None
1111
+ Features: HostedZoneFeatures | None
1086
1112
 
1087
1113
 
1088
1114
  class CreateHostedZoneResponse(TypedDict, total=False):
@@ -1908,6 +1934,15 @@ class UpdateHostedZoneCommentResponse(TypedDict, total=False):
1908
1934
  HostedZone: HostedZone
1909
1935
 
1910
1936
 
1937
+ class UpdateHostedZoneFeaturesRequest(ServiceRequest):
1938
+ HostedZoneId: ResourceId
1939
+ EnableAcceleratedRecovery: AcceleratedRecoveryEnabled | None
1940
+
1941
+
1942
+ class UpdateHostedZoneFeaturesResponse(TypedDict, total=False):
1943
+ pass
1944
+
1945
+
1911
1946
  class UpdateTrafficPolicyCommentRequest(ServiceRequest):
1912
1947
  Id: TrafficPolicyId
1913
1948
  Version: TrafficPolicyVersion
@@ -2543,6 +2578,16 @@ class Route53Api:
2543
2578
  ) -> UpdateHostedZoneCommentResponse:
2544
2579
  raise NotImplementedError
2545
2580
 
2581
+ @handler("UpdateHostedZoneFeatures")
2582
+ def update_hosted_zone_features(
2583
+ self,
2584
+ context: RequestContext,
2585
+ hosted_zone_id: ResourceId,
2586
+ enable_accelerated_recovery: AcceleratedRecoveryEnabled | None = None,
2587
+ **kwargs,
2588
+ ) -> UpdateHostedZoneFeaturesResponse:
2589
+ raise NotImplementedError
2590
+
2546
2591
  @handler("UpdateTrafficPolicyComment")
2547
2592
  def update_traffic_policy_comment(
2548
2593
  self,
@@ -84,6 +84,7 @@ class ConfidenceThreshold(StrEnum):
84
84
  class DnsThreatProtection(StrEnum):
85
85
  DGA = "DGA"
86
86
  DNS_TUNNELING = "DNS_TUNNELING"
87
+ DICTIONARY_DGA = "DICTIONARY_DGA"
87
88
 
88
89
 
89
90
  class FirewallDomainImportOperation(StrEnum):