"""Typed 8_01 transportation contracts from release controllers and staging schema.
Request and response types are separate: outbound nested objects reject unknown
keys, while responses retain and report newly introduced server fields.
"""
from __future__ import annotations
from datetime import datetime
from typing import Literal
from uuid import UUID
from pydantic import Field, field_validator
from ab.api.models.base import ResponseModel
from ab.api.models.packing import PackingRequestModel
[docs]
class BookShipmentRequestV2(PackingRequestModel):
"""BookShipmentRequestModelV2 request contract (8_01)."""
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
force_update: bool = Field(
default=False,
alias="forceUpdate",
description="Allow an overwrite-policy conflict override; refresh-policy conflicts still require a fresh read.",
)
quote_id: UUID = Field(
alias="quoteId",
description="Quote UUID from a shipping record or selected transportation quote; never a shipping ID.",
)
ship_out_date: datetime = Field(
default=datetime.min,
alias="shipOutDate",
description="Requested shipment date and time; required by non-UPS carriers.",
)
international_params: JobExportDataInput | None = Field(
default=None, alias="internationalParams", description="International params."
)
carrier_specific_params: BookShipmentSpecificParamsInput | None = Field(
default=None, alias="carrierSpecificParams", description="Carrier specific params."
)
document_byte_code_required: bool = Field(
default=False, alias="documentByteCodeRequired", description="Document byte code required."
)
handling_unit_freight_classes: list[str] | None = Field(
default=None, alias="handlingUnitFreightClasses", description="Handling unit freight classes."
)
continue_on_validation_error: bool = Field(
default=False, alias="continueOnValidationError", description="Continue on validation error."
)
[docs]
@field_validator("quote_id")
@classmethod
def nonempty_quote(cls, value: UUID) -> UUID:
"""An empty GUID cannot identify a shipment quote."""
if value.int == 0:
raise ValueError("quote_id must identify a specific quote; the empty UUID is not valid")
return value
[docs]
class CancelShipmentRequest(PackingRequestModel):
"""CancelShipmentRequestModel request contract (8_01)."""
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
force_update: bool = Field(
default=False,
alias="forceUpdate",
description="Allow an overwrite-policy conflict override; refresh-policy conflicts still require a fresh read.",
)
force_delete: bool = Field(
default=False, alias="forceDelete", description="Force cancellation only when explicitly requested."
)
[docs]
class ShippingExportRequest(PackingRequestModel):
"""InternationalParams request contract (8_01)."""
commodities: list[ExportDataCommodityInput] | None = Field(
default=None, alias="commodities", description="Commodities."
)
packing_info: list[ExportPackingInfoInput] | None = Field(
default=None, alias="packingInfo", description="Packing info."
)
customs_value: float = Field(alias="customsValue", description="Customs value.")
invoice_number: str | None = Field(default=None, alias="invoiceNumber", description="Invoice number.")
purchase_order_number: str | None = Field(
default=None, alias="purchaseOrderNumber", description="Purchase order number."
)
terms_of_sale: str | None = Field(default=None, alias="termsOfSale", description="Terms of sale.")
exporter_tax_id: str | None = Field(default=None, alias="exporterTaxId", description="Exporter tax id.")
consignee_tax_id: str | None = Field(default=None, alias="consigneeTaxId", description="Consignee tax id.")
total_costs: ExportTotalCostsInput | None = Field(default=None, alias="totalCosts", description="Total costs.")
sold_to: SoldToDetailsInput | None = Field(default=None, alias="soldTo", description="Sold to.")
usps_specific: USPSSpecificInput | None = Field(default=None, alias="uspsSpecific", description="Usps specific.")
fed_ex_specific: FedExSpecificInput | None = Field(
default=None, alias="fedExSpecific", description="Fed ex specific."
)
ups_specific: UPSSpecificInput | None = Field(default=None, alias="upsSpecific", description="Ups specific.")
values_specified: bool | None = Field(default=None, alias="valuesSpecified", description="Values specified.")
sold_to_contact_details: ShipmentContactDetailsInput | None = Field(
default=None, alias="soldToContactDetails", description="Sold to contact details."
)
[docs]
class ExportDataCommodityResult(ResponseModel):
"""ExportDataCommodity response contract (8_01)."""
description: str | None = Field(default=None, alias="description", description="Description.")
weight: float | None = Field(default=None, alias="weight", description="Weight.")
unit_price: float | None = Field(default=None, alias="unitPrice", description="Unit price.")
country_id: UUID | None = Field(default=None, alias="countryId", description="Country id.")
country_iata_code: str | None = Field(default=None, alias="countryIATACode", description="Country iata code.")
quantity: float | None = Field(default=None, alias="quantity", description="Quantity.")
unit_of_measure: str | None = Field(default=None, alias="unitOfMeasure", description="Unit of measure.")
schedule_b_number: str | None = Field(default=None, alias="scheduleBNumber", description="Schedule b number.")
eccn: str | None = Field(default=None, alias="eccn", description="Eccn.")
export_license_code: str | None = Field(default=None, alias="exportLicenseCode", description="Export license code.")
special_marks: str | None = Field(default=None, alias="specialMarks", description="Special marks.")
item_value: float | None = Field(default=None, alias="itemValue", description="Item value.")
job_item_id: UUID | None = Field(
default=None,
alias="jobItemId",
description="Export commodity item UUID; retained on GET/edit/POST round trips.",
)
full_description: str | None = Field(default=None, alias="fullDescription", description="Full description.")
[docs]
class ExportPackingInfoResult(ResponseModel):
"""ExportPackingInfo response contract (8_01)."""
commodity: int | None = Field(default=None, alias="commodity", description="Commodity.")
package: str | None = Field(default=None, alias="package", description="Package.")
package_number: int | None = Field(default=None, alias="packageNumber", description="Package number.")
amount_in_package: int | None = Field(default=None, alias="amountInPackage", description="Amount in package.")
[docs]
class ExportTotalCostsResult(ResponseModel):
"""ExportTotalCosts response contract (8_01)."""
discount: float | None = Field(default=None, alias="discount", description="Discount.")
insurance: float | None = Field(default=None, alias="insurance", description="Insurance.")
freight: float | None = Field(default=None, alias="freight", description="Freight.")
packing: float | None = Field(default=None, alias="packing", description="Packing.")
handling: float | None = Field(default=None, alias="handling", description="Handling.")
other: float | None = Field(default=None, alias="other", description="Other.")
[docs]
class SoldToAddressResult(ResponseModel):
"""SoldToAddress response contract (8_01)."""
address_line1: str | None = Field(default=None, alias="addressLine1", description="Address line1.")
address_line2: str | None = Field(default=None, alias="addressLine2", description="Address line2.")
city: str | None = Field(default=None, alias="city", description="City.")
state: str | None = Field(default=None, alias="state", description="State.")
zip_code: str | None = Field(default=None, alias="zipCode", description="Zip code.")
country_id: UUID | None = Field(default=None, alias="countryId", description="Country id.")
[docs]
class SoldToDetailsResult(ResponseModel):
"""SoldToDetails response contract (8_01)."""
contact_name: str | None = Field(default=None, alias="contactName", description="Contact name.")
company_name: str | None = Field(default=None, alias="companyName", description="Company name.")
phone_number: str | None = Field(default=None, alias="phoneNumber", description="Phone number.")
email_address: str | None = Field(default=None, alias="emailAddress", description="Email address.")
address: SoldToAddressResult | None = Field(default=None, alias="address", description="Address.")
tax_id: str | None = Field(default=None, alias="taxId", description="Tax id.")
[docs]
class USPSSpecificResult(ResponseModel):
"""USPSSpecific response contract (8_01)."""
aesitn: str | None = Field(default=None, alias="aesitn", description="Aesitn.")
content_comments: str | None = Field(default=None, alias="contentComments", description="Content comments.")
reason_for_export: str | None = Field(default=None, alias="reasonForExport", description="Reason for export.")
[docs]
class FedExSpecificResult(ResponseModel):
"""FedExSpecific response contract (8_01)."""
reason_for_export: str | None = Field(default=None, alias="reasonForExport", description="Reason for export.")
special_instructions: str | None = Field(
default=None, alias="specialInstructions", description="Special instructions."
)
payment_type: str | None = Field(default=None, alias="paymentType", description="Payment type.")
export_compliance_statement: str | None = Field(
default=None, alias="exportComplianceStatement", description="Export compliance statement."
)
[docs]
class UPSSpecificResult(ResponseModel):
"""UPSSpecific response contract (8_01)."""
reason_for_export: str | None = Field(default=None, alias="reasonForExport", description="Reason for export.")
shipper_memo: str | None = Field(default=None, alias="shipperMemo", description="Shipper memo.")
invoice_date: datetime | None = Field(default=None, alias="invoiceDate", description="Invoice date.")
duties_paid_by_sender: bool | None = Field(
default=None, alias="dutiesPaidBySender", description="Duties paid by sender."
)
description_on_label: str | None = Field(
default=None, alias="descriptionOnLabel", description="Description on label."
)
exemption_or_itn: str | None = Field(default=None, alias="exemptionOrITN", description="Exemption or itn.")
[docs]
class FreightRateRequestAddressDetailsResult(ResponseModel):
"""FreightRateRequestAddressDetails response contract (8_01)."""
address_line1: str | None = Field(default=None, alias="addressLine1", description="Address line1.")
address_line2: str | None = Field(default=None, alias="addressLine2", description="Address line2.")
city: str | None = Field(default=None, alias="city", description="City.")
state: str | None = Field(default=None, alias="state", description="State.")
zip_code: str | None = Field(default=None, alias="zipCode", description="Zip code.")
country_id: UUID | None = Field(default=None, alias="countryId", description="Country id.")
country_iata_code: str | None = Field(default=None, alias="countryIATACode", description="Country iata code.")
alpha3_code: str | None = Field(default=None, alias="alpha3Code", description="Alpha3 code.")
county_name: str | None = Field(default=None, alias="countyName", description="County name.")
is_metric_system: bool | None = Field(default=None, alias="isMetricSystem", description="Is metric system.")
is_empty: bool | None = Field(default=None, alias="isEmpty", description="Is empty.")
[docs]
class ShippingExportData(ResponseModel):
"""InternationalParams response contract (8_01)."""
commodities: list[ExportDataCommodityResult] | None = Field(
default=None, alias="commodities", description="Commodities."
)
packing_info: list[ExportPackingInfoResult] | None = Field(
default=None, alias="packingInfo", description="Packing info."
)
customs_value: float | None = Field(default=None, alias="customsValue", description="Customs value.")
invoice_number: str | None = Field(default=None, alias="invoiceNumber", description="Invoice number.")
purchase_order_number: str | None = Field(
default=None, alias="purchaseOrderNumber", description="Purchase order number."
)
terms_of_sale: str | None = Field(default=None, alias="termsOfSale", description="Terms of sale.")
exporter_tax_id: str | None = Field(default=None, alias="exporterTaxId", description="Exporter tax id.")
consignee_tax_id: str | None = Field(default=None, alias="consigneeTaxId", description="Consignee tax id.")
total_costs: ExportTotalCostsResult | None = Field(default=None, alias="totalCosts", description="Total costs.")
sold_to: SoldToDetailsResult | None = Field(default=None, alias="soldTo", description="Sold to.")
usps_specific: USPSSpecificResult | None = Field(default=None, alias="uspsSpecific", description="Usps specific.")
fed_ex_specific: FedExSpecificResult | None = Field(
default=None, alias="fedExSpecific", description="Fed ex specific."
)
ups_specific: UPSSpecificResult | None = Field(default=None, alias="upsSpecific", description="Ups specific.")
values_specified: bool | None = Field(default=None, alias="valuesSpecified", description="Values specified.")
sold_to_contact_details: ShipmentContactDetailsResult | None = Field(
default=None, alias="soldToContactDetails", description="Sold to contact details."
)
[docs]
def to_request(self) -> ShippingExportRequest:
"""Prepare an edit/save body, excluding the computed ``fullDescription``.
Commodity IDs and explicit nulls are preserved. Unknown server fields
fail validation rather than disappearing from a replacement write.
"""
payload = self.model_dump(by_alias=True, exclude_unset=True, mode="json")
for commodity in payload.get("commodities") or []:
commodity.pop("fullDescription", None)
return ShippingExportRequest.model_validate(payload)
[docs]
class ShipmentBookingResult(ResponseModel):
"""BookShipmentResponseModel response contract (8_01)."""
success: bool | None = Field(default=None, alias="success", description="Success.")
error_message: str | None = Field(default=None, alias="errorMessage", description="Error message.")
shipment_id: str | None = Field(
default=None,
alias="shipmentId",
description="Carrier shipment identifier; distinct from Shipping.id and quoteId.",
)
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
[docs]
class ErrorResponseResult(ResponseModel):
"""ErrorResponse response contract (8_01)."""
message: str | None = Field(default=None, alias="message", description="Message.")
code: str | None = Field(default=None, alias="code", description="Code.")
[docs]
class BookingValidationResult(ResponseModel):
"""BookingValidationResponse response contract (8_01)."""
valid: bool | None = Field(default=None, alias="valid", description="Valid.")
errors: list[ErrorResponseResult] | None = Field(default=None, alias="errors", description="Errors.")
error: ErrorResponseResult | None = Field(default=None, alias="error", description="Error.")
[docs]
class ShipmentCancelResult(ResponseModel):
"""DeleteShipmentResponse response contract (8_01)."""
success: bool | None = Field(default=None, alias="success", description="Success.")
error_message: str | None = Field(default=None, alias="errorMessage", description="Error message.")
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
override_error: bool | None = Field(default=None, alias="overrideError", description="Override error.")
[docs]
class HandlingUnitRateRequest(PackingRequestModel):
"""RateRequestModel request contract (8_01)."""
ship_out_date: datetime = Field(
default=datetime.min,
alias="shipOutDate",
description="Requested shipment date and time; required by non-UPS carriers.",
)
transportation_add_ons: list[JobServiceAddOnModelInput] | None = Field(
default=None, alias="transportationAddOns", description="Transportation add ons."
)
rate_sources: list[Literal[0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 20]] | None = Field(
default=None, alias="rateSources", description="Rate sources."
)
handling_units: list[TransportationHandlingUnitModelInput] = Field(
alias="handlingUnits", description="Handling units included in this rate request.", min_length=1
)
origin_address: RateRequestAddressModelInput = Field(alias="originAddress", description="Origin address.")
destination_address: RateRequestAddressModelInput = Field(
alias="destinationAddress", description="Destination address."
)
skip_cache: bool = Field(default=False, alias="skipCache", description="Skip cache.")
[docs]
class SelectQuoteRequest(PackingRequestModel):
"""SetRateModel request contract (8_01)."""
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
force_update: bool = Field(
default=False,
alias="forceUpdate",
description="Allow an overwrite-policy conflict override; refresh-policy conflicts still require a fresh read.",
)
rates_key: str = Field(
alias="ratesKey",
description="Opaque key returned by the rate request; required when selecting a quote.",
min_length=1,
)
carrier_code: str = Field(
alias="carrierCode",
description="Carrier code from the chosen provider in the matching rate response.",
min_length=1,
)
carrier_account_id: int | None = Field(default=None, alias="carrierAccountId", description="Carrier account id.")
active: bool | None = Field(default=None, alias="active", description="Active.")
pickup_agent_id: UUID | None = Field(default=None, alias="pickupAgentId", description="Pickup agent id.")
[docs]
class CarrierAccessorialsResult(ResponseModel):
"""CarrierAccessorials response contract (8_01)."""
service_category_id: UUID | None = Field(
default=None, alias="serviceCategoryId", description="Service category id."
)
line_number: int | None = Field(default=None, alias="lineNumber", description="Line number.")
service_description: str | None = Field(
default=None, alias="serviceDescription", description="Service description."
)
charge_amount: float | None = Field(default=None, alias="chargeAmount", description="Charge amount.")
markup_percent: float | None = Field(default=None, alias="markupPercent", description="Markup percent.")
[docs]
class CarrierAccountInfoResult(ResponseModel):
"""CarrierAccountInfo response contract (8_01)."""
id: int | None = Field(default=None, alias="id", description="Id.")
key: str | None = Field(default=None, alias="key", description="Key.")
friendly_name: str | None = Field(default=None, alias="friendlyName", description="Friendly name.")
[docs]
class ServiceAmountResult(ResponseModel):
"""ServiceAmount response contract (8_01)."""
service_description: str | None = Field(
default=None, alias="serviceDescription", description="Service description."
)
charge_amount: float | None = Field(default=None, alias="chargeAmount", description="Charge amount.")
[docs]
class CarrierProviderResult(ResponseModel):
"""CarrierProvider response contract (8_01)."""
quote_number: str | None = Field(default=None, alias="quoteNumber", description="Quote number.")
carrier_name: str | None = Field(default=None, alias="carrierName", description="Carrier name.")
carrier_code: str | None = Field(
default=None,
alias="carrierCode",
description="Carrier code from the chosen provider in the matching rate response.",
)
fuel_charge_amount: float | None = Field(default=None, alias="fuelChargeAmount", description="Fuel charge amount.")
net_amount: float | None = Field(default=None, alias="netAmount", description="Net amount.")
caf_note: str | None = Field(default=None, alias="cafNote", description="Caf note.")
service_days: int | None = Field(default=None, alias="serviceDays", description="Service days.")
service_days_asterisk: bool | None = Field(
default=None, alias="serviceDaysAsterisk", description="Service days asterisk."
)
estimated_arrival: datetime | None = Field(default=None, alias="estimatedArrival", description="Estimated arrival.")
custom_message: str | None = Field(default=None, alias="customMessage", description="Custom message.")
accessorials: list[CarrierAccessorialsResult] | None = Field(
default=None, alias="accessorials", description="Accessorials."
)
total_services_cost: float | None = Field(
default=None, alias="totalServicesCost", description="Total services cost."
)
total_without_service: float | None = Field(
default=None, alias="totalWithoutService", description="Total without service."
)
freight_sell: float | None = Field(default=None, alias="freightSell", description="Freight sell.")
accessorial_sell: float | None = Field(default=None, alias="accessorialSell", description="Accessorial sell.")
total_sell: float | None = Field(default=None, alias="totalSell", description="Total sell.")
source_id: Literal[0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 20] | None = Field(
default=None, alias="sourceId", description="Source id."
)
used_carrier_account_info: CarrierAccountInfoResult | None = Field(
default=None, alias="usedCarrierAccountInfo", description="Used carrier account info."
)
net_breakdown: list[ServiceAmountResult] | None = Field(
default=None, alias="netBreakdown", description="Net breakdown."
)
[docs]
class CarrierProviderMessageResult(ResponseModel):
"""CarrierProviderMessage response contract (8_01)."""
source_id: Literal[0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 20] | None = Field(
default=None, alias="sourceId", description="Source id."
)
message: str | None = Field(default=None, alias="message", description="Message.")
[docs]
class ObtainNFMHandlingUnitResult(ResponseModel):
"""ObtainNFMHandlingUnit response contract (8_01)."""
quantity: int | None = Field(default=None, alias="quantity", description="Quantity.")
width: float | None = Field(default=None, alias="width", description="Width.")
length: float | None = Field(default=None, alias="length", description="Length.")
height: float | None = Field(default=None, alias="height", description="Height.")
weight: float | None = Field(default=None, alias="weight", description="Weight.")
container_type_id: int | None = Field(default=None, alias="containerTypeId", description="Container type id.")
declared_value: float | None = Field(default=None, alias="declaredValue", description="Declared value.")
freight_item_class: str | None = Field(default=None, alias="freightItemClass", description="Freight item class.")
[docs]
class NameValueEntityResult(ResponseModel):
"""NameValueEntity response contract (8_01)."""
name: str | None = Field(default=None, alias="name", description="Name.")
value: str | None = Field(default=None, alias="value", description="Value.")
[docs]
class ObtainNFMTransportationAddOnResult(ResponseModel):
"""ObtainNFMTransportationAddOn response contract (8_01)."""
carrier_api: Literal[0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 20] | None = Field(
default=None, alias="carrierAPI", description="Carrier api."
)
unique_id: UUID | None = Field(default=None, alias="uniqueId", description="Unique id.")
params: list[NameValueEntityResult] | None = Field(default=None, alias="params", description="Params.")
[docs]
class RateRequestSnapshotResult(ResponseModel):
"""RateRequestSnapshot response contract (8_01)."""
from_zip: str | None = Field(default=None, alias="fromZip", description="From zip.")
to_zip: str | None = Field(default=None, alias="toZip", description="To zip.")
handling_units: list[ObtainNFMHandlingUnitResult] | None = Field(
default=None, alias="handlingUnits", description="Handling units included in this rate request."
)
transportation_add_ons: list[ObtainNFMTransportationAddOnResult] | None = Field(
default=None, alias="transportationAddOns", description="Transportation add ons."
)
ship_out_date: datetime | None = Field(
default=None, alias="shipOutDate", description="Requested shipment date and time; required by non-UPS carriers."
)
[docs]
class HandlingUnitRates(ResponseModel):
"""KeyedRatesResponse response contract (8_01)."""
providers: list[CarrierProviderResult] | None = Field(default=None, alias="providers", description="Providers.")
errors: list[CarrierProviderMessageResult] | None = Field(default=None, alias="errors", description="Errors.")
warnings: list[CarrierProviderMessageResult] | None = Field(default=None, alias="warnings", description="Warnings.")
filtration_messages: list[CarrierProviderMessageResult] | None = Field(
default=None, alias="filtrationMessages", description="Filtration messages."
)
rates_key: str | None = Field(
default=None,
alias="ratesKey",
description="Opaque key returned by the rate request; required when selecting a quote.",
)
request_snapshot: RateRequestSnapshotResult | None = Field(
default=None, alias="requestSnapshot", description="Request snapshot."
)
[docs]
class TransportationQuoteResult(ResponseModel):
"""TransportationQuote response contract (8_01)."""
id: UUID | None = Field(default=None, alias="id", description="Id.")
active: bool | None = Field(default=None, alias="active", description="Active.")
shipment_type: UUID | None = Field(default=None, alias="shipmentType", description="Shipment type.")
provider_api: Literal[0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 14, 15, 20] | None = Field(
default=None, alias="providerAPI", description="Provider api."
)
provider_id: UUID | None = Field(default=None, alias="providerId", description="Provider id.")
provider_code: str | None = Field(default=None, alias="providerCode", description="Provider code.")
provider_company_name: str | None = Field(
default=None, alias="providerCompanyName", description="Provider company name."
)
freight_amount: float | None = Field(default=None, alias="freightAmount", description="Freight amount.")
accessorial_amount: float | None = Field(default=None, alias="accessorialAmount", description="Accessorial amount.")
bill_to_franchisee_id: UUID | None = Field(
default=None, alias="billToFranchiseeId", description="Bill to franchisee id."
)
bill_to_franchisee_code: str | None = Field(
default=None, alias="billToFranchiseeCode", description="Bill to franchisee code."
)
service_days: int | None = Field(default=None, alias="serviceDays", description="Service days.")
quote_number: str | None = Field(default=None, alias="quoteNumber", description="Quote number.")
estimated_arrival: datetime | None = Field(default=None, alias="estimatedArrival", description="Estimated arrival.")
shipment_accepted: bool | None = Field(default=None, alias="shipmentAccepted", description="Shipment accepted.")
shipment_accepted_date: datetime | None = Field(
default=None, alias="shipmentAcceptedDate", description="Shipment accepted date."
)
pro_number: str | None = Field(default=None, alias="proNumber", description="Pro number.")
is_overridden: bool | None = Field(default=None, alias="isOverridden", description="Is overridden.")
used_carrier_account_info: CarrierAccountInfoResult | None = Field(
default=None, alias="usedCarrierAccountInfo", description="Used carrier account info."
)
quote_snapshot: str | None = Field(default=None, alias="quoteSnapshot", description="Quote snapshot.")
shipping_id: int | None = Field(
default=None, alias="shippingId", description="Integer ID of the shipping record that owns this quote."
)
order_in_shipping: int | None = Field(default=None, alias="orderInShipping", description="Order in shipping.")
created_by: int | None = Field(default=None, alias="createdBy", description="Created by.")
created_date: datetime | None = Field(default=None, alias="createdDate", description="Created date.")
modified_by: int | None = Field(default=None, alias="modifiedBy", description="Modified by.")
modified_date: datetime | None = Field(default=None, alias="modifiedDate", description="Modified date.")
[docs]
class SelectedQuoteResult(ResponseModel):
"""SaveRateQuoteResponse response contract (8_01)."""
success: bool | None = Field(default=None, alias="success", description="Success.")
error_message: str | None = Field(default=None, alias="errorMessage", description="Error message.")
job_modified_date: datetime | None = Field(
default=None,
alias="jobModifiedDate",
description="Last observed job modification timestamp for optimistic concurrency.",
)
transportation_quote: TransportationQuoteResult | None = Field(
default=None, alias="transportationQuote", description="Transportation quote."
)