localstack-core 4.10.1.dev7__py3-none-any.whl → 4.10.1.dev42__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 (77) hide show
  1. localstack/aws/api/acm/__init__.py +122 -122
  2. localstack/aws/api/apigateway/__init__.py +560 -559
  3. localstack/aws/api/cloudcontrol/__init__.py +63 -63
  4. localstack/aws/api/cloudformation/__init__.py +1040 -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 +8901 -8818
  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 +639 -572
  14. localstack/aws/api/kinesis/__init__.py +235 -147
  15. localstack/aws/api/kms/__init__.py +340 -336
  16. localstack/aws/api/lambda_/__init__.py +574 -573
  17. localstack/aws/api/logs/__init__.py +676 -675
  18. localstack/aws/api/opensearch/__init__.py +814 -785
  19. localstack/aws/api/pipes/__init__.py +336 -336
  20. localstack/aws/api/redshift/__init__.py +1188 -1166
  21. localstack/aws/api/resource_groups/__init__.py +175 -175
  22. localstack/aws/api/resourcegroupstaggingapi/__init__.py +67 -67
  23. localstack/aws/api/route53/__init__.py +254 -254
  24. localstack/aws/api/route53resolver/__init__.py +396 -396
  25. localstack/aws/api/s3/__init__.py +1350 -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 +193 -193
  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 +323 -323
  34. localstack/aws/api/sts/__init__.py +90 -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/service.py +11 -1
  39. localstack/aws/protocol/parser.py +1 -1
  40. localstack/aws/scaffold.py +15 -17
  41. localstack/cli/localstack.py +6 -1
  42. localstack/dev/kubernetes/__main__.py +38 -3
  43. localstack/services/apigateway/helpers.py +5 -9
  44. localstack/services/apigateway/legacy/provider.py +32 -9
  45. localstack/services/apigateway/patches.py +0 -9
  46. localstack/services/cloudformation/provider.py +2 -2
  47. localstack/services/cloudformation/v2/provider.py +6 -6
  48. localstack/services/kinesis/packages.py +1 -1
  49. localstack/services/kms/models.py +34 -4
  50. localstack/services/kms/provider.py +93 -16
  51. localstack/services/lambda_/api_utils.py +3 -1
  52. localstack/services/lambda_/packages.py +1 -1
  53. localstack/services/lambda_/provider.py +1 -1
  54. localstack/services/lambda_/runtimes.py +8 -3
  55. localstack/services/logs/provider.py +36 -19
  56. localstack/services/s3/provider.py +1 -1
  57. localstack/services/sns/v2/models.py +24 -1
  58. localstack/services/sns/v2/provider.py +144 -12
  59. localstack/services/sns/v2/utils.py +8 -0
  60. localstack/services/sqs/models.py +37 -10
  61. localstack/testing/snapshots/transformer_utility.py +2 -0
  62. localstack/testing/testselection/matching.py +0 -1
  63. localstack/utils/aws/client_types.py +0 -8
  64. localstack/utils/catalog/catalog_loader.py +111 -3
  65. localstack/utils/crypto.py +109 -0
  66. localstack/version.py +2 -2
  67. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.dist-info}/METADATA +6 -5
  68. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.dist-info}/RECORD +76 -76
  69. localstack_core-4.10.1.dev42.dist-info/plux.json +1 -0
  70. localstack_core-4.10.1.dev7.dist-info/plux.json +0 -1
  71. {localstack_core-4.10.1.dev7.data → localstack_core-4.10.1.dev42.data}/scripts/localstack +0 -0
  72. {localstack_core-4.10.1.dev7.data → localstack_core-4.10.1.dev42.data}/scripts/localstack-supervisor +0 -0
  73. {localstack_core-4.10.1.dev7.data → localstack_core-4.10.1.dev42.data}/scripts/localstack.bat +0 -0
  74. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.dist-info}/WHEEL +0 -0
  75. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.dist-info}/entry_points.txt +0 -0
  76. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.dist-info}/licenses/LICENSE.txt +0 -0
  77. {localstack_core-4.10.1.dev7.dist-info → localstack_core-4.10.1.dev42.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,6 +22,7 @@ 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
@@ -41,6 +42,7 @@ tagKeyType = str
41
42
  tagValueType = str
42
43
  tokenCodeType = str
43
44
  tokenType = str
45
+ tradeInTokenType = str
44
46
  unrestrictedSessionPolicyDocumentType = str
45
47
  urlType = str
46
48
  userIdType = str
@@ -54,6 +56,12 @@ class ExpiredTokenException(ServiceException):
54
56
  status_code: int = 400
55
57
 
56
58
 
59
+ class ExpiredTradeInTokenException(ServiceException):
60
+ code: str = "ExpiredTradeInTokenException"
61
+ sender_fault: bool = True
62
+ status_code: int = 400
63
+
64
+
57
65
  class IDPCommunicationErrorException(ServiceException):
58
66
  code: str = "IDPCommunicationError"
59
67
  sender_fault: bool = True
@@ -97,12 +105,12 @@ class RegionDisabledException(ServiceException):
97
105
 
98
106
 
99
107
  class ProvidedContext(TypedDict, total=False):
100
- ProviderArn: Optional[arnType]
101
- ContextAssertion: Optional[contextAssertionType]
108
+ ProviderArn: arnType | None
109
+ ContextAssertion: contextAssertionType | None
102
110
 
103
111
 
104
- ProvidedContextsListType = List[ProvidedContext]
105
- tagKeyListType = List[tagKeyType]
112
+ ProvidedContextsListType = list[ProvidedContext]
113
+ tagKeyListType = list[tagKeyType]
106
114
 
107
115
 
108
116
  class Tag(TypedDict, total=False):
@@ -110,29 +118,29 @@ class Tag(TypedDict, total=False):
110
118
  Value: tagValueType
111
119
 
112
120
 
113
- tagListType = List[Tag]
121
+ tagListType = list[Tag]
114
122
 
115
123
 
116
124
  class PolicyDescriptorType(TypedDict, total=False):
117
- arn: Optional[arnType]
125
+ arn: arnType | None
118
126
 
119
127
 
120
- policyDescriptorListType = List[PolicyDescriptorType]
128
+ policyDescriptorListType = list[PolicyDescriptorType]
121
129
 
122
130
 
123
131
  class AssumeRoleRequest(ServiceRequest):
124
132
  RoleArn: arnType
125
133
  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]
134
+ PolicyArns: policyDescriptorListType | None
135
+ Policy: unrestrictedSessionPolicyDocumentType | None
136
+ DurationSeconds: roleDurationSecondsType | None
137
+ Tags: tagListType | None
138
+ TransitiveTagKeys: tagKeyListType | None
139
+ ExternalId: externalIdType | None
140
+ SerialNumber: serialNumberType | None
141
+ TokenCode: tokenCodeType | None
142
+ SourceIdentity: sourceIdentityType | None
143
+ ProvidedContexts: ProvidedContextsListType | None
136
144
 
137
145
 
138
146
  class AssumedRoleUser(TypedDict, total=False):
@@ -151,62 +159,62 @@ class Credentials(TypedDict, total=False):
151
159
 
152
160
 
153
161
  class AssumeRoleResponse(TypedDict, total=False):
154
- Credentials: Optional[Credentials]
155
- AssumedRoleUser: Optional[AssumedRoleUser]
156
- PackedPolicySize: Optional[nonNegativeIntegerType]
157
- SourceIdentity: Optional[sourceIdentityType]
162
+ Credentials: Credentials | None
163
+ AssumedRoleUser: AssumedRoleUser | None
164
+ PackedPolicySize: nonNegativeIntegerType | None
165
+ SourceIdentity: sourceIdentityType | None
158
166
 
159
167
 
160
168
  class AssumeRoleWithSAMLRequest(ServiceRequest):
161
169
  RoleArn: arnType
162
170
  PrincipalArn: arnType
163
171
  SAMLAssertion: SAMLAssertionType
164
- PolicyArns: Optional[policyDescriptorListType]
165
- Policy: Optional[sessionPolicyDocumentType]
166
- DurationSeconds: Optional[roleDurationSecondsType]
172
+ PolicyArns: policyDescriptorListType | None
173
+ Policy: sessionPolicyDocumentType | None
174
+ DurationSeconds: roleDurationSecondsType | None
167
175
 
168
176
 
169
177
  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]
178
+ Credentials: Credentials | None
179
+ AssumedRoleUser: AssumedRoleUser | None
180
+ PackedPolicySize: nonNegativeIntegerType | None
181
+ Subject: Subject | None
182
+ SubjectType: SubjectType | None
183
+ Issuer: Issuer | None
184
+ Audience: Audience | None
185
+ NameQualifier: NameQualifier | None
186
+ SourceIdentity: sourceIdentityType | None
179
187
 
180
188
 
181
189
  class AssumeRoleWithWebIdentityRequest(ServiceRequest):
182
190
  RoleArn: arnType
183
191
  RoleSessionName: roleSessionNameType
184
192
  WebIdentityToken: clientTokenType
185
- ProviderId: Optional[urlType]
186
- PolicyArns: Optional[policyDescriptorListType]
187
- Policy: Optional[sessionPolicyDocumentType]
188
- DurationSeconds: Optional[roleDurationSecondsType]
193
+ ProviderId: urlType | None
194
+ PolicyArns: policyDescriptorListType | None
195
+ Policy: sessionPolicyDocumentType | None
196
+ DurationSeconds: roleDurationSecondsType | None
189
197
 
190
198
 
191
199
  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]
200
+ Credentials: Credentials | None
201
+ SubjectFromWebIdentityToken: webIdentitySubjectType | None
202
+ AssumedRoleUser: AssumedRoleUser | None
203
+ PackedPolicySize: nonNegativeIntegerType | None
204
+ Provider: Issuer | None
205
+ Audience: Audience | None
206
+ SourceIdentity: sourceIdentityType | None
199
207
 
200
208
 
201
209
  class AssumeRootRequest(ServiceRequest):
202
210
  TargetPrincipal: TargetPrincipalType
203
211
  TaskPolicyArn: PolicyDescriptorType
204
- DurationSeconds: Optional[RootDurationSecondsType]
212
+ DurationSeconds: RootDurationSecondsType | None
205
213
 
206
214
 
207
215
  class AssumeRootResponse(TypedDict, total=False):
208
- Credentials: Optional[Credentials]
209
- SourceIdentity: Optional[sourceIdentityType]
216
+ Credentials: Credentials | None
217
+ SourceIdentity: sourceIdentityType | None
210
218
 
211
219
 
212
220
  class DecodeAuthorizationMessageRequest(ServiceRequest):
@@ -214,7 +222,7 @@ class DecodeAuthorizationMessageRequest(ServiceRequest):
214
222
 
215
223
 
216
224
  class DecodeAuthorizationMessageResponse(TypedDict, total=False):
217
- DecodedMessage: Optional[decodedMessageType]
225
+ DecodedMessage: decodedMessageType | None
218
226
 
219
227
 
220
228
  class FederatedUser(TypedDict, total=False):
@@ -227,7 +235,7 @@ class GetAccessKeyInfoRequest(ServiceRequest):
227
235
 
228
236
 
229
237
  class GetAccessKeyInfoResponse(TypedDict, total=False):
230
- Account: Optional[accountType]
238
+ Account: accountType | None
231
239
 
232
240
 
233
241
  class GetCallerIdentityRequest(ServiceRequest):
@@ -235,38 +243,48 @@ class GetCallerIdentityRequest(ServiceRequest):
235
243
 
236
244
 
237
245
  class GetCallerIdentityResponse(TypedDict, total=False):
238
- UserId: Optional[userIdType]
239
- Account: Optional[accountType]
240
- Arn: Optional[arnType]
246
+ UserId: userIdType | None
247
+ Account: accountType | None
248
+ Arn: arnType | None
249
+
250
+
251
+ class GetDelegatedAccessTokenRequest(ServiceRequest):
252
+ TradeInToken: tradeInTokenType
253
+
254
+
255
+ class GetDelegatedAccessTokenResponse(TypedDict, total=False):
256
+ Credentials: Credentials | None
257
+ PackedPolicySize: nonNegativeIntegerType | None
258
+ AssumedPrincipal: arnType | None
241
259
 
242
260
 
243
261
  class GetFederationTokenRequest(ServiceRequest):
244
262
  Name: userNameType
245
- Policy: Optional[sessionPolicyDocumentType]
246
- PolicyArns: Optional[policyDescriptorListType]
247
- DurationSeconds: Optional[durationSecondsType]
248
- Tags: Optional[tagListType]
263
+ Policy: sessionPolicyDocumentType | None
264
+ PolicyArns: policyDescriptorListType | None
265
+ DurationSeconds: durationSecondsType | None
266
+ Tags: tagListType | None
249
267
 
250
268
 
251
269
  class GetFederationTokenResponse(TypedDict, total=False):
252
- Credentials: Optional[Credentials]
253
- FederatedUser: Optional[FederatedUser]
254
- PackedPolicySize: Optional[nonNegativeIntegerType]
270
+ Credentials: Credentials | None
271
+ FederatedUser: FederatedUser | None
272
+ PackedPolicySize: nonNegativeIntegerType | None
255
273
 
256
274
 
257
275
  class GetSessionTokenRequest(ServiceRequest):
258
- DurationSeconds: Optional[durationSecondsType]
259
- SerialNumber: Optional[serialNumberType]
260
- TokenCode: Optional[tokenCodeType]
276
+ DurationSeconds: durationSecondsType | None
277
+ SerialNumber: serialNumberType | None
278
+ TokenCode: tokenCodeType | None
261
279
 
262
280
 
263
281
  class GetSessionTokenResponse(TypedDict, total=False):
264
- Credentials: Optional[Credentials]
282
+ Credentials: Credentials | None
265
283
 
266
284
 
267
285
  class StsApi:
268
- service = "sts"
269
- version = "2011-06-15"
286
+ service: str = "sts"
287
+ version: str = "2011-06-15"
270
288
 
271
289
  @handler("AssumeRole")
272
290
  def assume_role(
@@ -344,6 +362,12 @@ class StsApi:
344
362
  def get_caller_identity(self, context: RequestContext, **kwargs) -> GetCallerIdentityResponse:
345
363
  raise NotImplementedError
346
364
 
365
+ @handler("GetDelegatedAccessToken")
366
+ def get_delegated_access_token(
367
+ self, context: RequestContext, trade_in_token: tradeInTokenType, **kwargs
368
+ ) -> GetDelegatedAccessTokenResponse:
369
+ raise NotImplementedError
370
+
347
371
  @handler("GetFederationToken")
348
372
  def get_federation_token(
349
373
  self,