"""Pydantic schemas for the auth0_cli Lambda event/response contracts.""" from typing import Literal from pydantic import BaseModel class Auth0Match(BaseModel): """A single Auth0 user match across tenants.""" tenant: str user_id: str class SearchUserByEmailEvent(BaseModel): """Event for the 'search-user-by-email' action.""" action: Literal['search-user-by-email'] email: str ticket_id: str = '' class SearchUserByEmailResponse(BaseModel): """Response from the 'search-user-by-email' action.""" email: str ticket_id: str matches: list[Auth0Match] class DeleteUserByIdEvent(BaseModel): """Event for the 'delete-user-by-id' action.""" action: Literal['delete-user-by-id'] tenant: str user_id: str dry_run: bool = False ticket_id: str = '' class DeleteUserByIdResponse(BaseModel): """Response from the 'delete-user-by-id' action.""" tenant: str user_id: str ticket_id: str deleted: bool dry_run: bool class SuspendUserByIdEvent(BaseModel): """Event for the 'suspend-user-by-id' action.""" action: Literal['suspend-user-by-id'] tenant: str user_id: str dry_run: bool = False ticket_id: str = '' class SuspendUserByIdResponse(BaseModel): """Response from the 'suspend-user-by-id' action.""" tenant: str user_id: str ticket_id: str suspended: bool dry_run: bool