interface Waybill {
    armsTrackingId?: string;
    billOfLadingNumber?: string;
    billingCode?: BillingCode;
    capacityLoadCode?: CapacityLoadCode;
    commodityCode?: string;
    confidentialBillingRequestCode?: ConfidentialBillingRequestCode;
    consigneeCustomerName?: string;
    consigneeLocationId?: number;
    consignorCustomerName?: string;
    createdAt?: string;
    crossReferenceEquipment: CrossReferenceEquipment[];
    customsDocumentationHandlingCode?: string;
    defaultReceiver?: string;
    destinationCityName?: string;
    destinationFsac?: string;
    destinationJunction?: Station;
    destinationStateOrProvince?: string;
    destinationStation?: Station;
    emptyCarDispositions: EmptyCarDisposition[];
    equipmentDetails: EquipmentDetails[];
    extendedReferenceInfo: ExtendedReferenceInformation[];
    freightBillPartyLocationId?: number;
    hazardousCertifications: HazardousCertification[];
    hazardousInfo: HazardousInformation[];
    inCareOfLocationId?: number;
    intermodalStatusDetails?: IntermodalStatusDetails;
    lineItems: LineItem[];
    loadStatus?: string;
    netWeightTons?: number;
    originCarrierCode?: string;
    originCityName?: string;
    originFsac?: string;
    originJunction?: Station;
    originScac?: string;
    originStateOrProvince?: string;
    originStation?: Station;
    originSystem?: WaybillOriginSystem;
    parties: Party[];
    preparationDate?: string;
    preparationTime?: string;
    protectiveService: ProtectiveService[];
    referencedPatternIdentifier?: string;
    release?: Release;
    repetitivePatternNumber?: number;
    resourceId: number;
    resourceType: "Waybill";
    revisionNumber?: number;
    revisionSourceType?: WaybillRevisionSourceType;
    revisionTime?: string;
    route: RouteEntry[];
    shipmentId?: string;
    shipmentPaymentMethod?: ShipmentPaymentMethod;
    shipmentQualifier?: ShipmentQualifier;
    shipmentWeightCode?: ShipmentWeightCode;
    shipperLocationId?: number;
    specialHandlingCodes: string[];
    taxReasonCode?: string;
    trafficType?: TrafficType;
    transportationMethod?: TransportationMethod;
    waybillDate?: string;
    waybillNumber?: number;
    waybillStatus?: WaybillStatus;
    waybillTemplateId?: number;
    waybillTemplateName?: string;
    weightUnitCode?: WeightUnitCode;
}

Properties

armsTrackingId?: string
billOfLadingNumber?: string
billingCode?: BillingCode
capacityLoadCode?: CapacityLoadCode
commodityCode?: string
confidentialBillingRequestCode?: ConfidentialBillingRequestCode
consigneeCustomerName?: string
consigneeLocationId?: number
consignorCustomerName?: string
createdAt?: string
crossReferenceEquipment: CrossReferenceEquipment[]
customsDocumentationHandlingCode?: string
defaultReceiver?: string
destinationCityName?: string
destinationFsac?: string
destinationJunction?: Station
destinationStateOrProvince?: string
destinationStation?: Station
emptyCarDispositions: EmptyCarDisposition[]
equipmentDetails: EquipmentDetails[]
extendedReferenceInfo: ExtendedReferenceInformation[]
freightBillPartyLocationId?: number
hazardousCertifications: HazardousCertification[]
hazardousInfo: HazardousInformation[]
inCareOfLocationId?: number
intermodalStatusDetails?: IntermodalStatusDetails
lineItems: LineItem[]
loadStatus?: string
netWeightTons?: number
originCarrierCode?: string
originCityName?: string
originFsac?: string
originJunction?: Station
originScac?: string
originStateOrProvince?: string
originStation?: Station
originSystem?: WaybillOriginSystem
parties: Party[]
preparationDate?: string
preparationTime?: string
protectiveService: ProtectiveService[]
referencedPatternIdentifier?: string
release?: Release
repetitivePatternNumber?: number
resourceId: number

To prevent from having to re-query to get the correct foreign key for known records, we can store this here when passing event information around.

resourceType: "Waybill"
revisionNumber?: number
revisionSourceType?: WaybillRevisionSourceType
revisionTime?: string
route: RouteEntry[]
shipmentId?: string
shipmentPaymentMethod?: ShipmentPaymentMethod
shipmentQualifier?: ShipmentQualifier
shipmentWeightCode?: ShipmentWeightCode
shipperLocationId?: number
specialHandlingCodes: string[]
taxReasonCode?: string
trafficType?: TrafficType
transportationMethod?: TransportationMethod
waybillDate?: string
waybillNumber?: number
waybillStatus?: WaybillStatus
waybillTemplateId?: number
waybillTemplateName?: string
weightUnitCode?: WeightUnitCode