/* tslint:disable */
/* eslint-disable */
/**
 * ShipStation API v2
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 2.0.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


// May contain unused imports in some cases
// @ts-ignore
import type { MonetaryValue } from './monetary-value';
// May contain unused imports in some cases
// @ts-ignore
import type { RateType } from './rate-type';
// May contain unused imports in some cases
// @ts-ignore
import type { ValidationStatus } from './validation-status';

/**
 * A rate estimate
 * @export
 * @interface RateEstimate
 */
export interface RateEstimate {
    /**
     * 
     * @type {RateType}
     * @memberof RateEstimate
     */
    'rate_type': RateType;
    /**
     * A string that uniquely identifies the carrier
     * @type {string}
     * @memberof RateEstimate
     */
    'carrier_id': string;
    /**
     * The shipping amount
     * @type {MonetaryValue}
     * @memberof RateEstimate
     */
    'shipping_amount': MonetaryValue;
    /**
     * The insurance amount
     * @type {MonetaryValue}
     * @memberof RateEstimate
     */
    'insurance_amount': MonetaryValue;
    /**
     * The confirmation amount
     * @type {MonetaryValue}
     * @memberof RateEstimate
     */
    'confirmation_amount': MonetaryValue;
    /**
     * Any other charges associated with this rate
     * @type {MonetaryValue}
     * @memberof RateEstimate
     */
    'other_amount': MonetaryValue;
    /**
     * Tariff and additional taxes associated with an international shipment.
     * @type {MonetaryValue}
     * @memberof RateEstimate
     */
    'tax_amount'?: MonetaryValue;
    /**
     * Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of custom zones that vary depending upon the ship_to and ship_from location 
     * @type {number}
     * @memberof RateEstimate
     */
    'zone': number | null;
    /**
     * package type that this rate was estimated for
     * @type {string}
     * @memberof RateEstimate
     */
    'package_type': string | null;
    /**
     * The number of days estimated for delivery, this will show the _actual_ delivery time if for example, the package gets shipped on a Friday 
     * @type {number}
     * @memberof RateEstimate
     */
    'delivery_days'?: number;
    /**
     * Indicates if the rate is guaranteed.
     * @type {boolean}
     * @memberof RateEstimate
     */
    'guaranteed_service': boolean;
    /**
     * An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time.  The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipStation . 
     * @type {string}
     * @memberof RateEstimate
     */
    'estimated_delivery_date'?: string;
    /**
     * The carrier delivery days
     * @type {string}
     * @memberof RateEstimate
     */
    'carrier_delivery_days'?: string;
    /**
     * ship date
     * @type {string}
     * @memberof RateEstimate
     */
    'ship_date'?: string;
    /**
     * Indicates if the rates been negotiated
     * @type {boolean}
     * @memberof RateEstimate
     */
    'negotiated_rate': boolean;
    /**
     * service type
     * @type {string}
     * @memberof RateEstimate
     */
    'service_type': string;
    /**
     * service code for the rate
     * @type {string}
     * @memberof RateEstimate
     */
    'service_code': string;
    /**
     * Indicates if rate is trackable
     * @type {boolean}
     * @memberof RateEstimate
     */
    'trackable': boolean;
    /**
     * A [shipping carrier] , such as `fedex`, `dhl_express`, `stamps_com`, etc.
     * @type {string}
     * @memberof RateEstimate
     */
    'carrier_code': string;
    /**
     * carrier nickname
     * @type {string}
     * @memberof RateEstimate
     */
    'carrier_nickname': string;
    /**
     * carrier friendly name
     * @type {string}
     * @memberof RateEstimate
     */
    'carrier_friendly_name': string;
    /**
     * 
     * @type {ValidationStatus}
     * @memberof RateEstimate
     */
    'validation_status': ValidationStatus;
    /**
     * The warning messages
     * @type {Array<string>}
     * @memberof RateEstimate
     */
    'warning_messages': Array<string>;
    /**
     * The error messages
     * @type {Array<string>}
     * @memberof RateEstimate
     */
    'error_messages': Array<string>;
}



