app.schemas.records¶
Response models for search results and the record detail page.
Field names match the app.services.search,
app.services.record_detail and
app.services.record_relationships dataclasses they are built
from, so every model here reads straight off those dataclasses
through model_validate (from_attributes=True); none of this
module performs business logic.
- class app.schemas.records.IssueOut(*, severity, code, message)¶
Bases:
BaseModelOne validation finding.
- class app.schemas.records.IssueCountsOut(*, error, warning)¶
Bases:
BaseModelStored-issue counts of one record, by severity.
- class app.schemas.records.SearchItemOut(*, id, title, source_id, project, path, ref, kind, record_kind, approval_state, approvable, issue_counts, erratum_for_title)¶
Bases:
BaseModelOne search result row.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- kind: RecordState¶
- record_kind: RecordKind¶
- approval_state: ApprovalStateCode¶
- issue_counts: IssueCountsOut¶
- class app.schemas.records.SearchPageOut(*, items, total, page, page_size)¶
Bases:
BaseModelOne page of search results.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- items: list[SearchItemOut]¶
- class app.schemas.records.MetadataOut(*, id, adr_uuid, decision_date, decision_date_inferred, kind, record_kind, title, title_source, digest, previous_digest)¶
Bases:
BaseModelIdentity and authored metadata of one record.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- kind: RecordState¶
- record_kind: RecordKind¶
- title_source: TitleSource¶
- class app.schemas.records.ProvenanceOut(*, source_id, project, path, ref, source_url, updated_at)¶
Bases:
BaseModelWhere a record’s content came from.
- class app.schemas.records.FreshnessOut(*, last_attempt_at, last_success_at, last_status, stale, intake)¶
Bases:
BaseModelFreshness of a record’s owning registration.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- last_status: PollStatus¶
- intake: list[IntakeKind]¶
- class app.schemas.records.OutboundLinkOut(*, link_type, target_uuid, target_id, target_title, resolution, ambiguous, candidate_ids)¶
Bases:
BaseModelOne outbound link and how it resolved.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- resolution: Resolution | None¶
- class app.schemas.records.InboundLinkOut(*, link_type, source_id, source_title)¶
Bases:
BaseModelA link from another record to the one being viewed.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- link_type: InboundType¶
- class app.schemas.records.ErratumOut(*, id, kind, ref, source_id, project, path, title, type, section, reported_by, reported_date, original_html, corrected_html, notes_html, approval_state, approvable, digest, updated_at, has_content)¶
Bases:
BaseModelOne erratum (published or candidate) of the record being viewed.
approval_stateis the erratum’s own state:pending/policy_missing= reported,accepted= verified,rejected,changed_since_acceptance;not_requiredmeans no review is required.has_contentis false (and the content fields empty) for a row stored before erratum content was.- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- kind: RecordState¶
- type: ErratumType | None¶
- approval_state: ApprovalStateCode¶
- class app.schemas.records.ErrataSummaryOut(*, total, verified, reported, rejected, changed, proposed)¶
Bases:
BaseModelCounts of the record’s errata for the top notice.
total/verified/reported/rejected/changedcount published errata only (not_requiredcounts as verified);proposedcounts candidate errata.
- class app.schemas.records.ErratumContentOut(*, type, section, reported_by, reported_date, original_html, corrected_html, notes_html)¶
Bases:
BaseModelThe structured content of an erratum (on its own page).
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- type: ErratumType | None¶
- class app.schemas.records.ErratumForOut(*, uuid, id, title, resolved)¶
Bases:
BaseModelThe decision an erratum corrects, resolved like outbound links.
- class app.schemas.records.SiblingOut(*, id, kind, source_id, project, path, ref, digest, title, decision_date, decision_date_inferred, approval_state, approvable)¶
Bases:
BaseModelOne published or candidate row sharing a record’s identity.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- kind: RecordState¶
- approval_state: ApprovalStateCode¶
- class app.schemas.records.PolicySummaryOut(*, status, id, version, required, allow_self_approval)¶
Bases:
BaseModelThe applicable approval policy, or why there is none.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- status: PolicyStatus¶
- class app.schemas.records.DecisionProvenanceOut(*, record_id, kind, source_id, project, ref, path, source_url)¶
Bases:
BaseModelThe decided row as it was at decision time.
- class app.schemas.records.DecisionSummaryOut(*, id, digest, current_digest, action, actor_issuer, actor_subject, actor_display, comment, policy_id, policy_version, provenance, created_at)¶
Bases:
BaseModelOne append-only decision event of the record’s identity.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- action: DecisionAction¶
- provenance: DecisionProvenanceOut¶
- class app.schemas.records.DivergenceOut(*, kind, other_digest, other_record_ids, other_accepted, message)¶
Bases:
BaseModelContent divergence within the record’s identity.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- kind: DivergenceKind¶
- class app.schemas.records.CompetingCandidateOut(*, id, ref, path, digest, approval_state, approvable)¶
Bases:
BaseModelAnother candidate of the identity with different content.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- approval_state: ApprovalStateCode¶
- class app.schemas.records.ApprovalOut(*, state, needs_approval, digest, policy, history, approvable, approval_blocker, last_accepted_digest, can_decide, decide_blocked_code, decide_blocked_reason, divergence, competing_candidates)¶
Bases:
BaseModelApproval state of a record’s current content, for the caller.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- state: ApprovalStateCode¶
- policy: PolicySummaryOut¶
- history: list[DecisionSummaryOut]¶
- divergence: DivergenceOut | None¶
- competing_candidates: list[CompetingCandidateOut]¶
- class app.schemas.records.RecordDetailOut(*, metadata, issues, rendered_html, provenance, freshness, outbound_links, inbound_links, errata, errata_summary, erratum, erratum_for, status, siblings, legacy_signoff_unverified, approval)¶
Bases:
BaseModelEverything the record detail page shows.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- metadata: MetadataOut¶
- provenance: ProvenanceOut¶
- freshness: FreshnessOut¶
- outbound_links: list[OutboundLinkOut]¶
- inbound_links: list[InboundLinkOut]¶
- errata: list[ErratumOut]¶
- errata_summary: ErrataSummaryOut¶
- erratum: ErratumContentOut | None¶
- erratum_for: ErratumForOut | None¶
- status: DisplayStatus¶
- siblings: list[SiblingOut]¶
- approval: ApprovalOut¶
- class app.schemas.records.DiffEndpointOut(*, digest, label, decided_at)¶
Bases:
BaseModelOne side of a diff.
- class app.schemas.records.RecordDiffOut(*, base, target, reason, unified_diff, identical, lines_added, lines_removed)¶
Bases:
BaseModelA unified diff between two stored snapshots.
- model_config: ClassVar[ConfigDict] = {'from_attributes': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- base: DiffEndpointOut | None¶
- target: DiffEndpointOut¶