Source code for fair_wizard.automation.common.model
import typing
import uuid
from pydantic import BaseModel, Field, ConfigDict
[docs]
class AuthorizedUserResponse(BaseModel):
model_config = ConfigDict(populate_by_name=True)
type: str = 'AuthorizedUserResponse'
first_name: str = Field(alias='firstName')
last_name: str = Field(alias='lastName')
email: str = Field(alias='email')
image_url: str | None = Field(alias='imageUrl')
affiliation: str | None = Field(alias='affiliation')
user_group_uuids: list[uuid.UUID] = Field(alias='userGroupUuids')
[docs]
def serialize(self):
return self.model_dump(by_alias=True)
[docs]
class ForbiddenResponse(BaseModel):
model_config = ConfigDict(populate_by_name=True)
type: str = 'ForbiddenResponse'
message: str = Field(alias='message')
[docs]
def serialize(self):
return self.model_dump(by_alias=True)
[docs]
class ErrorResponse(BaseModel):
model_config = ConfigDict(populate_by_name=True)
type: str = 'ErrorResponse'
message: str
[docs]
def serialize(self):
return self.model_dump(by_alias=True)
class HandlerContext:
function_name: str
function_version: str
invoked_function_arn: str
memory_limit_in_mb: int
aws_request_id: str
log_group_name: str
log_stream_name: str
identity: object
client_context: object
_dummy_remaining_time_in_millis: int = 10000
def get_remaining_time_in_millis(self) -> int:
return self._dummy_remaining_time_in_millis
UserLoginResponse = AuthorizedUserResponse | ForbiddenResponse | ErrorResponse
IHandler = typing.Callable[[dict, HandlerContext], dict]