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,4 +1,4 @@
1
- from typing import List, Optional, TypedDict
1
+ from typing import TypedDict
2
2
 
3
3
  from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
4
4
 
@@ -113,127 +113,127 @@ Data = bytes
113
113
 
114
114
 
115
115
  class Attachment(TypedDict, total=False):
116
- fileName: Optional[FileName]
117
- data: Optional[Data]
116
+ fileName: FileName | None
117
+ data: Data | None
118
118
 
119
119
 
120
- Attachments = List[Attachment]
120
+ Attachments = list[Attachment]
121
121
 
122
122
 
123
123
  class AddAttachmentsToSetRequest(ServiceRequest):
124
- attachmentSetId: Optional[AttachmentSetId]
124
+ attachmentSetId: AttachmentSetId | None
125
125
  attachments: Attachments
126
126
 
127
127
 
128
128
  class AddAttachmentsToSetResponse(TypedDict, total=False):
129
- attachmentSetId: Optional[AttachmentSetId]
130
- expiryTime: Optional[ExpiryTime]
129
+ attachmentSetId: AttachmentSetId | None
130
+ expiryTime: ExpiryTime | None
131
131
 
132
132
 
133
- CcEmailAddressList = List[CcEmailAddress]
133
+ CcEmailAddressList = list[CcEmailAddress]
134
134
 
135
135
 
136
136
  class AddCommunicationToCaseRequest(ServiceRequest):
137
- caseId: Optional[CaseId]
137
+ caseId: CaseId | None
138
138
  communicationBody: CommunicationBody
139
- ccEmailAddresses: Optional[CcEmailAddressList]
140
- attachmentSetId: Optional[AttachmentSetId]
139
+ ccEmailAddresses: CcEmailAddressList | None
140
+ attachmentSetId: AttachmentSetId | None
141
141
 
142
142
 
143
143
  class AddCommunicationToCaseResponse(TypedDict, total=False):
144
- result: Optional[Result]
144
+ result: Result | None
145
145
 
146
146
 
147
147
  class AttachmentDetails(TypedDict, total=False):
148
- attachmentId: Optional[AttachmentId]
149
- fileName: Optional[FileName]
148
+ attachmentId: AttachmentId | None
149
+ fileName: FileName | None
150
150
 
151
151
 
152
- AttachmentSet = List[AttachmentDetails]
152
+ AttachmentSet = list[AttachmentDetails]
153
153
 
154
154
 
155
155
  class Communication(TypedDict, total=False):
156
- caseId: Optional[CaseId]
157
- body: Optional[ValidatedCommunicationBody]
158
- submittedBy: Optional[SubmittedBy]
159
- timeCreated: Optional[TimeCreated]
160
- attachmentSet: Optional[AttachmentSet]
156
+ caseId: CaseId | None
157
+ body: ValidatedCommunicationBody | None
158
+ submittedBy: SubmittedBy | None
159
+ timeCreated: TimeCreated | None
160
+ attachmentSet: AttachmentSet | None
161
161
 
162
162
 
163
- CommunicationList = List[Communication]
163
+ CommunicationList = list[Communication]
164
164
 
165
165
 
166
166
  class RecentCaseCommunications(TypedDict, total=False):
167
- communications: Optional[CommunicationList]
168
- nextToken: Optional[NextToken]
167
+ communications: CommunicationList | None
168
+ nextToken: NextToken | None
169
169
 
170
170
 
171
171
  class CaseDetails(TypedDict, total=False):
172
- caseId: Optional[CaseId]
173
- displayId: Optional[DisplayId]
174
- subject: Optional[Subject]
175
- status: Optional[Status]
176
- serviceCode: Optional[ServiceCode]
177
- categoryCode: Optional[CategoryCode]
178
- severityCode: Optional[SeverityCode]
179
- submittedBy: Optional[SubmittedBy]
180
- timeCreated: Optional[TimeCreated]
181
- recentCommunications: Optional[RecentCaseCommunications]
182
- ccEmailAddresses: Optional[CcEmailAddressList]
183
- language: Optional[Language]
172
+ caseId: CaseId | None
173
+ displayId: DisplayId | None
174
+ subject: Subject | None
175
+ status: Status | None
176
+ serviceCode: ServiceCode | None
177
+ categoryCode: CategoryCode | None
178
+ severityCode: SeverityCode | None
179
+ submittedBy: SubmittedBy | None
180
+ timeCreated: TimeCreated | None
181
+ recentCommunications: RecentCaseCommunications | None
182
+ ccEmailAddresses: CcEmailAddressList | None
183
+ language: Language | None
184
184
 
185
185
 
186
- CaseIdList = List[CaseId]
187
- CaseList = List[CaseDetails]
186
+ CaseIdList = list[CaseId]
187
+ CaseList = list[CaseDetails]
188
188
 
189
189
 
190
190
  class Category(TypedDict, total=False):
191
- code: Optional[CategoryCode]
192
- name: Optional[CategoryName]
191
+ code: CategoryCode | None
192
+ name: CategoryName | None
193
193
 
194
194
 
195
- CategoryList = List[Category]
195
+ CategoryList = list[Category]
196
196
 
197
197
 
198
198
  class DateInterval(TypedDict, total=False):
199
- startDateTime: Optional[ValidatedDateTime]
200
- endDateTime: Optional[ValidatedDateTime]
199
+ startDateTime: ValidatedDateTime | None
200
+ endDateTime: ValidatedDateTime | None
201
201
 
202
202
 
203
- DatesWithoutSupportList = List[DateInterval]
203
+ DatesWithoutSupportList = list[DateInterval]
204
204
 
205
205
 
206
206
  class SupportedHour(TypedDict, total=False):
207
- startTime: Optional[StartTime]
208
- endTime: Optional[EndTime]
207
+ startTime: StartTime | None
208
+ endTime: EndTime | None
209
209
 
210
210
 
211
- SupportedHoursList = List[SupportedHour]
211
+ SupportedHoursList = list[SupportedHour]
212
212
 
213
213
 
214
214
  class CommunicationTypeOptions(TypedDict, total=False):
215
- type: Optional[Type]
216
- supportedHours: Optional[SupportedHoursList]
217
- datesWithoutSupport: Optional[DatesWithoutSupportList]
215
+ type: Type | None
216
+ supportedHours: SupportedHoursList | None
217
+ datesWithoutSupport: DatesWithoutSupportList | None
218
218
 
219
219
 
220
- CommunicationTypeOptionsList = List[CommunicationTypeOptions]
220
+ CommunicationTypeOptionsList = list[CommunicationTypeOptions]
221
221
 
222
222
 
223
223
  class CreateCaseRequest(ServiceRequest):
224
224
  subject: Subject
225
- serviceCode: Optional[ServiceCode]
226
- severityCode: Optional[SeverityCode]
227
- categoryCode: Optional[CategoryCode]
225
+ serviceCode: ServiceCode | None
226
+ severityCode: SeverityCode | None
227
+ categoryCode: CategoryCode | None
228
228
  communicationBody: CommunicationBody
229
- ccEmailAddresses: Optional[CcEmailAddressList]
230
- language: Optional[Language]
231
- issueType: Optional[IssueType]
232
- attachmentSetId: Optional[AttachmentSetId]
229
+ ccEmailAddresses: CcEmailAddressList | None
230
+ language: Language | None
231
+ issueType: IssueType | None
232
+ attachmentSetId: AttachmentSetId | None
233
233
 
234
234
 
235
235
  class CreateCaseResponse(TypedDict, total=False):
236
- caseId: Optional[CaseId]
236
+ caseId: CaseId | None
237
237
 
238
238
 
239
239
  class DescribeAttachmentRequest(ServiceRequest):
@@ -241,37 +241,37 @@ class DescribeAttachmentRequest(ServiceRequest):
241
241
 
242
242
 
243
243
  class DescribeAttachmentResponse(TypedDict, total=False):
244
- attachment: Optional[Attachment]
244
+ attachment: Attachment | None
245
245
 
246
246
 
247
247
  class DescribeCasesRequest(ServiceRequest):
248
- caseIdList: Optional[CaseIdList]
249
- displayId: Optional[DisplayId]
250
- afterTime: Optional[AfterTime]
251
- beforeTime: Optional[BeforeTime]
252
- includeResolvedCases: Optional[IncludeResolvedCases]
253
- nextToken: Optional[NextToken]
254
- maxResults: Optional[MaxResults]
255
- language: Optional[Language]
256
- includeCommunications: Optional[IncludeCommunications]
248
+ caseIdList: CaseIdList | None
249
+ displayId: DisplayId | None
250
+ afterTime: AfterTime | None
251
+ beforeTime: BeforeTime | None
252
+ includeResolvedCases: IncludeResolvedCases | None
253
+ nextToken: NextToken | None
254
+ maxResults: MaxResults | None
255
+ language: Language | None
256
+ includeCommunications: IncludeCommunications | None
257
257
 
258
258
 
259
259
  class DescribeCasesResponse(TypedDict, total=False):
260
- cases: Optional[CaseList]
261
- nextToken: Optional[NextToken]
260
+ cases: CaseList | None
261
+ nextToken: NextToken | None
262
262
 
263
263
 
264
264
  class DescribeCommunicationsRequest(ServiceRequest):
265
265
  caseId: CaseId
266
- beforeTime: Optional[BeforeTime]
267
- afterTime: Optional[AfterTime]
268
- nextToken: Optional[NextToken]
269
- maxResults: Optional[MaxResults]
266
+ beforeTime: BeforeTime | None
267
+ afterTime: AfterTime | None
268
+ nextToken: NextToken | None
269
+ maxResults: MaxResults | None
270
270
 
271
271
 
272
272
  class DescribeCommunicationsResponse(TypedDict, total=False):
273
- communications: Optional[CommunicationList]
274
- nextToken: Optional[NextToken]
273
+ communications: CommunicationList | None
274
+ nextToken: NextToken | None
275
275
 
276
276
 
277
277
  class DescribeCreateCaseOptionsRequest(ServiceRequest):
@@ -282,45 +282,45 @@ class DescribeCreateCaseOptionsRequest(ServiceRequest):
282
282
 
283
283
 
284
284
  class DescribeCreateCaseOptionsResponse(TypedDict, total=False):
285
- languageAvailability: Optional[ValidatedLanguageAvailability]
286
- communicationTypes: Optional[CommunicationTypeOptionsList]
285
+ languageAvailability: ValidatedLanguageAvailability | None
286
+ communicationTypes: CommunicationTypeOptionsList | None
287
287
 
288
288
 
289
- ServiceCodeList = List[ServiceCode]
289
+ ServiceCodeList = list[ServiceCode]
290
290
 
291
291
 
292
292
  class DescribeServicesRequest(ServiceRequest):
293
- serviceCodeList: Optional[ServiceCodeList]
294
- language: Optional[Language]
293
+ serviceCodeList: ServiceCodeList | None
294
+ language: Language | None
295
295
 
296
296
 
297
297
  class Service(TypedDict, total=False):
298
- code: Optional[ServiceCode]
299
- name: Optional[ServiceName]
300
- categories: Optional[CategoryList]
298
+ code: ServiceCode | None
299
+ name: ServiceName | None
300
+ categories: CategoryList | None
301
301
 
302
302
 
303
- ServiceList = List[Service]
303
+ ServiceList = list[Service]
304
304
 
305
305
 
306
306
  class DescribeServicesResponse(TypedDict, total=False):
307
- services: Optional[ServiceList]
307
+ services: ServiceList | None
308
308
 
309
309
 
310
310
  class DescribeSeverityLevelsRequest(ServiceRequest):
311
- language: Optional[Language]
311
+ language: Language | None
312
312
 
313
313
 
314
314
  class SeverityLevel(TypedDict, total=False):
315
- code: Optional[SeverityLevelCode]
316
- name: Optional[SeverityLevelName]
315
+ code: SeverityLevelCode | None
316
+ name: SeverityLevelName | None
317
317
 
318
318
 
319
- SeverityLevelsList = List[SeverityLevel]
319
+ SeverityLevelsList = list[SeverityLevel]
320
320
 
321
321
 
322
322
  class DescribeSeverityLevelsResponse(TypedDict, total=False):
323
- severityLevels: Optional[SeverityLevelsList]
323
+ severityLevels: SeverityLevelsList | None
324
324
 
325
325
 
326
326
  class DescribeSupportedLanguagesRequest(ServiceRequest):
@@ -330,19 +330,19 @@ class DescribeSupportedLanguagesRequest(ServiceRequest):
330
330
 
331
331
 
332
332
  class SupportedLanguage(TypedDict, total=False):
333
- code: Optional[Code]
334
- language: Optional[Language]
335
- display: Optional[Display]
333
+ code: Code | None
334
+ language: Language | None
335
+ display: Display | None
336
336
 
337
337
 
338
- SupportedLanguagesList = List[SupportedLanguage]
338
+ SupportedLanguagesList = list[SupportedLanguage]
339
339
 
340
340
 
341
341
  class DescribeSupportedLanguagesResponse(TypedDict, total=False):
342
- supportedLanguages: Optional[SupportedLanguagesList]
342
+ supportedLanguages: SupportedLanguagesList | None
343
343
 
344
344
 
345
- StringList = List[String]
345
+ StringList = list[String]
346
346
 
347
347
 
348
348
  class DescribeTrustedAdvisorCheckRefreshStatusesRequest(ServiceRequest):
@@ -358,7 +358,7 @@ class TrustedAdvisorCheckRefreshStatus(TypedDict, total=False):
358
358
  millisUntilNextRefreshable: Long
359
359
 
360
360
 
361
- TrustedAdvisorCheckRefreshStatusList = List[TrustedAdvisorCheckRefreshStatus]
361
+ TrustedAdvisorCheckRefreshStatusList = list[TrustedAdvisorCheckRefreshStatus]
362
362
 
363
363
 
364
364
  class DescribeTrustedAdvisorCheckRefreshStatusesResponse(TypedDict, total=False):
@@ -367,18 +367,18 @@ class DescribeTrustedAdvisorCheckRefreshStatusesResponse(TypedDict, total=False)
367
367
 
368
368
  class DescribeTrustedAdvisorCheckResultRequest(ServiceRequest):
369
369
  checkId: String
370
- language: Optional[String]
370
+ language: String | None
371
371
 
372
372
 
373
373
  class TrustedAdvisorResourceDetail(TypedDict, total=False):
374
374
  status: String
375
- region: Optional[String]
375
+ region: String | None
376
376
  resourceId: String
377
- isSuppressed: Optional[Boolean]
377
+ isSuppressed: Boolean | None
378
378
  metadata: StringList
379
379
 
380
380
 
381
- TrustedAdvisorResourceDetailList = List[TrustedAdvisorResourceDetail]
381
+ TrustedAdvisorResourceDetailList = list[TrustedAdvisorResourceDetail]
382
382
 
383
383
 
384
384
  class TrustedAdvisorCostOptimizingSummary(TypedDict, total=False):
@@ -387,7 +387,7 @@ class TrustedAdvisorCostOptimizingSummary(TypedDict, total=False):
387
387
 
388
388
 
389
389
  class TrustedAdvisorCategorySpecificSummary(TypedDict, total=False):
390
- costOptimizing: Optional[TrustedAdvisorCostOptimizingSummary]
390
+ costOptimizing: TrustedAdvisorCostOptimizingSummary | None
391
391
 
392
392
 
393
393
  class TrustedAdvisorResourcesSummary(TypedDict, total=False):
@@ -407,7 +407,7 @@ class TrustedAdvisorCheckResult(TypedDict, total=False):
407
407
 
408
408
 
409
409
  class DescribeTrustedAdvisorCheckResultResponse(TypedDict, total=False):
410
- result: Optional[TrustedAdvisorCheckResult]
410
+ result: TrustedAdvisorCheckResult | None
411
411
 
412
412
 
413
413
  class DescribeTrustedAdvisorCheckSummariesRequest(ServiceRequest):
@@ -418,12 +418,12 @@ class TrustedAdvisorCheckSummary(TypedDict, total=False):
418
418
  checkId: String
419
419
  timestamp: String
420
420
  status: String
421
- hasFlaggedResources: Optional[Boolean]
421
+ hasFlaggedResources: Boolean | None
422
422
  resourcesSummary: TrustedAdvisorResourcesSummary
423
423
  categorySpecificSummary: TrustedAdvisorCategorySpecificSummary
424
424
 
425
425
 
426
- TrustedAdvisorCheckSummaryList = List[TrustedAdvisorCheckSummary]
426
+ TrustedAdvisorCheckSummaryList = list[TrustedAdvisorCheckSummary]
427
427
 
428
428
 
429
429
  class DescribeTrustedAdvisorCheckSummariesResponse(TypedDict, total=False):
@@ -442,7 +442,7 @@ class TrustedAdvisorCheckDescription(TypedDict, total=False):
442
442
  metadata: StringList
443
443
 
444
444
 
445
- TrustedAdvisorCheckList = List[TrustedAdvisorCheckDescription]
445
+ TrustedAdvisorCheckList = list[TrustedAdvisorCheckDescription]
446
446
 
447
447
 
448
448
  class DescribeTrustedAdvisorChecksResponse(TypedDict, total=False):
@@ -458,17 +458,17 @@ class RefreshTrustedAdvisorCheckResponse(TypedDict, total=False):
458
458
 
459
459
 
460
460
  class ResolveCaseRequest(ServiceRequest):
461
- caseId: Optional[CaseId]
461
+ caseId: CaseId | None
462
462
 
463
463
 
464
464
  class ResolveCaseResponse(TypedDict, total=False):
465
- initialCaseStatus: Optional[CaseStatus]
466
- finalCaseStatus: Optional[CaseStatus]
465
+ initialCaseStatus: CaseStatus | None
466
+ finalCaseStatus: CaseStatus | None
467
467
 
468
468
 
469
469
  class SupportApi:
470
- service = "support"
471
- version = "2013-04-15"
470
+ service: str = "support"
471
+ version: str = "2013-04-15"
472
472
 
473
473
  @handler("AddAttachmentsToSet")
474
474
  def add_attachments_to_set(