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