Source code for fca_api.types.individual

import datetime
from typing import Annotated, Literal, Optional

import pydantic

from . import annotations, base, field_parsers


[docs] class Individual(base.Base): """Individual (physical person) details.""" irn: Annotated[ str, pydantic.Field( description="Individual Reference Number (IRN) assigned by the FCA.", example="BXK69703", ), pydantic.StringConstraints( to_upper=True, strip_whitespace=True, ), ] full_name: Annotated[ str, pydantic.Field( description="Full name of the individual.", validation_alias=pydantic.AliasChoices("full name", "full_name"), serialization_alias="full_name", ), ] commonly_used_name: Annotated[ Optional[str], pydantic.Field( description="Commonly used name of the individual, if any.", validation_alias=pydantic.AliasChoices("commonly used name", "commonly_used_name"), serialization_alias="commonly_used_name", ), field_parsers.StrOrNone, ] disciplinary_history: Annotated[ Optional[pydantic.HttpUrl], pydantic.Field( description="URL to the individual's disciplinary history, if any.", validation_alias=pydantic.AliasChoices("disciplinary history", "disciplinary_history"), serialization_alias="disciplinary_history", ), annotations.FcaApiFieldInfo(marks=[annotations.FcaApiField.InternalUrl]), ] status: Annotated[ str, pydantic.Field( description="Current status of the individual with the FCA.", ), pydantic.StringConstraints( to_lower=True, strip_whitespace=True, ), ] current_roles_and_activities: Annotated[ Optional[pydantic.HttpUrl], pydantic.Field( description="URL to the individual's current roles and activities, if available.", validation_alias=pydantic.AliasChoices("current roles & activities", "current_roles_and_activities"), serialization_alias="current_roles_and_activities", ), annotations.FcaApiFieldInfo(marks=[annotations.FcaApiField.InternalUrl]), ]
[docs] class IndividualControlledFunction(base.Base): """Individual Controlled Function details.""" type: Annotated[ Literal["current", "previous"], pydantic.Field( description="Type of controlled function - current or previous.", validation_alias=pydantic.AliasChoices("fca_api_lst_type", "type"), serialization_alias="type", ), ] name: Annotated[ str, pydantic.Field( description="Name of the controlled function.", ), ] restriction: Annotated[ Optional[str], pydantic.Field( description="Any restrictions associated with the controlled function.", ), field_parsers.StrOrNone, ] restriction_start_date: Annotated[ Optional[datetime.datetime], pydantic.Field( description="Start date of any restriction associated with the controlled function.", validation_alias=pydantic.AliasChoices("suspension / restriction start date", "restriction_start_date"), serialization_alias="restriction_start_date", ), field_parsers.ParseFcaDate, ] restriction_end_date: Annotated[ Optional[datetime.datetime], pydantic.Field( description="End date of any restriction associated with the controlled function.", validation_alias=pydantic.AliasChoices("suspension / restriction end date", "restriction_end_date"), serialization_alias="restriction_end_date", ), field_parsers.ParseFcaDate, ] customer_engagement_method: Annotated[ str, pydantic.Field( description="Method of customer engagement for the controlled function.", validation_alias=pydantic.AliasChoices("customer engagement method", "customer_engagement_method"), serialization_alias="customer_engagement_method", ), pydantic.StringConstraints( to_lower=True, strip_whitespace=True, ), ] effective_date: Annotated[ datetime.datetime, pydantic.Field( description="Effective date of the controlled function.", validation_alias=pydantic.AliasChoices("effective date", "effective_date"), serialization_alias="effective_date", ), field_parsers.ParseFcaDate, ] firm_name: Annotated[ str, pydantic.Field( description="Name of the firm associated with the controlled function.", validation_alias=pydantic.AliasChoices("firm name", "firm_name"), serialization_alias="firm_name", ), ] end_date: Annotated[ Optional[datetime.datetime], pydantic.Field( description="End date of any restriction associated with the controlled function.", validation_alias=pydantic.AliasChoices("end date", "end_date"), serialization_alias="end_date", default=None, ), field_parsers.ParseFcaDate, ] url: Annotated[ pydantic.HttpUrl, pydantic.Field( description="URL to the controlled function details.", ), annotations.FcaApiFieldInfo(marks=[annotations.FcaApiField.InternalUrl]), ]
[docs] class IndividualDisciplinaryRecord(base.Base): """Individual Disciplinary Record details.""" type_of_action: Annotated[ str, pydantic.Field( description="Type of disciplinary action taken.", validation_alias=pydantic.AliasChoices("typeofaction", "type_of_action"), serialization_alias="type_of_action", ), pydantic.StringConstraints( to_lower=True, strip_whitespace=True, ), ] enforcement_type: Annotated[ str, pydantic.Field( description="Type of disciplinary action taken.", validation_alias=pydantic.AliasChoices("enforcementtype", "enforcement_type"), serialization_alias="enforcement_type", ), pydantic.StringConstraints( to_lower=True, strip_whitespace=True, ), ] type_of_description: Annotated[ str, pydantic.Field( description="Description of the disciplinary action taken.", validation_alias=pydantic.AliasChoices("typeofdescription", "type_of_description"), serialization_alias="type_of_description", ), pydantic.StringConstraints( strip_whitespace=True, ), ] action_effective_from: Annotated[ datetime.datetime, pydantic.Field( description="Date when the disciplinary action became effective.", validation_alias=pydantic.AliasChoices("actioneffectivefrom", "action_effective_from"), serialization_alias="action_effective_from", ), field_parsers.ParseFcaDate, ]