1
- from datetime import datetime
2
- from typing import Any , Dict , List , Optional , Type , Union
1
+ from __future__ import annotations
3
2
4
- from pydantic import BaseModel , model_validator
5
- from pydantic . networks import IPvAnyNetwork
3
+ from datetime import datetime # noqa: TCH003
4
+ from typing import Any , Literal
6
5
7
- from aws_lambda_powertools .utilities .parser .types import Literal
6
+ from pydantic import BaseModel , model_validator
7
+ from pydantic .networks import IPvAnyNetwork # noqa: TCH002
8
8
9
9
10
10
class ApiGatewayUserCertValidity (BaseModel ):
@@ -21,54 +21,54 @@ class ApiGatewayUserCert(BaseModel):
21
21
22
22
23
23
class APIGatewayEventIdentity (BaseModel ):
24
- accessKey : Optional [ str ] = None
25
- accountId : Optional [ str ] = None
26
- apiKey : Optional [ str ] = None
27
- apiKeyId : Optional [ str ] = None
28
- caller : Optional [ str ] = None
29
- cognitoAuthenticationProvider : Optional [ str ] = None
30
- cognitoAuthenticationType : Optional [ str ] = None
31
- cognitoIdentityId : Optional [ str ] = None
32
- cognitoIdentityPoolId : Optional [ str ] = None
33
- principalOrgId : Optional [ str ] = None
24
+ accessKey : str | None = None
25
+ accountId : str | None = None
26
+ apiKey : str | None = None
27
+ apiKeyId : str | None = None
28
+ caller : str | None = None
29
+ cognitoAuthenticationProvider : str | None = None
30
+ cognitoAuthenticationType : str | None = None
31
+ cognitoIdentityId : str | None = None
32
+ cognitoIdentityPoolId : str | None = None
33
+ principalOrgId : str | None = None
34
34
# see #1562, temp workaround until API Gateway fixes it the Test button payload
35
35
# removing it will not be considered a regression in the future
36
- sourceIp : Union [ IPvAnyNetwork , Literal ["test-invoke-source-ip" ] ]
37
- user : Optional [ str ] = None
38
- userAgent : Optional [ str ] = None
39
- userArn : Optional [ str ] = None
40
- clientCert : Optional [ ApiGatewayUserCert ] = None
36
+ sourceIp : IPvAnyNetwork | Literal ["test-invoke-source-ip" ]
37
+ user : str | None = None
38
+ userAgent : str | None = None
39
+ userArn : str | None = None
40
+ clientCert : ApiGatewayUserCert | None = None
41
41
42
42
43
43
class APIGatewayEventAuthorizer (BaseModel ):
44
- claims : Optional [ Dict [ str , Any ]] = None
45
- scopes : Optional [ List [ str ]] = None
44
+ claims : dict [ str , Any ] | None = None
45
+ scopes : list [ str ] | None = None
46
46
47
47
48
48
class APIGatewayEventRequestContext (BaseModel ):
49
49
accountId : str
50
50
apiId : str
51
- authorizer : Optional [ APIGatewayEventAuthorizer ] = None
51
+ authorizer : APIGatewayEventAuthorizer | None = None
52
52
stage : str
53
53
protocol : str
54
54
identity : APIGatewayEventIdentity
55
55
requestId : str
56
56
requestTime : str
57
57
requestTimeEpoch : datetime
58
- resourceId : Optional [ str ] = None
58
+ resourceId : str | None = None
59
59
resourcePath : str
60
- domainName : Optional [ str ] = None
61
- domainPrefix : Optional [ str ] = None
62
- extendedRequestId : Optional [ str ] = None
60
+ domainName : str | None = None
61
+ domainPrefix : str | None = None
62
+ extendedRequestId : str | None = None
63
63
httpMethod : Literal ["DELETE" , "GET" , "HEAD" , "OPTIONS" , "PATCH" , "POST" , "PUT" ]
64
64
path : str
65
- connectedAt : Optional [ datetime ] = None
66
- connectionId : Optional [ str ] = None
67
- eventType : Optional [ Literal ["CONNECT" , "MESSAGE" , "DISCONNECT" ]] = None
68
- messageDirection : Optional [ str ] = None
69
- messageId : Optional [ str ] = None
70
- routeKey : Optional [ str ] = None
71
- operationName : Optional [ str ] = None
65
+ connectedAt : datetime | None = None
66
+ connectionId : str | None = None
67
+ eventType : Literal ["CONNECT" , "MESSAGE" , "DISCONNECT" ] | None = None
68
+ messageDirection : str | None = None
69
+ messageId : str | None = None
70
+ routeKey : str | None = None
71
+ operationName : str | None = None
72
72
73
73
@model_validator (mode = "before" )
74
74
def check_message_id (cls , values ):
@@ -79,16 +79,16 @@ def check_message_id(cls, values):
79
79
80
80
81
81
class APIGatewayProxyEventModel (BaseModel ):
82
- version : Optional [ str ] = None
82
+ version : str | None = None
83
83
resource : str
84
84
path : str
85
85
httpMethod : Literal ["DELETE" , "GET" , "HEAD" , "OPTIONS" , "PATCH" , "POST" , "PUT" ]
86
- headers : Dict [str , str ]
87
- multiValueHeaders : Dict [str , List [str ]]
88
- queryStringParameters : Optional [ Dict [ str , str ]] = None
89
- multiValueQueryStringParameters : Optional [ Dict [ str , List [str ]]] = None
86
+ headers : dict [str , str ]
87
+ multiValueHeaders : dict [str , list [str ]]
88
+ queryStringParameters : dict [ str , str ] | None = None
89
+ multiValueQueryStringParameters : dict [ str , list [str ]] | None = None
90
90
requestContext : APIGatewayEventRequestContext
91
- pathParameters : Optional [ Dict [ str , str ]] = None
92
- stageVariables : Optional [ Dict [ str , str ]] = None
91
+ pathParameters : dict [ str , str ] | None = None
92
+ stageVariables : dict [ str , str ] | None = None
93
93
isBase64Encoded : bool
94
- body : Optional [ Union [ str , Type [BaseModel ]]] = None
94
+ body : str | type [BaseModel ] | None = None
0 commit comments