FAA Registration Models
AircraftModelRef
Purpose
Embedded aircraft reference payload used to enrich an FAA registration record with aircraft make/model and categorical attributes from ACFTREF-like datasets. Designed to accept raw FAA/registry keys while preserving a clean Python attribute interface.
Fields
CODE(str) — aircraft model code / identifierMFR(Optional[str]) — manufacturerMODEL(Optional[str]) — modelTYPE_ACFT(Optional[str], aliasTYPE-ACFT) — aircraft type codeTYPE_ENG(Optional[str], aliasTYPE-ENG) — engine type codeAC_CAT(Optional[str], aliasAC-CAT) — aircraft categoryBUILD_CERT_IND(Optional[str], aliasBUILD-CERT-IND) — build/cert indicatorNO_ENG(Optional[str]) — number of enginesNO_SEATS(Optional[str]) — number of seatsAC_WEIGHT(Optional[str]) — weight classSPEED(Optional[str]) — speed classTC_DATA_SHEET(Optional[str], aliasTC-DATA-SHEET) — type certificate data sheetTC_DATA_HOLDER(Optional[str], aliasTC-DATA-HOLDER) — type certificate holder
Validation rules
populate_by_name = True— supports population by field name or alias (e.g.TYPE-ACFT).extra = "ignore"— unknown fields are discarded to tolerate evolving upstream schemas.
EngineRefModel
Purpose
Embedded engine reference payload used to enrich an FAA registration record with engine manufacturer/model and basic performance descriptors. Intended to be tolerant of partial data and external keying conventions.
Fields
CODE(str) — engine model code / identifierMFR(Optional[str]) — manufacturerMODEL(Optional[str]) — modelTYPE(Optional[str]) — engine type classificationHORSEPOWER(Optional[str]) — horsepower (if applicable)THRUST(Optional[str]) — thrust (if applicable)
Validation rules
populate_by_name = True— consistent instantiation behavior across raw/normalized keys.extra = "ignore"— unknown fields are discarded to tolerate upstream changes.
FAARegistrationModel
Purpose
Primary enriched FAA registry entity. Combines core FAA registration identifiers, registrant metadata, status and classification fields, and embedded ACFTREF/ENGINE references. Persists as a DynamoDB item and supports projection into normalized registry shape and Typesense search documents.
Fields
- Core identifiers:
N_NUMBER(str),source(str, defaultFAA),UNIQUE_ID(Optional[str]) - Raw FAA identifiers:
SERIAL_NUMBER,MFR_MDL_CODE,ENG_MFR_MDL(Optional[str]),YEAR_MFR(Optional[int]) - Enriched objects:
MODEL(Optional[AircraftModelRef]),ENGINE(Optional[EngineRefModel]) - Registrant info:
TYPE_REGISTRANT(Optional[RegistrantTypeEnum]),NAME,STREET,STREET2,CITY,STATE,ZIP_CODE,COUNTY,COUNTRY,REGION - Status + classification:
STATUS_CODE(Optional[StatusCodeEnum]),CERTIFICATION(Optional[str]),AIRWORTHINESS_CLASS(Optional[AirworthinessClassEnum]),TYPE_AIRCRAFT(Optional[AircraftTypeEnum]),TYPE_ENGINE(Optional[EngineTypeEnum]) - Transponder:
MODE_S_CODE,MODE_S_CODE_HEX(Optional[str]) - Ownership:
FRACT_OWNER(Optional[str]) - FAA dates (YYYYMMDD):
LAST_ACTION_DATE,CERT_ISSUE_DATE,AIR_WORTH_DATE,EXPIRATION_DATE(Optional[int])
Validation rules
N_NUMBERis required (Field(...)) and documented as the tail number identifier.faa_to_epoch()defensively validates FAA date format (YYYYMMDD) and returnsNoneon parse failure.- Embedded models tolerate unknown upstream fields via
extra="ignore"(at the embedded model level).