localstack-core 4.10.1.dev7__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.

Potentially problematic release.


This version of localstack-core might be problematic. Click here for more details.

Files changed (152) hide show
  1. localstack/aws/api/acm/__init__.py +122 -122
  2. localstack/aws/api/apigateway/__init__.py +604 -561
  3. localstack/aws/api/cloudcontrol/__init__.py +63 -63
  4. localstack/aws/api/cloudformation/__init__.py +1201 -969
  5. localstack/aws/api/cloudwatch/__init__.py +375 -375
  6. localstack/aws/api/config/__init__.py +784 -786
  7. localstack/aws/api/dynamodb/__init__.py +753 -759
  8. localstack/aws/api/dynamodbstreams/__init__.py +74 -74
  9. localstack/aws/api/ec2/__init__.py +10062 -8826
  10. localstack/aws/api/es/__init__.py +453 -453
  11. localstack/aws/api/events/__init__.py +552 -552
  12. localstack/aws/api/firehose/__init__.py +541 -543
  13. localstack/aws/api/iam/__init__.py +866 -572
  14. localstack/aws/api/kinesis/__init__.py +235 -147
  15. localstack/aws/api/kms/__init__.py +341 -336
  16. localstack/aws/api/lambda_/__init__.py +974 -621
  17. localstack/aws/api/logs/__init__.py +988 -675
  18. localstack/aws/api/opensearch/__init__.py +903 -785
  19. localstack/aws/api/pipes/__init__.py +336 -336
  20. localstack/aws/api/redshift/__init__.py +1257 -1166
  21. localstack/aws/api/resource_groups/__init__.py +175 -175
  22. localstack/aws/api/resourcegroupstaggingapi/__init__.py +103 -67
  23. localstack/aws/api/route53/__init__.py +296 -254
  24. localstack/aws/api/route53resolver/__init__.py +397 -396
  25. localstack/aws/api/s3/__init__.py +1412 -1349
  26. localstack/aws/api/s3control/__init__.py +594 -594
  27. localstack/aws/api/scheduler/__init__.py +118 -118
  28. localstack/aws/api/secretsmanager/__init__.py +221 -216
  29. localstack/aws/api/ses/__init__.py +227 -227
  30. localstack/aws/api/sns/__init__.py +115 -115
  31. localstack/aws/api/sqs/__init__.py +100 -100
  32. localstack/aws/api/ssm/__init__.py +1977 -1971
  33. localstack/aws/api/stepfunctions/__init__.py +375 -333
  34. localstack/aws/api/sts/__init__.py +142 -66
  35. localstack/aws/api/support/__init__.py +112 -112
  36. localstack/aws/api/swf/__init__.py +378 -386
  37. localstack/aws/api/transcribe/__init__.py +425 -425
  38. localstack/aws/handlers/logging.py +8 -4
  39. localstack/aws/handlers/service.py +22 -3
  40. localstack/aws/protocol/parser.py +1 -1
  41. localstack/aws/protocol/serializer.py +1 -1
  42. localstack/aws/scaffold.py +15 -17
  43. localstack/cli/localstack.py +6 -1
  44. localstack/deprecations.py +0 -6
  45. localstack/dev/kubernetes/__main__.py +38 -3
  46. localstack/services/acm/provider.py +4 -0
  47. localstack/services/apigateway/helpers.py +5 -9
  48. localstack/services/apigateway/legacy/provider.py +60 -24
  49. localstack/services/apigateway/patches.py +0 -9
  50. localstack/services/cloudformation/engine/template_preparer.py +6 -2
  51. localstack/services/cloudformation/engine/v2/change_set_model_preproc.py +12 -0
  52. localstack/services/cloudformation/provider.py +2 -2
  53. localstack/services/cloudformation/v2/provider.py +6 -6
  54. localstack/services/cloudwatch/provider.py +10 -3
  55. localstack/services/cloudwatch/provider_v2.py +6 -3
  56. localstack/services/configservice/provider.py +5 -1
  57. localstack/services/dynamodb/provider.py +1 -0
  58. localstack/services/dynamodb/v2/provider.py +1 -0
  59. localstack/services/dynamodbstreams/provider.py +6 -0
  60. localstack/services/dynamodbstreams/v2/provider.py +6 -0
  61. localstack/services/ec2/provider.py +6 -0
  62. localstack/services/es/provider.py +6 -0
  63. localstack/services/events/provider.py +4 -0
  64. localstack/services/events/v1/provider.py +9 -0
  65. localstack/services/firehose/provider.py +5 -0
  66. localstack/services/iam/provider.py +4 -0
  67. localstack/services/kinesis/packages.py +1 -1
  68. localstack/services/kms/models.py +44 -24
  69. localstack/services/kms/provider.py +97 -16
  70. localstack/services/lambda_/api_utils.py +40 -21
  71. localstack/services/lambda_/event_source_mapping/pollers/stream_poller.py +1 -1
  72. localstack/services/lambda_/invocation/assignment.py +4 -1
  73. localstack/services/lambda_/invocation/execution_environment.py +21 -2
  74. localstack/services/lambda_/invocation/lambda_models.py +27 -2
  75. localstack/services/lambda_/invocation/lambda_service.py +51 -3
  76. localstack/services/lambda_/invocation/models.py +9 -1
  77. localstack/services/lambda_/invocation/version_manager.py +18 -3
  78. localstack/services/lambda_/packages.py +1 -1
  79. localstack/services/lambda_/provider.py +240 -96
  80. localstack/services/lambda_/resource_providers/aws_lambda_function.py +33 -1
  81. localstack/services/lambda_/runtimes.py +10 -3
  82. localstack/services/logs/provider.py +45 -19
  83. localstack/services/opensearch/provider.py +53 -3
  84. localstack/services/resource_groups/provider.py +5 -1
  85. localstack/services/resourcegroupstaggingapi/provider.py +6 -1
  86. localstack/services/s3/provider.py +29 -16
  87. localstack/services/s3/utils.py +35 -14
  88. localstack/services/s3control/provider.py +101 -2
  89. localstack/services/s3control/validation.py +50 -0
  90. localstack/services/sns/constants.py +3 -1
  91. localstack/services/sns/publisher.py +15 -6
  92. localstack/services/sns/v2/models.py +30 -1
  93. localstack/services/sns/v2/provider.py +794 -31
  94. localstack/services/sns/v2/utils.py +20 -0
  95. localstack/services/sqs/models.py +37 -10
  96. localstack/services/stepfunctions/asl/component/common/path/result_path.py +1 -1
  97. localstack/services/stepfunctions/asl/component/state/state_execution/execute_state.py +0 -1
  98. localstack/services/stepfunctions/asl/component/state/state_execution/state_map/state_map.py +0 -1
  99. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/lambda_eval_utils.py +8 -8
  100. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/{mock_eval_utils.py → local_mock_eval_utils.py} +13 -9
  101. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service.py +6 -6
  102. localstack/services/stepfunctions/asl/component/state/state_execution/state_task/service/state_task_service_callback.py +1 -1
  103. localstack/services/stepfunctions/asl/component/state/state_fail/state_fail.py +4 -0
  104. localstack/services/stepfunctions/asl/component/test_state/state/base_mock.py +118 -0
  105. localstack/services/stepfunctions/asl/component/test_state/state/common.py +82 -0
  106. localstack/services/stepfunctions/asl/component/test_state/state/execution.py +139 -0
  107. localstack/services/stepfunctions/asl/component/test_state/state/map.py +77 -0
  108. localstack/services/stepfunctions/asl/component/test_state/state/task.py +44 -0
  109. localstack/services/stepfunctions/asl/eval/environment.py +30 -22
  110. localstack/services/stepfunctions/asl/eval/states.py +1 -1
  111. localstack/services/stepfunctions/asl/eval/test_state/environment.py +49 -9
  112. localstack/services/stepfunctions/asl/eval/test_state/program_state.py +22 -0
  113. localstack/services/stepfunctions/asl/jsonata/jsonata.py +5 -1
  114. localstack/services/stepfunctions/asl/parse/preprocessor.py +67 -24
  115. localstack/services/stepfunctions/asl/parse/test_state/asl_parser.py +5 -4
  116. localstack/services/stepfunctions/asl/parse/test_state/preprocessor.py +222 -31
  117. localstack/services/stepfunctions/asl/static_analyser/test_state/test_state_analyser.py +170 -22
  118. localstack/services/stepfunctions/backend/execution.py +6 -6
  119. localstack/services/stepfunctions/backend/execution_worker.py +5 -5
  120. localstack/services/stepfunctions/backend/test_state/execution.py +36 -0
  121. localstack/services/stepfunctions/backend/test_state/execution_worker.py +33 -1
  122. localstack/services/stepfunctions/backend/test_state/test_state_mock.py +127 -0
  123. localstack/services/stepfunctions/local_mocking/__init__.py +9 -0
  124. localstack/services/stepfunctions/{mocking → local_mocking}/mock_config.py +24 -17
  125. localstack/services/stepfunctions/provider.py +78 -27
  126. localstack/services/stepfunctions/test_state/mock_config.py +47 -0
  127. localstack/testing/pytest/fixtures.py +28 -0
  128. localstack/testing/snapshots/transformer_utility.py +7 -0
  129. localstack/testing/testselection/matching.py +0 -1
  130. localstack/utils/analytics/publisher.py +37 -155
  131. localstack/utils/analytics/service_request_aggregator.py +6 -4
  132. localstack/utils/aws/arns.py +7 -0
  133. localstack/utils/aws/client_types.py +0 -8
  134. localstack/utils/batching.py +258 -0
  135. localstack/utils/catalog/catalog_loader.py +111 -3
  136. localstack/utils/collections.py +23 -11
  137. localstack/utils/crypto.py +109 -0
  138. localstack/version.py +2 -2
  139. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/METADATA +7 -6
  140. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/RECORD +149 -141
  141. localstack_core-4.11.2.dev14.dist-info/plux.json +1 -0
  142. localstack/services/stepfunctions/mocking/__init__.py +0 -0
  143. localstack/utils/batch_policy.py +0 -124
  144. localstack_core-4.10.1.dev7.dist-info/plux.json +0 -1
  145. /localstack/services/stepfunctions/{mocking → local_mocking}/mock_config_file.py +0 -0
  146. {localstack_core-4.10.1.dev7.data → localstack_core-4.11.2.dev14.data}/scripts/localstack +0 -0
  147. {localstack_core-4.10.1.dev7.data → localstack_core-4.11.2.dev14.data}/scripts/localstack-supervisor +0 -0
  148. {localstack_core-4.10.1.dev7.data → localstack_core-4.11.2.dev14.data}/scripts/localstack.bat +0 -0
  149. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/WHEEL +0 -0
  150. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/entry_points.txt +0 -0
  151. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/licenses/LICENSE.txt +0 -0
  152. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.11.2.dev14.dist-info}/top_level.txt +0 -0
@@ -1,19 +1,22 @@
1
1
  from enum import StrEnum
2
- from typing import Dict, List, Optional, TypedDict
2
+ from typing import TypedDict
3
3
 
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,13 +81,14 @@ class ThrottledException(ServiceException):
78
81
  status_code: int = 400
79
82
 
80
83
 
81
- TagKeyList = List[TagKey]
84
+ CloudFormationResourceTypes = list[CloudFormationResourceType]
85
+ TagKeyList = list[TagKey]
82
86
 
83
87
 
84
88
  class ComplianceDetails(TypedDict, total=False):
85
- NoncompliantKeys: Optional[TagKeyList]
86
- KeysWithNoncompliantValues: Optional[TagKeyList]
87
- ComplianceStatus: Optional[ComplianceStatus]
89
+ NoncompliantKeys: TagKeyList | None
90
+ KeysWithNoncompliantValues: TagKeyList | None
91
+ ComplianceStatus: ComplianceStatus | None
88
92
 
89
93
 
90
94
  class DescribeReportCreationInput(ServiceRequest):
@@ -92,76 +96,76 @@ class DescribeReportCreationInput(ServiceRequest):
92
96
 
93
97
 
94
98
  class DescribeReportCreationOutput(TypedDict, total=False):
95
- Status: Optional[Status]
96
- S3Location: Optional[S3Location]
97
- ErrorMessage: Optional[ErrorMessage]
99
+ Status: Status | None
100
+ S3Location: S3Location | None
101
+ ErrorMessage: ErrorMessage | None
98
102
 
99
103
 
100
104
  class FailureInfo(TypedDict, total=False):
101
- StatusCode: Optional[StatusCode]
102
- ErrorCode: Optional[ErrorCode]
103
- ErrorMessage: Optional[ErrorMessage]
105
+ StatusCode: StatusCode | None
106
+ ErrorCode: ErrorCode | None
107
+ ErrorMessage: ErrorMessage | None
104
108
 
105
109
 
106
- FailedResourcesMap = Dict[ResourceARN, FailureInfo]
107
- GroupBy = List[GroupByAttribute]
108
- TagKeyFilterList = List[TagKey]
109
- ResourceTypeFilterList = List[AmazonResourceType]
110
- RegionFilterList = List[Region]
111
- TargetIdFilterList = List[TargetId]
110
+ FailedResourcesMap = dict[ResourceARN, FailureInfo]
111
+ GroupBy = list[GroupByAttribute]
112
+ TagKeyFilterList = list[TagKey]
113
+ ResourceTypeFilterList = list[AmazonResourceType]
114
+ RegionFilterList = list[Region]
115
+ TargetIdFilterList = list[TargetId]
112
116
 
113
117
 
114
118
  class GetComplianceSummaryInput(ServiceRequest):
115
- TargetIdFilters: Optional[TargetIdFilterList]
116
- RegionFilters: Optional[RegionFilterList]
117
- ResourceTypeFilters: Optional[ResourceTypeFilterList]
118
- TagKeyFilters: Optional[TagKeyFilterList]
119
- GroupBy: Optional[GroupBy]
120
- MaxResults: Optional[MaxResultsGetComplianceSummary]
121
- PaginationToken: Optional[PaginationToken]
119
+ TargetIdFilters: TargetIdFilterList | None
120
+ RegionFilters: RegionFilterList | None
121
+ ResourceTypeFilters: ResourceTypeFilterList | None
122
+ TagKeyFilters: TagKeyFilterList | None
123
+ GroupBy: GroupBy | None
124
+ MaxResults: MaxResultsGetComplianceSummary | None
125
+ PaginationToken: PaginationToken | None
122
126
 
123
127
 
124
128
  NonCompliantResources = int
125
129
 
126
130
 
127
131
  class Summary(TypedDict, total=False):
128
- LastUpdated: Optional[LastUpdated]
129
- TargetId: Optional[TargetId]
130
- TargetIdType: Optional[TargetIdType]
131
- Region: Optional[Region]
132
- ResourceType: Optional[AmazonResourceType]
133
- NonCompliantResources: Optional[NonCompliantResources]
132
+ LastUpdated: LastUpdated | None
133
+ TargetId: TargetId | None
134
+ TargetIdType: TargetIdType | None
135
+ Region: Region | None
136
+ ResourceType: AmazonResourceType | None
137
+ NonCompliantResources: NonCompliantResources | None
134
138
 
135
139
 
136
- SummaryList = List[Summary]
140
+ SummaryList = list[Summary]
137
141
 
138
142
 
139
143
  class GetComplianceSummaryOutput(TypedDict, total=False):
140
- SummaryList: Optional[SummaryList]
141
- PaginationToken: Optional[PaginationToken]
144
+ SummaryList: SummaryList | None
145
+ PaginationToken: PaginationToken | None
142
146
 
143
147
 
144
- ResourceARNListForGet = List[ResourceARN]
145
- TagValueList = List[TagValue]
148
+ ResourceARNListForGet = list[ResourceARN]
149
+ TagValueList = list[TagValue]
146
150
 
147
151
 
148
152
  class TagFilter(TypedDict, total=False):
149
- Key: Optional[TagKey]
150
- Values: Optional[TagValueList]
153
+ Key: TagKey | None
154
+ Values: TagValueList | None
151
155
 
152
156
 
153
- TagFilterList = List[TagFilter]
157
+ TagFilterList = list[TagFilter]
154
158
 
155
159
 
156
160
  class GetResourcesInput(ServiceRequest):
157
- PaginationToken: Optional[PaginationToken]
158
- TagFilters: Optional[TagFilterList]
159
- ResourcesPerPage: Optional[ResourcesPerPage]
160
- TagsPerPage: Optional[TagsPerPage]
161
- ResourceTypeFilters: Optional[ResourceTypeFilterList]
162
- IncludeComplianceDetails: Optional[IncludeComplianceDetails]
163
- ExcludeCompliantResources: Optional[ExcludeCompliantResources]
164
- ResourceARNList: Optional[ResourceARNListForGet]
161
+ PaginationToken: PaginationToken | None
162
+ TagFilters: TagFilterList | None
163
+ ResourcesPerPage: ResourcesPerPage | None
164
+ TagsPerPage: TagsPerPage | None
165
+ ResourceTypeFilters: ResourceTypeFilterList | None
166
+ IncludeComplianceDetails: IncludeComplianceDetails | None
167
+ ExcludeCompliantResources: ExcludeCompliantResources | None
168
+ ResourceARNList: ResourceARNListForGet | None
165
169
 
166
170
 
167
171
  class Tag(TypedDict, total=False):
@@ -169,46 +173,68 @@ class Tag(TypedDict, total=False):
169
173
  Value: TagValue
170
174
 
171
175
 
172
- TagList = List[Tag]
176
+ TagList = list[Tag]
173
177
 
174
178
 
175
179
  class ResourceTagMapping(TypedDict, total=False):
176
- ResourceARN: Optional[ResourceARN]
177
- Tags: Optional[TagList]
178
- ComplianceDetails: Optional[ComplianceDetails]
180
+ ResourceARN: ResourceARN | None
181
+ Tags: TagList | None
182
+ ComplianceDetails: ComplianceDetails | None
179
183
 
180
184
 
181
- ResourceTagMappingList = List[ResourceTagMapping]
185
+ ResourceTagMappingList = list[ResourceTagMapping]
182
186
 
183
187
 
184
188
  class GetResourcesOutput(TypedDict, total=False):
185
- PaginationToken: Optional[PaginationToken]
186
- ResourceTagMappingList: Optional[ResourceTagMappingList]
189
+ PaginationToken: PaginationToken | None
190
+ ResourceTagMappingList: ResourceTagMappingList | None
187
191
 
188
192
 
189
193
  class GetTagKeysInput(ServiceRequest):
190
- PaginationToken: Optional[PaginationToken]
194
+ PaginationToken: PaginationToken | None
191
195
 
192
196
 
193
197
  class GetTagKeysOutput(TypedDict, total=False):
194
- PaginationToken: Optional[PaginationToken]
195
- TagKeys: Optional[TagKeyList]
198
+ PaginationToken: PaginationToken | None
199
+ TagKeys: TagKeyList | None
196
200
 
197
201
 
198
202
  class GetTagValuesInput(ServiceRequest):
199
- PaginationToken: Optional[PaginationToken]
203
+ PaginationToken: PaginationToken | None
200
204
  Key: TagKey
201
205
 
202
206
 
203
- TagValuesOutputList = List[TagValue]
207
+ TagValuesOutputList = list[TagValue]
204
208
 
205
209
 
206
210
  class GetTagValuesOutput(TypedDict, total=False):
207
- PaginationToken: Optional[PaginationToken]
208
- TagValues: Optional[TagValuesOutputList]
211
+ PaginationToken: PaginationToken | None
212
+ TagValues: TagValuesOutputList | None
209
213
 
210
214
 
211
- ResourceARNListForTagUntag = List[ResourceARN]
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
+
237
+ ResourceARNListForTagUntag = list[ResourceARN]
212
238
 
213
239
 
214
240
  class StartReportCreationInput(ServiceRequest):
@@ -219,8 +245,8 @@ class StartReportCreationOutput(TypedDict, total=False):
219
245
  pass
220
246
 
221
247
 
222
- TagKeyListForUntag = List[TagKey]
223
- TagMap = Dict[TagKey, TagValue]
248
+ TagKeyListForUntag = list[TagKey]
249
+ TagMap = dict[TagKey, TagValue]
224
250
 
225
251
 
226
252
  class TagResourcesInput(ServiceRequest):
@@ -229,7 +255,7 @@ class TagResourcesInput(ServiceRequest):
229
255
 
230
256
 
231
257
  class TagResourcesOutput(TypedDict, total=False):
232
- FailedResourcesMap: Optional[FailedResourcesMap]
258
+ FailedResourcesMap: FailedResourcesMap | None
233
259
 
234
260
 
235
261
  class UntagResourcesInput(ServiceRequest):
@@ -238,12 +264,12 @@ class UntagResourcesInput(ServiceRequest):
238
264
 
239
265
 
240
266
  class UntagResourcesOutput(TypedDict, total=False):
241
- FailedResourcesMap: Optional[FailedResourcesMap]
267
+ FailedResourcesMap: FailedResourcesMap | None
242
268
 
243
269
 
244
270
  class ResourcegroupstaggingapiApi:
245
- service = "resourcegroupstaggingapi"
246
- version = "2017-01-26"
271
+ service: str = "resourcegroupstaggingapi"
272
+ version: str = "2017-01-26"
247
273
 
248
274
  @handler("DescribeReportCreation")
249
275
  def describe_report_creation(
@@ -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