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,5 +1,5 @@
1
1
  from datetime import datetime
2
- from typing import List, Optional, TypedDict
2
+ from typing import TypedDict
3
3
 
4
4
  from localstack.aws.api import RequestContext, ServiceException, ServiceRequest, handler
5
5
 
@@ -22,30 +22,39 @@ decodedMessageType = str
22
22
  durationSecondsType = int
23
23
  encodedMessageType = str
24
24
  expiredIdentityTokenMessage = str
25
+ expiredTradeInTokenExceptionMessage = str
25
26
  externalIdType = str
26
27
  federatedIdType = str
27
28
  idpCommunicationErrorMessage = str
28
29
  idpRejectedClaimMessage = str
29
30
  invalidAuthorizationMessage = str
30
31
  invalidIdentityTokenMessage = str
32
+ jwtAlgorithmType = str
33
+ jwtPayloadSizeExceededException = str
31
34
  malformedPolicyDocumentMessage = str
32
35
  nonNegativeIntegerType = int
36
+ outboundWebIdentityFederationDisabledException = str
33
37
  packedPolicyTooLargeMessage = str
34
38
  regionDisabledMessage = str
35
39
  roleDurationSecondsType = int
36
40
  roleSessionNameType = str
37
41
  serialNumberType = str
42
+ sessionDurationEscalationException = str
38
43
  sessionPolicyDocumentType = str
39
44
  sourceIdentityType = str
40
45
  tagKeyType = str
41
46
  tagValueType = str
42
47
  tokenCodeType = str
43
48
  tokenType = str
49
+ tradeInTokenType = str
44
50
  unrestrictedSessionPolicyDocumentType = str
45
51
  urlType = str
46
52
  userIdType = str
47
53
  userNameType = str
48
54
  webIdentitySubjectType = str
55
+ webIdentityTokenAudienceStringType = str
56
+ webIdentityTokenDurationSecondsType = int
57
+ webIdentityTokenType = str
49
58
 
50
59
 
51
60
  class ExpiredTokenException(ServiceException):
@@ -54,6 +63,12 @@ class ExpiredTokenException(ServiceException):
54
63
  status_code: int = 400
55
64
 
56
65
 
66
+ class ExpiredTradeInTokenException(ServiceException):
67
+ code: str = "ExpiredTradeInTokenException"
68
+ sender_fault: bool = True
69
+ status_code: int = 400
70
+
71
+
57
72
  class IDPCommunicationErrorException(ServiceException):
58
73
  code: str = "IDPCommunicationError"
59
74
  sender_fault: bool = True
@@ -78,12 +93,24 @@ class InvalidIdentityTokenException(ServiceException):
78
93
  status_code: int = 400
79
94
 
80
95
 
96
+ class JWTPayloadSizeExceededException(ServiceException):
97
+ code: str = "JWTPayloadSizeExceededException"
98
+ sender_fault: bool = True
99
+ status_code: int = 400
100
+
101
+
81
102
  class MalformedPolicyDocumentException(ServiceException):
82
103
  code: str = "MalformedPolicyDocument"
83
104
  sender_fault: bool = True
84
105
  status_code: int = 400
85
106
 
86
107
 
108
+ class OutboundWebIdentityFederationDisabledException(ServiceException):
109
+ code: str = "OutboundWebIdentityFederationDisabledException"
110
+ sender_fault: bool = True
111
+ status_code: int = 403
112
+
113
+
87
114
  class PackedPolicyTooLargeException(ServiceException):
88
115
  code: str = "PackedPolicyTooLarge"
89
116
  sender_fault: bool = True
@@ -96,13 +123,19 @@ class RegionDisabledException(ServiceException):
96
123
  status_code: int = 403
97
124
 
98
125
 
126
+ class SessionDurationEscalationException(ServiceException):
127
+ code: str = "SessionDurationEscalationException"
128
+ sender_fault: bool = True
129
+ status_code: int = 403
130
+
131
+
99
132
  class ProvidedContext(TypedDict, total=False):
100
- ProviderArn: Optional[arnType]
101
- ContextAssertion: Optional[contextAssertionType]
133
+ ProviderArn: arnType | None
134
+ ContextAssertion: contextAssertionType | None
102
135
 
103
136
 
104
- ProvidedContextsListType = List[ProvidedContext]
105
- tagKeyListType = List[tagKeyType]
137
+ ProvidedContextsListType = list[ProvidedContext]
138
+ tagKeyListType = list[tagKeyType]
106
139
 
107
140
 
108
141
  class Tag(TypedDict, total=False):
@@ -110,29 +143,29 @@ class Tag(TypedDict, total=False):
110
143
  Value: tagValueType
111
144
 
112
145
 
113
- tagListType = List[Tag]
146
+ tagListType = list[Tag]
114
147
 
115
148
 
116
149
  class PolicyDescriptorType(TypedDict, total=False):
117
- arn: Optional[arnType]
150
+ arn: arnType | None
118
151
 
119
152
 
120
- policyDescriptorListType = List[PolicyDescriptorType]
153
+ policyDescriptorListType = list[PolicyDescriptorType]
121
154
 
122
155
 
123
156
  class AssumeRoleRequest(ServiceRequest):
124
157
  RoleArn: arnType
125
158
  RoleSessionName: roleSessionNameType
126
- PolicyArns: Optional[policyDescriptorListType]
127
- Policy: Optional[unrestrictedSessionPolicyDocumentType]
128
- DurationSeconds: Optional[roleDurationSecondsType]
129
- Tags: Optional[tagListType]
130
- TransitiveTagKeys: Optional[tagKeyListType]
131
- ExternalId: Optional[externalIdType]
132
- SerialNumber: Optional[serialNumberType]
133
- TokenCode: Optional[tokenCodeType]
134
- SourceIdentity: Optional[sourceIdentityType]
135
- ProvidedContexts: Optional[ProvidedContextsListType]
159
+ PolicyArns: policyDescriptorListType | None
160
+ Policy: unrestrictedSessionPolicyDocumentType | None
161
+ DurationSeconds: roleDurationSecondsType | None
162
+ Tags: tagListType | None
163
+ TransitiveTagKeys: tagKeyListType | None
164
+ ExternalId: externalIdType | None
165
+ SerialNumber: serialNumberType | None
166
+ TokenCode: tokenCodeType | None
167
+ SourceIdentity: sourceIdentityType | None
168
+ ProvidedContexts: ProvidedContextsListType | None
136
169
 
137
170
 
138
171
  class AssumedRoleUser(TypedDict, total=False):
@@ -151,62 +184,62 @@ class Credentials(TypedDict, total=False):
151
184
 
152
185
 
153
186
  class AssumeRoleResponse(TypedDict, total=False):
154
- Credentials: Optional[Credentials]
155
- AssumedRoleUser: Optional[AssumedRoleUser]
156
- PackedPolicySize: Optional[nonNegativeIntegerType]
157
- SourceIdentity: Optional[sourceIdentityType]
187
+ Credentials: Credentials | None
188
+ AssumedRoleUser: AssumedRoleUser | None
189
+ PackedPolicySize: nonNegativeIntegerType | None
190
+ SourceIdentity: sourceIdentityType | None
158
191
 
159
192
 
160
193
  class AssumeRoleWithSAMLRequest(ServiceRequest):
161
194
  RoleArn: arnType
162
195
  PrincipalArn: arnType
163
196
  SAMLAssertion: SAMLAssertionType
164
- PolicyArns: Optional[policyDescriptorListType]
165
- Policy: Optional[sessionPolicyDocumentType]
166
- DurationSeconds: Optional[roleDurationSecondsType]
197
+ PolicyArns: policyDescriptorListType | None
198
+ Policy: sessionPolicyDocumentType | None
199
+ DurationSeconds: roleDurationSecondsType | None
167
200
 
168
201
 
169
202
  class AssumeRoleWithSAMLResponse(TypedDict, total=False):
170
- Credentials: Optional[Credentials]
171
- AssumedRoleUser: Optional[AssumedRoleUser]
172
- PackedPolicySize: Optional[nonNegativeIntegerType]
173
- Subject: Optional[Subject]
174
- SubjectType: Optional[SubjectType]
175
- Issuer: Optional[Issuer]
176
- Audience: Optional[Audience]
177
- NameQualifier: Optional[NameQualifier]
178
- SourceIdentity: Optional[sourceIdentityType]
203
+ Credentials: Credentials | None
204
+ AssumedRoleUser: AssumedRoleUser | None
205
+ PackedPolicySize: nonNegativeIntegerType | None
206
+ Subject: Subject | None
207
+ SubjectType: SubjectType | None
208
+ Issuer: Issuer | None
209
+ Audience: Audience | None
210
+ NameQualifier: NameQualifier | None
211
+ SourceIdentity: sourceIdentityType | None
179
212
 
180
213
 
181
214
  class AssumeRoleWithWebIdentityRequest(ServiceRequest):
182
215
  RoleArn: arnType
183
216
  RoleSessionName: roleSessionNameType
184
217
  WebIdentityToken: clientTokenType
185
- ProviderId: Optional[urlType]
186
- PolicyArns: Optional[policyDescriptorListType]
187
- Policy: Optional[sessionPolicyDocumentType]
188
- DurationSeconds: Optional[roleDurationSecondsType]
218
+ ProviderId: urlType | None
219
+ PolicyArns: policyDescriptorListType | None
220
+ Policy: sessionPolicyDocumentType | None
221
+ DurationSeconds: roleDurationSecondsType | None
189
222
 
190
223
 
191
224
  class AssumeRoleWithWebIdentityResponse(TypedDict, total=False):
192
- Credentials: Optional[Credentials]
193
- SubjectFromWebIdentityToken: Optional[webIdentitySubjectType]
194
- AssumedRoleUser: Optional[AssumedRoleUser]
195
- PackedPolicySize: Optional[nonNegativeIntegerType]
196
- Provider: Optional[Issuer]
197
- Audience: Optional[Audience]
198
- SourceIdentity: Optional[sourceIdentityType]
225
+ Credentials: Credentials | None
226
+ SubjectFromWebIdentityToken: webIdentitySubjectType | None
227
+ AssumedRoleUser: AssumedRoleUser | None
228
+ PackedPolicySize: nonNegativeIntegerType | None
229
+ Provider: Issuer | None
230
+ Audience: Audience | None
231
+ SourceIdentity: sourceIdentityType | None
199
232
 
200
233
 
201
234
  class AssumeRootRequest(ServiceRequest):
202
235
  TargetPrincipal: TargetPrincipalType
203
236
  TaskPolicyArn: PolicyDescriptorType
204
- DurationSeconds: Optional[RootDurationSecondsType]
237
+ DurationSeconds: RootDurationSecondsType | None
205
238
 
206
239
 
207
240
  class AssumeRootResponse(TypedDict, total=False):
208
- Credentials: Optional[Credentials]
209
- SourceIdentity: Optional[sourceIdentityType]
241
+ Credentials: Credentials | None
242
+ SourceIdentity: sourceIdentityType | None
210
243
 
211
244
 
212
245
  class DecodeAuthorizationMessageRequest(ServiceRequest):
@@ -214,7 +247,7 @@ class DecodeAuthorizationMessageRequest(ServiceRequest):
214
247
 
215
248
 
216
249
  class DecodeAuthorizationMessageResponse(TypedDict, total=False):
217
- DecodedMessage: Optional[decodedMessageType]
250
+ DecodedMessage: decodedMessageType | None
218
251
 
219
252
 
220
253
  class FederatedUser(TypedDict, total=False):
@@ -227,7 +260,7 @@ class GetAccessKeyInfoRequest(ServiceRequest):
227
260
 
228
261
 
229
262
  class GetAccessKeyInfoResponse(TypedDict, total=False):
230
- Account: Optional[accountType]
263
+ Account: accountType | None
231
264
 
232
265
 
233
266
  class GetCallerIdentityRequest(ServiceRequest):
@@ -235,38 +268,63 @@ class GetCallerIdentityRequest(ServiceRequest):
235
268
 
236
269
 
237
270
  class GetCallerIdentityResponse(TypedDict, total=False):
238
- UserId: Optional[userIdType]
239
- Account: Optional[accountType]
240
- Arn: Optional[arnType]
271
+ UserId: userIdType | None
272
+ Account: accountType | None
273
+ Arn: arnType | None
274
+
275
+
276
+ class GetDelegatedAccessTokenRequest(ServiceRequest):
277
+ TradeInToken: tradeInTokenType
278
+
279
+
280
+ class GetDelegatedAccessTokenResponse(TypedDict, total=False):
281
+ Credentials: Credentials | None
282
+ PackedPolicySize: nonNegativeIntegerType | None
283
+ AssumedPrincipal: arnType | None
241
284
 
242
285
 
243
286
  class GetFederationTokenRequest(ServiceRequest):
244
287
  Name: userNameType
245
- Policy: Optional[sessionPolicyDocumentType]
246
- PolicyArns: Optional[policyDescriptorListType]
247
- DurationSeconds: Optional[durationSecondsType]
248
- Tags: Optional[tagListType]
288
+ Policy: sessionPolicyDocumentType | None
289
+ PolicyArns: policyDescriptorListType | None
290
+ DurationSeconds: durationSecondsType | None
291
+ Tags: tagListType | None
249
292
 
250
293
 
251
294
  class GetFederationTokenResponse(TypedDict, total=False):
252
- Credentials: Optional[Credentials]
253
- FederatedUser: Optional[FederatedUser]
254
- PackedPolicySize: Optional[nonNegativeIntegerType]
295
+ Credentials: Credentials | None
296
+ FederatedUser: FederatedUser | None
297
+ PackedPolicySize: nonNegativeIntegerType | None
255
298
 
256
299
 
257
300
  class GetSessionTokenRequest(ServiceRequest):
258
- DurationSeconds: Optional[durationSecondsType]
259
- SerialNumber: Optional[serialNumberType]
260
- TokenCode: Optional[tokenCodeType]
301
+ DurationSeconds: durationSecondsType | None
302
+ SerialNumber: serialNumberType | None
303
+ TokenCode: tokenCodeType | None
261
304
 
262
305
 
263
306
  class GetSessionTokenResponse(TypedDict, total=False):
264
- Credentials: Optional[Credentials]
307
+ Credentials: Credentials | None
308
+
309
+
310
+ webIdentityTokenAudienceListType = list[webIdentityTokenAudienceStringType]
311
+
312
+
313
+ class GetWebIdentityTokenRequest(ServiceRequest):
314
+ Audience: webIdentityTokenAudienceListType
315
+ DurationSeconds: webIdentityTokenDurationSecondsType | None
316
+ SigningAlgorithm: jwtAlgorithmType
317
+ Tags: tagListType | None
318
+
319
+
320
+ class GetWebIdentityTokenResponse(TypedDict, total=False):
321
+ WebIdentityToken: webIdentityTokenType | None
322
+ Expiration: dateType | None
265
323
 
266
324
 
267
325
  class StsApi:
268
- service = "sts"
269
- version = "2011-06-15"
326
+ service: str = "sts"
327
+ version: str = "2011-06-15"
270
328
 
271
329
  @handler("AssumeRole")
272
330
  def assume_role(
@@ -344,6 +402,12 @@ class StsApi:
344
402
  def get_caller_identity(self, context: RequestContext, **kwargs) -> GetCallerIdentityResponse:
345
403
  raise NotImplementedError
346
404
 
405
+ @handler("GetDelegatedAccessToken")
406
+ def get_delegated_access_token(
407
+ self, context: RequestContext, trade_in_token: tradeInTokenType, **kwargs
408
+ ) -> GetDelegatedAccessTokenResponse:
409
+ raise NotImplementedError
410
+
347
411
  @handler("GetFederationToken")
348
412
  def get_federation_token(
349
413
  self,
@@ -367,3 +431,15 @@ class StsApi:
367
431
  **kwargs,
368
432
  ) -> GetSessionTokenResponse:
369
433
  raise NotImplementedError
434
+
435
+ @handler("GetWebIdentityToken")
436
+ def get_web_identity_token(
437
+ self,
438
+ context: RequestContext,
439
+ audience: webIdentityTokenAudienceListType,
440
+ signing_algorithm: jwtAlgorithmType,
441
+ duration_seconds: webIdentityTokenDurationSecondsType | None = None,
442
+ tags: tagListType | None = None,
443
+ **kwargs,
444
+ ) -> GetWebIdentityTokenResponse:
445
+ raise NotImplementedError