# This file was generated by liblab | https://liblab.com/

from .utils.json_map import JsonMap
from .base import BaseModel


@JsonMap(
    {
        "negotiated_rates_indicator": "NegotiatedRatesIndicator",
        "frs_shipment_indicator": "FRSShipmentIndicator",
        "rate_chart_indicator": "RateChartIndicator",
        "user_level_discount_indicator": "UserLevelDiscountIndicator",
        "tpfc_negotiated_rates_indicator": "TPFCNegotiatedRatesIndicator",
    }
)
class ShipmentShipmentRatingOptions(BaseModel):
    """Shipment Rating Options container.

    :param negotiated_rates_indicator: NegotiatedRatesIndicator -  Required to display two types of discounts: 1) Bids or Account Based Rates2) Web/Promotional Discounts BidsAccount Based Rates: If the indicator is present, the Shipper is authorized, and the Rating API XML Request is configured to return Negotiated Rates, then Negotiated Rates should be returned in the response. Web/Promotional Discounts: If the indicator is present, the Shipper is authorized for Web/Promotional Discounts then Negotiated Rates should be returned in the response., defaults to None
    :type negotiated_rates_indicator: str, optional
    :param frs_shipment_indicator: FRS Indicator. The indicator is required to obtain rates for UPS Ground Freight Pricing (GFP).  The account number must be enabled for GFP., defaults to None
    :type frs_shipment_indicator: str, optional
    :param rate_chart_indicator: RateChartIndicator -  If present in a request, the response will contain a RateChart element., defaults to None
    :type rate_chart_indicator: str, optional
    :param user_level_discount_indicator: UserLevelDiscountIndicator - required to obtain rates for User Level Promotions.  This is required to obtain User Level Discounts. There must also be no ShipperNumber in the Shipper container., defaults to None
    :type user_level_discount_indicator: str, optional
    :param tpfc_negotiated_rates_indicator: This indicator applies for a third party (3P) / Freight collect (FC) shipment only. For 3P/FC shipment if the shipper wishes to request for the negotiated rates of the third party then this indicator should be included in the request. If authorized the 3P/FC negotiated rates will be applied to the shipment and rates will be returned in response., defaults to None
    :type tpfc_negotiated_rates_indicator: str, optional
    """

    def __init__(
        self,
        negotiated_rates_indicator: str = None,
        frs_shipment_indicator: str = None,
        rate_chart_indicator: str = None,
        user_level_discount_indicator: str = None,
        tpfc_negotiated_rates_indicator: str = None,
    ):
        if negotiated_rates_indicator is not None:
            self.negotiated_rates_indicator = negotiated_rates_indicator
        if frs_shipment_indicator is not None:
            self.frs_shipment_indicator = frs_shipment_indicator
        if rate_chart_indicator is not None:
            self.rate_chart_indicator = rate_chart_indicator
        if user_level_discount_indicator is not None:
            self.user_level_discount_indicator = user_level_discount_indicator
        if tpfc_negotiated_rates_indicator is not None:
            self.tpfc_negotiated_rates_indicator = tpfc_negotiated_rates_indicator
