aws-lambda-powertools 3.9.1a7__py3-none-any.whl → 3.9.1a8__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.
@@ -1,3 +1,3 @@
1
1
  """Exposes version constant to avoid circular dependencies."""
2
2
 
3
- VERSION = "3.9.1a7"
3
+ VERSION = "3.9.1a8"
@@ -123,6 +123,14 @@ class APIGatewayWebSocketEvent(DictWrapper):
123
123
  def multi_value_headers(self) -> dict[str, list[str]]:
124
124
  return CaseInsensitiveDict(self.get("multiValueHeaders"))
125
125
 
126
+ @property
127
+ def query_string_parameters(self) -> dict[str, str]:
128
+ return CaseInsensitiveDict(self.get("queryStringParameters"))
129
+
130
+ @property
131
+ def multi_value_query_string_parameters(self) -> dict[str, list[str]]:
132
+ return CaseInsensitiveDict(self.get("multiValueQueryStringParameters"))
133
+
126
134
  @property
127
135
  def request_context(self) -> APIGatewayWebSocketEventRequestContext:
128
136
  return APIGatewayWebSocketEventRequestContext(self["requestContext"])
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import json
3
4
  from typing import Any, Literal
4
5
 
5
6
  from aws_lambda_powertools.utilities.data_classes.common import (
@@ -44,7 +45,7 @@ class TransferFamilyAuthorizerResponse:
44
45
  role_arn: str,
45
46
  policy: str | None = None,
46
47
  home_directory: str | None = None,
47
- home_directory_details: dict | None = None,
48
+ home_directory_details: list[dict] | None = None,
48
49
  home_directory_type: Literal["LOGICAL", "PATH"] = "PATH",
49
50
  user_gid: int | None = None,
50
51
  user_uid: int | None = None,
@@ -62,7 +63,7 @@ class TransferFamilyAuthorizerResponse:
62
63
  if not home_directory_details:
63
64
  raise ValueError("home_directory_details must be set when home_directory_type is LOGICAL")
64
65
 
65
- response["HomeDirectoryDetails"] = [home_directory_details]
66
+ response["HomeDirectoryDetails"] = json.dumps(home_directory_details)
66
67
 
67
68
  else:
68
69
  raise ValueError(f"Invalid home_directory_type: {home_directory_type}")
@@ -88,7 +89,7 @@ class TransferFamilyAuthorizerResponse:
88
89
  user_uid: int,
89
90
  policy: str | None = None,
90
91
  home_directory: str | None = None,
91
- home_directory_details: dict | None = None,
92
+ home_directory_details: list[dict] | None = None,
92
93
  home_directory_type: Literal["LOGICAL", "PATH"] = "PATH",
93
94
  public_keys: str | None = None,
94
95
  ) -> dict[str, Any]:
@@ -143,7 +144,7 @@ class TransferFamilyAuthorizerResponse:
143
144
  role_arn: str,
144
145
  policy: str | None = None,
145
146
  home_directory: str | None = None,
146
- home_directory_details: dict | None = None,
147
+ home_directory_details: list[dict] | None = None,
147
148
  home_directory_type: Literal["LOGICAL", "PATH"] = "PATH",
148
149
  public_keys: str | None = None,
149
150
  ) -> dict[str, Any]:
@@ -27,6 +27,9 @@ from .apigwv2 import (
27
27
  RequestContextV2AuthorizerJwt,
28
28
  RequestContextV2Http,
29
29
  )
30
+ from .appsync import (
31
+ AppSyncResolverEventModel,
32
+ )
30
33
  from .bedrock_agent import (
31
34
  BedrockAgentEventModel,
32
35
  BedrockAgentModel,
@@ -137,6 +140,7 @@ __all__ = [
137
140
  "AlbModel",
138
141
  "AlbRequestContext",
139
142
  "AlbRequestContextData",
143
+ "AppSyncResolverEventModel",
140
144
  "DynamoDBStreamModel",
141
145
  "EventBridgeModel",
142
146
  "DynamoDBStreamChangedRecordModel",
@@ -0,0 +1,70 @@
1
+ from typing import Optional, List, Dict, Union, Any
2
+ from pydantic import BaseModel
3
+
4
+ class AppSyncIamIdentity(BaseModel):
5
+ accountId: str
6
+ cognitoIdentityPoolId: Optional[str]
7
+ cognitoIdentityId: Optional[str]
8
+ sourceIp: List[str]
9
+ username: str
10
+ userArn: str
11
+ cognitoIdentityAuthType: Optional[str]
12
+ cognitoIdentityAuthProvider: Optional[str]
13
+
14
+
15
+ class AppSyncCognitoIdentity(BaseModel):
16
+ sub: str
17
+ issuer: str
18
+ username: str
19
+ claims: Dict[str, Any]
20
+ sourceIp: List[str]
21
+ defaultAuthStrategy: str
22
+ groups: Optional[List[str]]
23
+
24
+
25
+ class AppSyncOidcIdentity(BaseModel):
26
+ claims: Dict[str, Any]
27
+ issuer: str
28
+ sub: str
29
+
30
+
31
+ class AppSyncLambdaIdentity(BaseModel):
32
+ resolverContext: Dict[str, Any]
33
+
34
+
35
+ AppSyncIdentity = Union[
36
+ AppSyncIamIdentity,
37
+ AppSyncCognitoIdentity,
38
+ AppSyncOidcIdentity,
39
+ AppSyncLambdaIdentity,
40
+ ]
41
+
42
+
43
+ class AppSyncRequestModel(BaseModel):
44
+ domainName: Optional[str]
45
+ headers: Dict[str, str]
46
+
47
+
48
+ class AppSyncInfoModel(BaseModel):
49
+ selectionSetList: List[str]
50
+ selectionSetGraphQL: str
51
+ parentTypeName: str
52
+ fieldName: str
53
+ variables: Dict[str, Any]
54
+
55
+
56
+ class AppSyncPrevModel(BaseModel):
57
+ result: Dict[str, Any]
58
+
59
+
60
+ class AppSyncResolverEventModel(BaseModel):
61
+ arguments: Dict[str, Any]
62
+ identity: Optional[AppSyncIdentity]
63
+ source: Optional[Dict[str, Any]]
64
+ request: AppSyncRequestModel
65
+ info: AppSyncInfoModel
66
+ prev: Optional[AppSyncPrevModel]
67
+ stash: Dict[str, Any]
68
+
69
+
70
+ AppSyncBatchResolverEventModel = List[AppSyncResolverEventModel]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: aws_lambda_powertools
3
- Version: 3.9.1a7
3
+ Version: 3.9.1a8
4
4
  Summary: Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
5
5
  License: MIT
6
6
  Keywords: aws_lambda_powertools,aws,tracing,logging,lambda,powertools,feature_flags,idempotency,middleware
@@ -88,7 +88,7 @@ aws_lambda_powertools/shared/json_encoder.py,sha256=JQeWNu-4M7_xI_hqYExrxsb3OcEH
88
88
  aws_lambda_powertools/shared/lazy_import.py,sha256=TbXQm2bcwXdZrYdBaJJXIswyLlumM85RJ_A_0w-h-GU,2019
89
89
  aws_lambda_powertools/shared/types.py,sha256=APkI38HbiTpSF19NSNii8Ydx73vmVUVotgEQ9jHruEI,124
90
90
  aws_lambda_powertools/shared/user_agent.py,sha256=DrCMFQuT4a4iIrpcWpAIjY37EFqR9-QxlxDGD-Nn9Gg,7081
91
- aws_lambda_powertools/shared/version.py,sha256=9VykkNPi5Q1nSrWafqVGCm7KwfYdiltz6WNhv90NLq0,84
91
+ aws_lambda_powertools/shared/version.py,sha256=ibRgO-ZtT188ud7Rw1yhhicMoW_bFgVxhzdd9G4qHmU,84
92
92
  aws_lambda_powertools/tracing/__init__.py,sha256=f4bMThOPBPWTPVcYqcAIErAJPerMsf3H_Z4gCXCsK9I,141
93
93
  aws_lambda_powertools/tracing/base.py,sha256=DbLD8OSK05KLdSV36oNA5wDSGv8KbcOD19qMUqoXh58,4513
94
94
  aws_lambda_powertools/tracing/extensions.py,sha256=APOfXOq-hRBKaK5WyfIyrd_6M1_9SWJZ3zxLA9jDZzU,492
@@ -105,7 +105,7 @@ aws_lambda_powertools/utilities/data_classes/active_mq_event.py,sha256=gJPzcSmw1
105
105
  aws_lambda_powertools/utilities/data_classes/alb_event.py,sha256=cHfLaAWwhSuIk-H52xIA4Mq1nx8b0tDxN0slPy0ZamQ,1836
106
106
  aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py,sha256=dmoR9aIbhqRIrFKX__BFxvbkYl3fr72RbLct7hG5f04,27034
107
107
  aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py,sha256=X5SxZDjVROT4h9xxw3CqZ5YAPD6m1w48CSG4sPpUPe8,10412
108
- aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py,sha256=B_B5tMJhwqGjVKwLjlu9CqOauP3c3_eByPvFPbU1_pc,3214
108
+ aws_lambda_powertools/utilities/data_classes/api_gateway_websocket_event.py,sha256=6Ou7KMRn1OA-ri3zrBaqLpirL6NgXDJ7ba9ogq8rZBw,3526
109
109
  aws_lambda_powertools/utilities/data_classes/appsync/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
110
  aws_lambda_powertools/utilities/data_classes/appsync/scalar_types_utils.py,sha256=EjaJKZsPwyM6XY-FrooZzadfAtvZRbYS1BHiyQi-GrQ,2662
111
111
  aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py,sha256=312D_hbPpCFK3978Ruhu91du5pj0N-5GeJ0rj9jZxk4,3833
@@ -138,7 +138,7 @@ aws_lambda_powertools/utilities/data_classes/ses_event.py,sha256=ViKTSB4N-7Kljfu
138
138
  aws_lambda_powertools/utilities/data_classes/shared_functions.py,sha256=zAv_JzSJy_k3ZhLKyARXoX6zH7exqw9pjTDsmGB7qxw,4426
139
139
  aws_lambda_powertools/utilities/data_classes/sns_event.py,sha256=bUL57gmObClTGrd_TFBLd1sNobnaurum0QkXyOJoNmI,3853
140
140
  aws_lambda_powertools/utilities/data_classes/sqs_event.py,sha256=seWIKCpPbzKpPdXZWvrs94C92Nj2XwfGC1vXcI5gdQA,8804
141
- aws_lambda_powertools/utilities/data_classes/transfer_family_event.py,sha256=oagD9jtaplGRMeKx0-hiL0og_Hfv5g_nI_UWzQ1jXaA,6816
141
+ aws_lambda_powertools/utilities/data_classes/transfer_family_event.py,sha256=gfPvQeur8bBXl5gq46sc_z3Oz3JTnRlM7iXUK5cbjic,6856
142
142
  aws_lambda_powertools/utilities/data_classes/vpc_lattice.py,sha256=SEZUvRTMsI-iQi7hcpqaKqYtJLYqIxX5ijqmeTSrf9E,6363
143
143
  aws_lambda_powertools/utilities/data_masking/__init__.py,sha256=Ez0MABo8ARkgWKSu8Dog4uFSkkZuHkW7DoWcexJGeyU,108
144
144
  aws_lambda_powertools/utilities/data_masking/base.py,sha256=66zN6M9B0gEEdoGqp9MKnORv_RMQdEeW8W_IrwfHa1I,16707
@@ -206,11 +206,12 @@ aws_lambda_powertools/utilities/parser/envelopes/vpc_lattice.py,sha256=RIwj1CQJ_
206
206
  aws_lambda_powertools/utilities/parser/envelopes/vpc_latticev2.py,sha256=DGLibAGblJPPe1wC-9gvNWR8LusAzTeTLxwc3cizHzY,1264
207
207
  aws_lambda_powertools/utilities/parser/exceptions.py,sha256=y6DXKUg48xgvswqMAxOYaUGRAqJgg8sm_F8JORgCa1U,207
208
208
  aws_lambda_powertools/utilities/parser/functions.py,sha256=OOcp9xFPrS4e1U8-zHP8bcJ4iTUNmEVYf1EN2yqaCiY,2497
209
- aws_lambda_powertools/utilities/parser/models/__init__.py,sha256=kmDLqM3ABDisce2-57uk8UAeGCaCJ6g0jCnyUFB1iRw,6268
209
+ aws_lambda_powertools/utilities/parser/models/__init__.py,sha256=WgO-VvHed50FDQzU4HZjYAjiiuW9yLjeLrf-PYx-7Lo,6357
210
210
  aws_lambda_powertools/utilities/parser/models/alb.py,sha256=lJPWPjz0_4Hz9Pkpap3NRvScSI3RWC7o4dFYt4F7LLM,439
211
211
  aws_lambda_powertools/utilities/parser/models/apigw.py,sha256=_UbZXcfdcz7U-MrixXor4sc-VkNIuJAj9uwqjJTlhKg,3494
212
212
  aws_lambda_powertools/utilities/parser/models/apigw_websocket.py,sha256=Pi3R9qFudSrujGz_s3m7BfpX_r7FebcYtbomDAetIrA,3004
213
213
  aws_lambda_powertools/utilities/parser/models/apigwv2.py,sha256=x-v1vwVFwf2pGrkZfRri6ZmhHazeVPr1mHyD3R_vH30,2134
214
+ aws_lambda_powertools/utilities/parser/models/appsync.py,sha256=43g0X92yDmsQXtTvpDwhIEVQ4V4si5FxTQr30MJMJG4,1551
214
215
  aws_lambda_powertools/utilities/parser/models/bedrock_agent.py,sha256=YFu2cFxBZtb2ndweS3Q2iz4E94jyb8lB4xq14xPwq00,1241
215
216
  aws_lambda_powertools/utilities/parser/models/cloudformation_custom_resource.py,sha256=DySFMeZ50qOZ1FkwSzM70IlcCmjKkoynmmKqLYfTL6E,1465
216
217
  aws_lambda_powertools/utilities/parser/models/cloudwatch.py,sha256=1y2WmgBbIo6GkEtw75YzNaz9qREHl_-ThT0Iz7Ntd_k,1291
@@ -257,7 +258,7 @@ aws_lambda_powertools/utilities/validation/envelopes.py,sha256=YD5HOFx6IClQgii0n
257
258
  aws_lambda_powertools/utilities/validation/exceptions.py,sha256=PKy_19zQMBJGCMMFl-sMkcm-cc0v3zZBn_bhGE4wKNo,2084
258
259
  aws_lambda_powertools/utilities/validation/validator.py,sha256=x_1qpuKJBuWpgNU-zCD3Di-vXrZfyUu7oA5RmjZjr84,10034
259
260
  aws_lambda_powertools/warnings/__init__.py,sha256=vqDVeZz8wGtD8WGYNSkQE7AHwqtIrPGRxuoJR_BBnSs,1193
260
- aws_lambda_powertools-3.9.1a7.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
261
- aws_lambda_powertools-3.9.1a7.dist-info/METADATA,sha256=7fPfp1bRMDG85BI8ug82SlfEX05aRuvYPouCS88H-70,11186
262
- aws_lambda_powertools-3.9.1a7.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
263
- aws_lambda_powertools-3.9.1a7.dist-info/RECORD,,
261
+ aws_lambda_powertools-3.9.1a8.dist-info/LICENSE,sha256=vMHS2eBgmwPUIMPb7LQ4p7ib_FPVQXarVjAasflrTwo,951
262
+ aws_lambda_powertools-3.9.1a8.dist-info/METADATA,sha256=3bfxrbMZk_SJ1_1UdELSUAgjJjEpD8c5I4Q3N-W_8J8,11186
263
+ aws_lambda_powertools-3.9.1a8.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
264
+ aws_lambda_powertools-3.9.1a8.dist-info/RECORD,,