fraudtwin.domain.campaign_dynamics#
Domain types for evolving fraud campaigns.
Status: Stable
Classes#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Detailed API#
Immutable domain records for campaign evolution.
- class fraudtwin.domain.campaign_dynamics.CampaignActorMembershipChange(**data)[source][source]
Bases:
_EntityModel- Parameters:
membership_change_id (str)
campaign_id (str)
actor_id (str)
actor_type (Literal['ACCOUNT', 'CUSTOMER', 'CARD', 'DEVICE', 'MERCHANT'])
role (str)
action (Literal['JOIN', 'LEAVE', 'ROTATE_IN', 'ROTATE_OUT'])
occurred_at (datetime)
valid_from (datetime)
valid_to (datetime | None)
source_entity_id (str | None)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignIntensityDecision(**data)[source][source]
Bases:
_EntityModel- Parameters:
intensity_decision_id (str)
campaign_id (str)
phase (Literal['compromise', 'setup', 'transfer', 'cash_out', 'dormant', 'closed'])
decision_at (datetime)
event_rate (Annotated[float, Ge(ge=0)])
mark (Annotated[float, Ge(ge=0)])
model_name (str)
stream_id (str)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignLineage(**data)[source][source]
Bases:
_EntityModel- Parameters:
lineage_id (str)
campaign_id (str)
parent_campaign_ids (tuple[str, ...])
source_entity_ids (tuple[str, ...])
source_event_ids (tuple[str, ...])
source_payment_ids (tuple[str, ...])
derived_entity_ids (tuple[str, ...])
derived_event_ids (tuple[str, ...])
derived_payment_ids (tuple[str, ...])
derived_at (datetime)
reason (str)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignPhaseChange(**data)[source][source]
Bases:
_EntityModel- Parameters:
phase_change_id (str)
campaign_id (str)
transition_id (str)
phase (Literal['compromise', 'setup', 'transfer', 'cash_out', 'dormant', 'closed'])
valid_from (datetime)
valid_to (datetime | None)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignSourceSnapshot(**data)[source][source]
Bases:
_EntityModel- Parameters:
source_snapshot_id (str)
campaign_id (str)
source_run_id (str)
captured_at (datetime)
source_campaign_ids (tuple[str, ...])
source_entity_ids (tuple[str, ...])
source_event_ids (tuple[str, ...])
source_payment_ids (tuple[str, ...])
configuration_hash (str)
schema_fingerprint (str)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignStateSnapshot(**data)[source][source]
Bases:
_EntityModel- Parameters:
snapshot_id (str)
campaign_id (str)
phase (Literal['compromise', 'setup', 'transfer', 'cash_out', 'dormant', 'closed'])
intensity (Annotated[float, Ge(ge=0)])
active_actor_ids (tuple[str, ...])
active_device_ids (tuple[str, ...])
valid_from (datetime)
valid_to (datetime | None)
transition_id (str | None)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignTopologyMutation(**data)[source][source]
Bases:
_EntityModel- Parameters:
topology_mutation_id (str)
campaign_id (str)
mutation_type (Literal['MULE_ROTATION', 'DEVICE_ROTATION', 'RING_SPLIT', 'RING_MERGE', 'CROSS_RAIL', 'HYPEREDGE_ADD'])
occurred_at (datetime)
source_member_ids (tuple[str, ...])
derived_member_ids (tuple[str, ...])
source_payment_ids (tuple[str, ...])
derived_payment_ids (tuple[str, ...])
reason (str)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class fraudtwin.domain.campaign_dynamics.CampaignTransition(**data)[source][source]
Bases:
_EntityModel- Parameters:
transition_id (str)
campaign_id (str)
from_phase (Literal['compromise', 'setup', 'transfer', 'cash_out', 'dormant', 'closed'])
to_phase (Literal['compromise', 'setup', 'transfer', 'cash_out', 'dormant', 'closed'])
occurred_at (datetime)
reason (str)
model_name (str)
source_snapshot_id (str | None)
stream_id (str)
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].