flip_api.domain.interfaces.model

Classes

ModelStatusEdit

Enum where members are also (and must be) strings

IModelDetails

ISaveModel

ITrustSummary

A trust participating in a model's federated run, for the Models-list chips.

IAllModelsResponse

One row of the estate-wide Models list (issue #726).

IModelsListResponse

Paginated Models-list page plus per-status totals for the filter tiles (issue #726).

IModelLog

ISourceLog

IModelStatus

ModelTrustIntersectStatus

Age

Gender

ClientVisit

Statistics

TrustsResults

IQuery

IModelResponse

IBuildImagesForModel

IDetailedModelStatus

ILog

IModelAuditAction

IModelMetricsValue

IModelMetricsData

IModelMetrics

Module Contents

class flip_api.domain.interfaces.model.ModelStatusEdit

Bases: enum.StrEnum

Enum where members are also (and must be) strings

PENDING = 'PENDING'
class flip_api.domain.interfaces.model.IModelDetails

Bases: pydantic.BaseModel

name: str
description: str
class flip_api.domain.interfaces.model.ISaveModel

Bases: IModelDetails

project_id: uuid.UUID
class flip_api.domain.interfaces.model.ITrustSummary

Bases: pydantic.BaseModel

A trust participating in a model’s federated run, for the Models-list chips.

id: uuid.UUID
name: str
code: str | None
model_config
class flip_api.domain.interfaces.model.IAllModelsResponse

Bases: pydantic.BaseModel

One row of the estate-wide Models list (issue #726).

Joins a model to its owning project (name), the owner’s display name and the model’s run trusts. owner_name is null when the owner has no UserProfile row; trusts is the latest FL job’s dispatch roster (fl_job_trust), so it is empty until training is initiated.

id: uuid.UUID
name: str
description: str = ''
status: flip_api.domain.schemas.status.ModelStatus
project_id: uuid.UUID
project_name: str
owner_id: uuid.UUID
owner_name: str | None
trusts: list[ITrustSummary]
queue_position: int | None
model_config
class flip_api.domain.interfaces.model.IModelsListResponse

Bases: pydantic.BaseModel

Paginated Models-list page plus per-status totals for the filter tiles (issue #726).

status_counts maps each ModelStatus value to its count across the caller’s access-scoped set, honouring search but ignoring the active status filter — so the tiles keep their numbers while one is selected.

page: int
page_size: int
total_pages: int
total_records: int
data: list[IAllModelsResponse]
status_counts: dict[str, int]
model_config
class flip_api.domain.interfaces.model.IModelLog

Bases: pydantic.BaseModel

timestamp: datetime.datetime
model: str
status: str
trust: str | None = None
message: str
class flip_api.domain.interfaces.model.ISourceLog

Bases: pydantic.BaseModel

_source: IModelLog
_id: str
class flip_api.domain.interfaces.model.IModelStatus

Bases: pydantic.BaseModel

modelStatus: str
class flip_api.domain.interfaces.model.ModelTrustIntersectStatus

Bases: pydantic.BaseModel

status: flip_api.domain.schemas.status.TrustIntersectStatus
class flip_api.domain.interfaces.model.Age

Bases: pydantic.BaseModel

Mean: float
class flip_api.domain.interfaces.model.Gender

Bases: pydantic.BaseModel

Male: int
Female: int
MissingData: int
class flip_api.domain.interfaces.model.ClientVisit

Bases: pydantic.BaseModel

Emergency: int
Inpatient: int
MissingData: int
class flip_api.domain.interfaces.model.Statistics

Bases: pydantic.BaseModel

TotalCount: int
Age: Statistics.Age
Gender: Statistics.Gender
ClientVisit: Statistics.ClientVisit
class flip_api.domain.interfaces.model.TrustsResults

Bases: pydantic.BaseModel

Data: Statistics
TrustName: str
class flip_api.domain.interfaces.model.IQuery

Bases: pydantic.BaseModel

id: uuid.UUID
name: str
query: str
results: list[TrustsResults] | None
class flip_api.domain.interfaces.model.IModelResponse

Bases: pydantic.BaseModel

model_id: uuid.UUID
model_name: str
model_description: str
project_id: uuid.UUID
status: flip_api.domain.schemas.status.ModelStatus
query: IQuery | None
files: list[flip_api.db.models.main_models.UploadedFiles] | None = None
creation_timestamp: str | None
prepared_at: str | None
running_at: str | None
results_uploaded_at: str | None
trusts: list[ITrustSummary]
queue_position: int | None
model_config
class flip_api.domain.interfaces.model.IBuildImagesForModel

Bases: pydantic.BaseModel

files: dict
validate_files(v: dict) dict
class flip_api.domain.interfaces.model.IDetailedModelStatus

Bases: pydantic.BaseModel

status: flip_api.domain.schemas.status.ModelStatus
deleted: bool
class flip_api.domain.interfaces.model.ILog

Bases: pydantic.BaseModel

id: uuid.UUID
model_id: uuid.UUID
log_date: datetime.datetime
success: bool
trust_name: str | None
trust_code: str | None
global_round: int | None
log: str
model_config
class flip_api.domain.interfaces.model.IModelAuditAction

Bases: pydantic.BaseModel

model_id: uuid.UUID
action: flip_api.domain.schemas.actions.ModelAuditAction
userid: str
class flip_api.domain.interfaces.model.IModelMetricsValue

Bases: pydantic.BaseModel

x_value: float
y_value: float
class flip_api.domain.interfaces.model.IModelMetricsData

Bases: pydantic.BaseModel

data: list[IModelMetricsValue]
series_label: str
class flip_api.domain.interfaces.model.IModelMetrics

Bases: pydantic.BaseModel

y_label: str
x_label: str
metrics: list[IModelMetricsData]