localstack-core 4.10.1.dev42__py3-none-any.whl → 4.11.2.dev14__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 (116) 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 +1165 -12
  4. localstack/aws/api/iam/__init__.py +227 -0
  5. localstack/aws/api/kms/__init__.py +1 -0
  6. localstack/aws/api/lambda_/__init__.py +418 -66
  7. localstack/aws/api/logs/__init__.py +312 -0
  8. localstack/aws/api/opensearch/__init__.py +89 -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 +42 -0
  12. localstack/aws/api/route53resolver/__init__.py +1 -0
  13. localstack/aws/api/s3/__init__.py +62 -0
  14. localstack/aws/api/secretsmanager/__init__.py +28 -23
  15. localstack/aws/api/stepfunctions/__init__.py +52 -10
  16. localstack/aws/api/sts/__init__.py +52 -0
  17. localstack/aws/handlers/logging.py +8 -4
  18. localstack/aws/handlers/service.py +11 -2
  19. localstack/aws/protocol/serializer.py +1 -1
  20. localstack/deprecations.py +0 -6
  21. localstack/services/acm/provider.py +4 -0
  22. localstack/services/apigateway/legacy/provider.py +28 -15
  23. localstack/services/cloudformation/engine/template_preparer.py +6 -2
  24. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +12 -0
  25. localstack/services/cloudwatch/provider.py +10 -3
  26. localstack/services/cloudwatch/provider_v2.py +6 -3
  27. localstack/services/configservice/provider.py +5 -1
  28. localstack/services/dynamodb/provider.py +1 -0
  29. localstack/services/dynamodb/v2/provider.py +1 -0
  30. localstack/services/dynamodbstreams/provider.py +6 -0
  31. localstack/services/dynamodbstreams/v2/provider.py +6 -0
  32. localstack/services/ec2/provider.py +6 -0
  33. localstack/services/es/provider.py +6 -0
  34. localstack/services/events/provider.py +4 -0
  35. localstack/services/events/v1/provider.py +9 -0
  36. localstack/services/firehose/provider.py +5 -0
  37. localstack/services/iam/provider.py +4 -0
  38. localstack/services/kms/models.py +10 -20
  39. localstack/services/kms/provider.py +4 -0
  40. localstack/services/lambda_/api_utils.py +37 -20
  41. localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
  42. localstack/services/lambda_/invocation/assignment.py +4 -1
  43. localstack/services/lambda_/invocation/execution_environment.py +21 -2
  44. localstack/services/lambda_/invocation/lambda_models.py +27 -2
  45. localstack/services/lambda_/invocation/lambda_service.py +51 -3
  46. localstack/services/lambda_/invocation/models.py +9 -1
  47. localstack/services/lambda_/invocation/version_manager.py +18 -3
  48. localstack/services/lambda_/provider.py +239 -95
  49. localstack/services/lambda_/resource_providers/aws_lambda_function.py +33 -1
  50. localstack/services/lambda_/runtimes.py +3 -1
  51. localstack/services/logs/provider.py +9 -0
  52. localstack/services/opensearch/provider.py +53 -3
  53. localstack/services/resource_groups/provider.py +5 -1
  54. localstack/services/resourcegroupstaggingapi/provider.py +6 -1
  55. localstack/services/s3/provider.py +28 -15
  56. localstack/services/s3/utils.py +35 -14
  57. localstack/services/s3control/provider.py +101 -2
  58. localstack/services/s3control/validation.py +50 -0
  59. localstack/services/sns/constants.py +3 -1
  60. localstack/services/sns/publisher.py +15 -6
  61. localstack/services/sns/v2/models.py +6 -0
  62. localstack/services/sns/v2/provider.py +650 -19
  63. localstack/services/sns/v2/utils.py +12 -0
  64. localstack/services/stepfunctions/asl/component/common/path/result_path.py +1 -1
  65. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +0 -1
  66. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +0 -1
  67. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +8 -8
  68. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/{mock_eval_utils.py → local_mock_eval_utils.py} +13 -9
  69. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +6 -6
  70. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +1 -1
  71. localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +4 -0
  72. localstack/services/stepfunctions/asl/component/test_state/state/base_mock.py +118 -0
  73. localstack/services/stepfunctions/asl/component/test_state/state/common.py +82 -0
  74. localstack/services/stepfunctions/asl/component/test_state/state/execution.py +139 -0
  75. localstack/services/stepfunctions/asl/component/test_state/state/map.py +77 -0
  76. localstack/services/stepfunctions/asl/component/test_state/state/task.py +44 -0
  77. localstack/services/stepfunctions/asl/eval/environment.py +30 -22
  78. localstack/services/stepfunctions/asl/eval/states.py +1 -1
  79. localstack/services/stepfunctions/asl/eval/test_state/environment.py +49 -9
  80. localstack/services/stepfunctions/asl/eval/test_state/program_state.py +22 -0
  81. localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -1
  82. localstack/services/stepfunctions/asl/parse/preprocessor.py +67 -24
  83. localstack/services/stepfunctions/asl/parse/test_state/asl_parser.py +5 -4
  84. localstack/services/stepfunctions/asl/parse/test_state/preprocessor.py +222 -31
  85. localstack/services/stepfunctions/asl/static_analyser/test_state/test_state_analyser.py +170 -22
  86. localstack/services/stepfunctions/backend/execution.py +6 -6
  87. localstack/services/stepfunctions/backend/execution_worker.py +5 -5
  88. localstack/services/stepfunctions/backend/test_state/execution.py +36 -0
  89. localstack/services/stepfunctions/backend/test_state/execution_worker.py +33 -1
  90. localstack/services/stepfunctions/backend/test_state/test_state_mock.py +127 -0
  91. localstack/services/stepfunctions/local_mocking/__init__.py +9 -0
  92. localstack/services/stepfunctions/{mocking → local_mocking}/mock_config.py +24 -17
  93. localstack/services/stepfunctions/provider.py +78 -27
  94. localstack/services/stepfunctions/test_state/mock_config.py +47 -0
  95. localstack/testing/pytest/fixtures.py +28 -0
  96. localstack/testing/snapshots/transformer_utility.py +5 -0
  97. localstack/utils/analytics/publisher.py +37 -155
  98. localstack/utils/analytics/service_request_aggregator.py +6 -4
  99. localstack/utils/aws/arns.py +7 -0
  100. localstack/utils/batching.py +258 -0
  101. localstack/utils/collections.py +23 -11
  102. localstack/version.py +2 -2
  103. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/METADATA +5 -5
  104. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/RECORD +113 -105
  105. localstack_core-4.11.2.dev14.dist-info/plux.json +1 -0
  106. localstack/services/stepfunctions/mocking/__init__.py +0 -0
  107. localstack/utils/batch_policy.py +0 -124
  108. localstack_core-4.10.1.dev42.dist-info/plux.json +0 -1
  109. /localstack/services/stepfunctions/{mocking → local_mocking}/mock_config_file.py +0 -0
  110. {localstack_core-4.10.1.dev42.data → localstack_core-4.11.2.dev14.data}/scripts/localstack +0 -0
  111. {localstack_core-4.10.1.dev42.data → localstack_core-4.11.2.dev14.data}/scripts/localstack-supervisor +0 -0
  112. {localstack_core-4.10.1.dev42.data → localstack_core-4.11.2.dev14.data}/scripts/localstack.bat +0 -0
  113. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/WHEEL +0 -0
  114. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/entry_points.txt +0 -0
  115. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/licenses/LICENSE.txt +0 -0
  116. {localstack_core-4.10.1.dev42.dist-info → localstack_core-4.11.2.dev14.dist-info}/top_level.txt +0 -0
@@ -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"
@@ -1073,6 +1086,15 @@ class DelegationSet(TypedDict, total=False):
1073
1086
  NameServers: DelegationSetNameServers
1074
1087
 
1075
1088
 
1089
+ class HostedZoneFailureReasons(TypedDict, total=False):
1090
+ AcceleratedRecovery: FailureReason | None
1091
+
1092
+
1093
+ class HostedZoneFeatures(TypedDict, total=False):
1094
+ AcceleratedRecoveryStatus: AcceleratedRecoveryStatus | None
1095
+ FailureReasons: HostedZoneFailureReasons | None
1096
+
1097
+
1076
1098
  HostedZoneRRSetCount = int
1077
1099
 
1078
1100
 
@@ -1083,6 +1105,7 @@ class HostedZone(TypedDict, total=False):
1083
1105
  Config: HostedZoneConfig | None
1084
1106
  ResourceRecordSetCount: HostedZoneRRSetCount | None
1085
1107
  LinkedService: LinkedService | None
1108
+ Features: HostedZoneFeatures | None
1086
1109
 
1087
1110
 
1088
1111
  class CreateHostedZoneResponse(TypedDict, total=False):
@@ -1908,6 +1931,15 @@ class UpdateHostedZoneCommentResponse(TypedDict, total=False):
1908
1931
  HostedZone: HostedZone
1909
1932
 
1910
1933
 
1934
+ class UpdateHostedZoneFeaturesRequest(ServiceRequest):
1935
+ HostedZoneId: ResourceId
1936
+ EnableAcceleratedRecovery: AcceleratedRecoveryEnabled | None
1937
+
1938
+
1939
+ class UpdateHostedZoneFeaturesResponse(TypedDict, total=False):
1940
+ pass
1941
+
1942
+
1911
1943
  class UpdateTrafficPolicyCommentRequest(ServiceRequest):
1912
1944
  Id: TrafficPolicyId
1913
1945
  Version: TrafficPolicyVersion
@@ -2543,6 +2575,16 @@ class Route53Api:
2543
2575
  ) -> UpdateHostedZoneCommentResponse:
2544
2576
  raise NotImplementedError
2545
2577
 
2578
+ @handler("UpdateHostedZoneFeatures")
2579
+ def update_hosted_zone_features(
2580
+ self,
2581
+ context: RequestContext,
2582
+ hosted_zone_id: ResourceId,
2583
+ enable_accelerated_recovery: AcceleratedRecoveryEnabled | None = None,
2584
+ **kwargs,
2585
+ ) -> UpdateHostedZoneFeaturesResponse:
2586
+ raise NotImplementedError
2587
+
2546
2588
  @handler("UpdateTrafficPolicyComment")
2547
2589
  def update_traffic_policy_comment(
2548
2590
  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):
@@ -212,6 +212,11 @@ class ArchiveStatus(StrEnum):
212
212
  DEEP_ARCHIVE_ACCESS = "DEEP_ARCHIVE_ACCESS"
213
213
 
214
214
 
215
+ class BucketAbacStatus(StrEnum):
216
+ Enabled = "Enabled"
217
+ Disabled = "Disabled"
218
+
219
+
215
220
  class BucketAccelerateStatus(StrEnum):
216
221
  Enabled = "Enabled"
217
222
  Suspended = "Suspended"
@@ -313,6 +318,11 @@ class EncodingType(StrEnum):
313
318
  url = "url"
314
319
 
315
320
 
321
+ class EncryptionType(StrEnum):
322
+ NONE = "NONE"
323
+ SSE_C = "SSE-C"
324
+
325
+
316
326
  class Event(StrEnum):
317
327
  s3_ReducedRedundancyLostObject = "s3:ReducedRedundancyLostObject"
318
328
  s3_ObjectCreated_ = "s3:ObjectCreated:*"
@@ -1070,6 +1080,10 @@ class AuthorizationHeaderMalformed(ServiceException):
1070
1080
  HostId: HostId | None
1071
1081
 
1072
1082
 
1083
+ class AbacStatus(TypedDict, total=False):
1084
+ Status: BucketAbacStatus | None
1085
+
1086
+
1073
1087
  AbortDate = datetime
1074
1088
 
1075
1089
 
@@ -1178,6 +1192,13 @@ class AnalyticsConfiguration(TypedDict, total=False):
1178
1192
 
1179
1193
 
1180
1194
  AnalyticsConfigurationList = list[AnalyticsConfiguration]
1195
+ EncryptionTypeList = list[EncryptionType]
1196
+
1197
+
1198
+ class BlockedEncryptionTypes(TypedDict, total=False):
1199
+ EncryptionType: EncryptionTypeList | None
1200
+
1201
+
1181
1202
  Body = bytes
1182
1203
  CreationDate = datetime
1183
1204
 
@@ -1948,6 +1969,15 @@ class FilterRule(TypedDict, total=False):
1948
1969
  FilterRuleList = list[FilterRule]
1949
1970
 
1950
1971
 
1972
+ class GetBucketAbacOutput(TypedDict, total=False):
1973
+ AbacStatus: AbacStatus | None
1974
+
1975
+
1976
+ class GetBucketAbacRequest(ServiceRequest):
1977
+ Bucket: BucketName
1978
+ ExpectedBucketOwner: AccountId | None
1979
+
1980
+
1951
1981
  class GetBucketAccelerateConfigurationOutput(TypedDict, total=False):
1952
1982
  Status: BucketAccelerateStatus | None
1953
1983
  RequestCharged: RequestCharged | None
@@ -1996,6 +2026,7 @@ class ServerSideEncryptionByDefault(TypedDict, total=False):
1996
2026
  class ServerSideEncryptionRule(TypedDict, total=False):
1997
2027
  ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefault | None
1998
2028
  BucketKeyEnabled: BucketKeyEnabled | None
2029
+ BlockedEncryptionTypes: BlockedEncryptionTypes | None
1999
2030
 
2000
2031
 
2001
2032
  ServerSideEncryptionRules = list[ServerSideEncryptionRule]
@@ -3169,6 +3200,14 @@ class ProgressEvent(TypedDict, total=False):
3169
3200
  Details: Progress | None
3170
3201
 
3171
3202
 
3203
+ class PutBucketAbacRequest(ServiceRequest):
3204
+ Bucket: BucketName
3205
+ ContentMD5: ContentMD5 | None
3206
+ ChecksumAlgorithm: ChecksumAlgorithm | None
3207
+ ExpectedBucketOwner: AccountId | None
3208
+ AbacStatus: AbacStatus
3209
+
3210
+
3172
3211
  class PutBucketAccelerateConfigurationRequest(ServiceRequest):
3173
3212
  Bucket: BucketName
3174
3213
  AccelerateConfiguration: AccelerateConfiguration
@@ -4177,6 +4216,16 @@ class S3Api:
4177
4216
  ) -> None:
4178
4217
  raise NotImplementedError
4179
4218
 
4219
+ @handler("GetBucketAbac")
4220
+ def get_bucket_abac(
4221
+ self,
4222
+ context: RequestContext,
4223
+ bucket: BucketName,
4224
+ expected_bucket_owner: AccountId | None = None,
4225
+ **kwargs,
4226
+ ) -> GetBucketAbacOutput:
4227
+ raise NotImplementedError
4228
+
4180
4229
  @handler("GetBucketAccelerateConfiguration")
4181
4230
  def get_bucket_accelerate_configuration(
4182
4231
  self,
@@ -4748,6 +4797,19 @@ class S3Api:
4748
4797
  ) -> ListPartsOutput:
4749
4798
  raise NotImplementedError
4750
4799
 
4800
+ @handler("PutBucketAbac")
4801
+ def put_bucket_abac(
4802
+ self,
4803
+ context: RequestContext,
4804
+ bucket: BucketName,
4805
+ abac_status: AbacStatus,
4806
+ content_md5: ContentMD5 | None = None,
4807
+ checksum_algorithm: ChecksumAlgorithm | None = None,
4808
+ expected_bucket_owner: AccountId | None = None,
4809
+ **kwargs,
4810
+ ) -> None:
4811
+ raise NotImplementedError
4812
+
4751
4813
  @handler("PutBucketAccelerateConfiguration")
4752
4814
  def put_bucket_accelerate_configuration(
4753
4815
  self,
@@ -15,11 +15,14 @@ ExcludeLowercaseType = bool
15
15
  ExcludeNumbersType = bool
16
16
  ExcludePunctuationType = bool
17
17
  ExcludeUppercaseType = bool
18
+ ExternalSecretRotationMetadataItemKeyType = str
19
+ ExternalSecretRotationMetadataItemValueType = str
18
20
  FilterValueStringType = str
19
21
  IncludeSpaceType = bool
20
22
  KmsKeyIdType = str
21
23
  MaxResultsBatchType = int
22
24
  MaxResultsType = int
25
+ MedeaTypeType = str
23
26
  NameType = str
24
27
  NextTokenType = str
25
28
  NonEmptyResourcePolicyType = str
@@ -27,6 +30,7 @@ OwningServiceType = str
27
30
  RandomPasswordType = str
28
31
  RegionType = str
29
32
  RequireEachIncludedTypeType = bool
33
+ RoleARNType = str
30
34
  RotationEnabledType = bool
31
35
  RotationLambdaARNType = str
32
36
  RotationTokenType = str
@@ -222,6 +226,7 @@ class CreateSecretRequest(ServiceRequest):
222
226
  Tags: TagListType | None
223
227
  AddReplicaRegions: AddReplicaRegionListType | None
224
228
  ForceOverwriteReplicaSecret: BooleanType | None
229
+ Type: MedeaTypeType | None
225
230
 
226
231
 
227
232
  LastAccessedDateType = datetime
@@ -286,6 +291,14 @@ LastChangedDateType = datetime
286
291
  LastRotatedDateType = datetime
287
292
 
288
293
 
294
+ class ExternalSecretRotationMetadataItem(TypedDict, total=False):
295
+ Key: ExternalSecretRotationMetadataItemKeyType | None
296
+ Value: ExternalSecretRotationMetadataItemValueType | None
297
+
298
+
299
+ ExternalSecretRotationMetadataType = list[ExternalSecretRotationMetadataItem]
300
+
301
+
289
302
  class RotationRulesType(TypedDict, total=False):
290
303
  AutomaticallyAfterDays: AutomaticallyRotateAfterDaysType | None
291
304
  Duration: DurationType | None
@@ -295,11 +308,14 @@ class RotationRulesType(TypedDict, total=False):
295
308
  class DescribeSecretResponse(TypedDict, total=False):
296
309
  ARN: SecretARNType | None
297
310
  Name: SecretNameType | None
311
+ Type: MedeaTypeType | None
298
312
  Description: DescriptionType | None
299
313
  KmsKeyId: KmsKeyIdType | None
300
314
  RotationEnabled: RotationEnabledType | None
301
315
  RotationLambdaARN: RotationLambdaARNType | None
302
316
  RotationRules: RotationRulesType | None
317
+ ExternalSecretRotationMetadata: ExternalSecretRotationMetadataType | None
318
+ ExternalSecretRotationRoleArn: RoleARNType | None
303
319
  LastRotatedDate: LastRotatedDateType | None
304
320
  LastChangedDate: LastChangedDateType | None
305
321
  LastAccessedDate: LastAccessedDateType | None
@@ -396,11 +412,14 @@ class ListSecretsRequest(ServiceRequest):
396
412
  class SecretListEntry(TypedDict, total=False):
397
413
  ARN: SecretARNType | None
398
414
  Name: SecretNameType | None
415
+ Type: MedeaTypeType | None
399
416
  Description: DescriptionType | None
400
417
  KmsKeyId: KmsKeyIdType | None
401
418
  RotationEnabled: RotationEnabledType | None
402
419
  RotationLambdaARN: RotationLambdaARNType | None
403
420
  RotationRules: RotationRulesType | None
421
+ ExternalSecretRotationMetadata: ExternalSecretRotationMetadataType | None
422
+ ExternalSecretRotationRoleArn: RoleARNType | None
404
423
  LastRotatedDate: LastRotatedDateType | None
405
424
  LastChangedDate: LastChangedDateType | None
406
425
  LastAccessedDate: LastAccessedDateType | None
@@ -486,6 +505,8 @@ class RotateSecretRequest(ServiceRequest):
486
505
  ClientRequestToken: ClientRequestTokenType | None
487
506
  RotationLambdaARN: RotationLambdaARNType | None
488
507
  RotationRules: RotationRulesType | None
508
+ ExternalSecretRotationMetadata: ExternalSecretRotationMetadataType | None
509
+ ExternalSecretRotationRoleArn: RoleARNType | None
489
510
  RotateImmediately: BooleanType | None
490
511
 
491
512
 
@@ -523,6 +544,7 @@ class UpdateSecretRequest(ServiceRequest):
523
544
  KmsKeyId: KmsKeyIdType | None
524
545
  SecretBinary: SecretBinaryType | None
525
546
  SecretString: SecretStringType | None
547
+ Type: MedeaTypeType | None
526
548
 
527
549
 
528
550
  class UpdateSecretResponse(TypedDict, total=False):
@@ -583,20 +605,9 @@ class SecretsmanagerApi:
583
605
  ) -> CancelRotateSecretResponse:
584
606
  raise NotImplementedError
585
607
 
586
- @handler("CreateSecret")
608
+ @handler("CreateSecret", expand=False)
587
609
  def create_secret(
588
- self,
589
- context: RequestContext,
590
- name: NameType,
591
- client_request_token: ClientRequestTokenType | None = None,
592
- description: DescriptionType | None = None,
593
- kms_key_id: KmsKeyIdType | None = None,
594
- secret_binary: SecretBinaryType | None = None,
595
- secret_string: SecretStringType | None = None,
596
- tags: TagListType | None = None,
597
- add_replica_regions: AddReplicaRegionListType | None = None,
598
- force_overwrite_replica_secret: BooleanType | None = None,
599
- **kwargs,
610
+ self, context: RequestContext, request: CreateSecretRequest, **kwargs
600
611
  ) -> CreateSecretResponse:
601
612
  raise NotImplementedError
602
613
 
@@ -741,6 +752,8 @@ class SecretsmanagerApi:
741
752
  client_request_token: ClientRequestTokenType | None = None,
742
753
  rotation_lambda_arn: RotationLambdaARNType | None = None,
743
754
  rotation_rules: RotationRulesType | None = None,
755
+ external_secret_rotation_metadata: ExternalSecretRotationMetadataType | None = None,
756
+ external_secret_rotation_role_arn: RoleARNType | None = None,
744
757
  rotate_immediately: BooleanType | None = None,
745
758
  **kwargs,
746
759
  ) -> RotateSecretResponse:
@@ -764,17 +777,9 @@ class SecretsmanagerApi:
764
777
  ) -> None:
765
778
  raise NotImplementedError
766
779
 
767
- @handler("UpdateSecret")
780
+ @handler("UpdateSecret", expand=False)
768
781
  def update_secret(
769
- self,
770
- context: RequestContext,
771
- secret_id: SecretIdType,
772
- client_request_token: ClientRequestTokenType | None = None,
773
- description: DescriptionType | None = None,
774
- kms_key_id: KmsKeyIdType | None = None,
775
- secret_binary: SecretBinaryType | None = None,
776
- secret_string: SecretStringType | None = None,
777
- **kwargs,
782
+ self, context: RequestContext, request: UpdateSecretRequest, **kwargs
778
783
  ) -> UpdateSecretResponse:
779
784
  raise NotImplementedError
780
785