Skip to content
Merged
72 changes: 72 additions & 0 deletions aws_lambda_powertools/utilities/parser/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,43 @@
CloudWatchLogsLogEvent,
CloudWatchLogsModel,
)
from .cognito import (
CognitoCallerContextModel,
CognitoChallengeResultModel,
CognitoPreSignupRequestModel,
CognitoPreSignupResponseModel,
CognitoPreSignupTriggerModel,
CognitoPostConfirmationRequestModel,
CognitoPostConfirmationTriggerModel,
CognitoPreAuthenticationRequestModel,
CognitoPreAuthenticationTriggerModel,
CognitoPostAuthenticationRequestModel,
CognitoPostAuthenticationTriggerModel,
CognitoGroupConfigurationModel,
CognitoPreTokenGenRequestModel,
CognitoClaimsOverrideDetailsModel,
CognitoPreTokenGenResponseModel,
CognitoPreTokenGenerationTriggerModel,
CognitoMigrateUserRequestModel,
CognitoMigrateUserResponseModel,
CognitoMigrateUserTriggerModel,
CognitoCustomMessageRequestModel,
CognitoCustomMessageResponseModel,
CognitoCustomMessageTriggerModel,
CognitoCustomEmailSenderRequestModel,
CognitoCustomEmailSenderTriggerModel,
CognitoCustomSMSSenderRequestModel,
CognitoCustomSMSSenderTriggerModel,
CognitoDefineAuthChallengeRequestModel,
CognitoDefineAuthChallengeResponseModel,
CognitoDefineAuthChallengeTriggerModel,
CognitoCreateAuthChallengeRequestModel,
CognitoCreateAuthChallengeResponseModel,
CognitoCreateAuthChallengeTriggerModel,
CognitoVerifyAuthChallengeRequestModel,
CognitoVerifyAuthChallengeResponseModel,
CognitoVerifyAuthChallengeTriggerModel,
)
from .dynamodb import (
DynamoDBStreamChangedRecordModel,
DynamoDBStreamModel,
Expand Down Expand Up @@ -137,6 +174,41 @@
"CloudWatchLogsDecode",
"CloudWatchLogsLogEvent",
"CloudWatchLogsModel",
"CognitoCallerContextModel",
"CognitoChallengeResultModel",
"CognitoPreSignupRequestModel",
"CognitoPreSignupResponseModel",
"CognitoPreSignupTriggerModel",
"CognitoPostConfirmationRequestModel",
"CognitoPostConfirmationTriggerModel",
"CognitoPreAuthenticationRequestModel",
"CognitoPreAuthenticationTriggerModel",
"CognitoPostAuthenticationRequestModel",
"CognitoPostAuthenticationTriggerModel",
"CognitoGroupConfigurationModel",
"CognitoPreTokenGenRequestModel",
"CognitoClaimsOverrideDetailsModel",
"CognitoPreTokenGenResponseModel",
"CognitoPreTokenGenerationTriggerModel",
"CognitoMigrateUserRequestModel",
"CognitoMigrateUserResponseModel",
"CognitoMigrateUserTriggerModel",
"CognitoCustomMessageRequestModel",
"CognitoCustomMessageResponseModel",
"CognitoCustomMessageTriggerModel",
"CognitoCustomEmailSenderRequestModel",
"CognitoCustomEmailSenderTriggerModel",
"CognitoCustomSMSSenderRequestModel",
"CognitoCustomSMSSenderTriggerModel",
"CognitoDefineAuthChallengeRequestModel",
"CognitoDefineAuthChallengeResponseModel",
"CognitoDefineAuthChallengeTriggerModel",
"CognitoCreateAuthChallengeRequestModel",
"CognitoCreateAuthChallengeResponseModel",
"CognitoCreateAuthChallengeTriggerModel",
"CognitoVerifyAuthChallengeRequestModel",
"CognitoVerifyAuthChallengeResponseModel",
"CognitoVerifyAuthChallengeTriggerModel",
"AlbModel",
"AlbRequestContext",
"AlbRequestContextData",
Expand Down
276 changes: 276 additions & 0 deletions aws_lambda_powertools/utilities/parser/models/cognito.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,276 @@
from __future__ import annotations
from typing import Any, Dict, List, Optional
from pydantic import BaseModel


class CognitoCallerContextModel(BaseModel):
awsSdkVersion: str
clientId: str


class CognitoChallengeResultModel(BaseModel):
challengeName: str
challengeResult: bool
challengeMetadata: Optional[str]


class CognitoPreSignupRequestModel(BaseModel):
userAttributes: Dict[str, str]
validationData: Optional[Dict[str, str]] = None
clientMetadata: Optional[Dict[str, str]] = None


class CognitoPreSignupResponseModel(BaseModel):
autoConfirmUser: Optional[bool] = None
autoVerifyPhone: Optional[bool] = None
autoVerifyEmail: Optional[bool] = None


class CognitoPreSignupTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoPreSignupRequestModel
response: CognitoPreSignupResponseModel


class CognitoPostConfirmationRequestModel(BaseModel):
userAttributes: Dict[str, str]
clientMetadata: Optional[Dict[str, str]] = None


class CognitoPostConfirmationTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoPostConfirmationRequestModel
response: Dict[str, Any] = {}


class CognitoPreAuthenticationRequestModel(BaseModel):
userAttributes: Dict[str, str]
validationData: Optional[Dict[str, str]] = None
userNotFound: Optional[bool] = None


class CognitoPreAuthenticationTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoPreAuthenticationRequestModel
response: Dict[str, Any] = {}


class CognitoPostAuthenticationRequestModel(BaseModel):
userAttributes: Dict[str, str]
newDeviceUsed: bool
clientMetadata: Optional[Dict[str, str]] = None


class CognitoPostAuthenticationTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoPostAuthenticationRequestModel
response: Dict[str, Any] = {}


class CognitoGroupConfigurationModel(BaseModel):
groupsToOverride: List[str]
iamRolesToOverride: List[str]
preferredRole: Optional[str] = None


class CognitoPreTokenGenRequestModel(BaseModel):
userAttributes: Dict[str, str]
groupConfiguration: CognitoGroupConfigurationModel
clientMetadata: Optional[Dict[str, str]] = None


class CognitoClaimsOverrideDetailsModel(BaseModel):
claimsToAddOrOverride: Optional[Dict[str, str]] = None
claimsToSuppress: Optional[List[str]] = None
groupOverrideDetails: Optional[CognitoGroupConfigurationModel] = None


class CognitoPreTokenGenResponseModel(BaseModel):
claimsOverrideDetails: Optional[CognitoClaimsOverrideDetailsModel] = None


class CognitoPreTokenGenerationTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoPreTokenGenRequestModel
response: CognitoPreTokenGenResponseModel


class CognitoMigrateUserRequestModel(BaseModel):
password: str
validationData: Optional[Dict[str, str]] = None
clientMetadata: Optional[Dict[str, str]] = None


class CognitoMigrateUserResponseModel(BaseModel):
userAttributes: Dict[str, str]
finalUserStatus: Optional[str] = None
messageAction: Optional[str] = None
desiredDeliveryMediums: Optional[List[str]] = None
forceAliasCreation: Optional[bool] = None
enableSMSMFA: Optional[bool] = None


class CognitoMigrateUserTriggerModel(BaseModel):
userName: str
version: Optional[str] = None
region: Optional[str] = None
userPoolId: Optional[str] = None
callerContext: Optional[CognitoCallerContextModel] = None
triggerSource: Optional[str] = None
request: CognitoMigrateUserRequestModel
response: CognitoMigrateUserResponseModel


class CognitoCustomMessageRequestModel(BaseModel):
userAttributes: Dict[str, str]
codeParameter: Optional[str] = None
usernameParameter: Optional[str] = None
clientMetadata: Optional[Dict[str, str]] = None


class CognitoCustomMessageResponseModel(BaseModel):
smsMessage: Optional[str] = None
emailMessage: Optional[str] = None
emailSubject: Optional[str] = None


class CognitoCustomMessageTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoCustomMessageRequestModel
response: CognitoCustomMessageResponseModel


class CognitoCustomEmailSenderRequestModel(BaseModel):
type: str
code: str
clientMetadata: Optional[Dict[str, str]] = None
userAttributes: Dict[str, str]


class CognitoCustomEmailSenderTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoCustomEmailSenderRequestModel


class CognitoCustomSMSSenderRequestModel(BaseModel):
type: str
code: str
clientMetadata: Optional[Dict[str, str]] = None
userAttributes: Dict[str, str]


class CognitoCustomSMSSenderTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoCustomSMSSenderRequestModel


class CognitoDefineAuthChallengeRequestModel(BaseModel):
userAttributes: Dict[str, str]
session: List[CognitoChallengeResultModel]
clientMetadata: Optional[Dict[str, str]] = None
userNotFound: Optional[bool] = None


class CognitoDefineAuthChallengeResponseModel(BaseModel):
challengeName: str
issueTokens: bool
failAuthentication: bool


class CognitoDefineAuthChallengeTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoDefineAuthChallengeRequestModel
response: CognitoDefineAuthChallengeResponseModel


class CognitoCreateAuthChallengeRequestModel(BaseModel):
userAttributes: Dict[str, str]
challengeName: str
session: List[CognitoChallengeResultModel]
clientMetadata: Optional[Dict[str, str]] = None
userNotFound: Optional[bool] = None


class CognitoCreateAuthChallengeResponseModel(BaseModel):
publicChallengeParameters: Dict[str, str]
privateChallengeParameters: Dict[str, str]
challengeMetadata: Optional[str] = None


class CognitoCreateAuthChallengeTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoCreateAuthChallengeRequestModel
response: CognitoCreateAuthChallengeResponseModel


class CognitoVerifyAuthChallengeRequestModel(BaseModel):
userAttributes: Dict[str, str]
privateChallengeParameters: Dict[str, str]
challengeAnswer: str
clientMetadata: Optional[Dict[str, str]] = None
userNotFound: Optional[bool] = None


class CognitoVerifyAuthChallengeResponseModel(BaseModel):
answerCorrect: bool


class CognitoVerifyAuthChallengeTriggerModel(BaseModel):
version: str
region: str
userPoolId: str
userName: str
callerContext: CognitoCallerContextModel
triggerSource: str
request: CognitoVerifyAuthChallengeRequestModel
response: CognitoVerifyAuthChallengeResponseModel
12 changes: 12 additions & 0 deletions docs/utilities/parser.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,18 @@ The example above uses `SqsModel`. Other built-in models can be found below.
| **CloudFormationCustomResourceUpdateModel** | Lambda Event Source payload for AWS CloudFormation `UPDATE` operation |
| **CloudFormationCustomResourceDeleteModel** | Lambda Event Source payload for AWS CloudFormation `DELETE` operation |
| **CloudwatchLogsModel** | Lambda Event Source payload for Amazon CloudWatch Logs |
| **CognitoPreSignupTriggerModel** | Lambda User Pool Pre-Sign-Up trigger event |
| **CognitoPostConfirmationTriggerModel** | Lambda User Pool Post Confirmation trigger event |
| **CognitoPreAuthenticationTriggerModel** | Lambda User Pool Pre Authentication trigger event |
| **CognitoPostAuthenticationTriggerModel** | Lambda User Pool Post Authentication trigger event |
| **CognitoPreTokenGenerationTriggerModel** | Lambda User Pool Pre Token Generation trigger event |
| **CognitoMigrateUserTriggerModel** | Lambda User Pool Migrate User trigger event |
| **CognitoCustomMessageTriggerModel** | Lambda User Pool Custom Message trigger event |
| **CognitoCustomEmailSenderTriggerModel** | Lambda User Pool Custom Email Sender trigger event |
| **CognitoCustomSMSSenderTriggerModel** | Lambda User Pool Custom SMS Sender trigger event |
| **CognitoDefineAuthChallengeTriggerModel** | Lambda User Pool Define Auth Challenge trigger event |
| **CognitoCreateAuthChallengeTriggerModel** | Lambda User Pool Create Auth Challenge trigger event |
| **CognitoVerifyAuthChallengeTriggerModel** | Lambda User Pool Verify Auth Challenge trigger event |
| **DynamoDBStreamModel** | Lambda Event Source payload for Amazon DynamoDB Streams |
| **EventBridgeModel** | Lambda Event Source payload for Amazon EventBridge |
| **IoTCoreThingEvent** | Lambda Event Source payload for IoT Core Thing created, updated, or deleted. |
Expand Down
Loading
Loading