/**
 * DHL Express APIs (MyDHL API)
 * Welcome to the official DHL Express APIs (MyDHL API) below are the published API Documentation to fulfill your shipping needs with DHL Express.       Please follow the process described [here](https://developer.dhl.com/api-reference/dhl-express-mydhl-api#get-started-section/user-guide--get-access) to request access to the DHL Express - MyDHL API services    In case you already have DHL Express - MyDHL API Service credentials please ensure to use the endpoints/environments listed  [here](https://developer.dhl.com/api-reference/dhl-express-mydhl-api#get-started-section/user-guide--environments)
 *
 * OpenAPI spec version: 2.4.0
 *
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */
import { EstimatedDeliveryDate } from './estimated-delivery-date';
import { Pickup } from './pickup';
import { SupermodelIoLogisticsExpressAccount } from './supermodel-io-logistics-express-account';
import { SupermodelIoLogisticsExpressCreateShipmentRequestContent } from './supermodel-io-logistics-express-create-shipment-request-content';
import { SupermodelIoLogisticsExpressCreateShipmentRequestCustomerDetails } from './supermodel-io-logistics-express-create-shipment-request-customer-details';
import { SupermodelIoLogisticsExpressCreateShipmentRequestGetAdditionalInformation } from './supermodel-io-logistics-express-create-shipment-request-get-additional-information';
import { SupermodelIoLogisticsExpressCreateShipmentRequestOnDemandDelivery } from './supermodel-io-logistics-express-create-shipment-request-on-demand-delivery';
import { SupermodelIoLogisticsExpressCreateShipmentRequestOutputImageProperties } from './supermodel-io-logistics-express-create-shipment-request-output-image-properties';
import { SupermodelIoLogisticsExpressCreateShipmentRequestParentShipment } from './supermodel-io-logistics-express-create-shipment-request-parent-shipment';
import { SupermodelIoLogisticsExpressCreateShipmentRequestPrepaidCharges } from './supermodel-io-logistics-express-create-shipment-request-prepaid-charges';
import { SupermodelIoLogisticsExpressCreateShipmentRequestShipmentNotification } from './supermodel-io-logistics-express-create-shipment-request-shipment-notification';
import { SupermodelIoLogisticsExpressDocumentImages } from './supermodel-io-logistics-express-document-images';
import { SupermodelIoLogisticsExpressIdentifier } from './supermodel-io-logistics-express-identifier';
import { SupermodelIoLogisticsExpressReference } from './supermodel-io-logistics-express-reference';
import { SupermodelIoLogisticsExpressValueAddedServices } from './supermodel-io-logistics-express-value-added-services';
/**
 *
 * @export
 * @interface SupermodelIoLogisticsExpressCreateShipmentRequest
 */
export interface SupermodelIoLogisticsExpressCreateShipmentRequest {
    /**
     * Identifies the date and time the package is tendered. Both the date and time portions of the string are expected to be used. The date should not be a past date or a date more than 10 days in the future. The time is the local time of the shipment based on the shipper's time zone. The date component must be in the format: YYYY-MM-DD; the time component must be in the format: HH:MM:SS using a 24 hour clock. The date and time parts are separated by the letter T (e.g. 2006-06-26T17:00:00 GMT+01:00).
     * @type {string}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    plannedShippingDateAndTime: string;
    /**
     *
     * @type {Pickup}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    pickup: Pickup;
    /**
     * Please enter DHL Express Global Product code
     * @type {string}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    productCode: string;
    /**
     * Please enter DHL Express Local Product code
     * @type {string}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    localProductCode?: string;
    /**
     * Please advise if you want to get rate estimates for given shipment
     * @type {boolean}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    getRateEstimates?: boolean;
    /**
     * Please enter all the DHL Express accounts and types to be used for this shipment
     * @type {Array<SupermodelIoLogisticsExpressAccount>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    accounts: Array<SupermodelIoLogisticsExpressAccount>;
    /**
     * This section communicates additional shipping services, such as Insurance (or Shipment Value Protection).
     * @type {Array<SupermodelIoLogisticsExpressValueAddedServices>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    valueAddedServices?: Array<SupermodelIoLogisticsExpressValueAddedServices>;
    /**
     *
     * @type {SupermodelIoLogisticsExpressCreateShipmentRequestOutputImageProperties}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    outputImageProperties?: SupermodelIoLogisticsExpressCreateShipmentRequestOutputImageProperties;
    /**
     * Here you can declare your customer references
     * @type {Array<SupermodelIoLogisticsExpressReference>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    customerReferences?: Array<SupermodelIoLogisticsExpressReference>;
    /**
     * Identifiers section is on the shipment level where you can optionaly provide a DHL Express waybill number. This has to be enabled by your DHL Express IT contact.
     * @type {Array<SupermodelIoLogisticsExpressIdentifier>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    identifiers?: Array<SupermodelIoLogisticsExpressIdentifier>;
    /**
     *
     * @type {SupermodelIoLogisticsExpressCreateShipmentRequestCustomerDetails}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    customerDetails: SupermodelIoLogisticsExpressCreateShipmentRequestCustomerDetails;
    /**
     *
     * @type {SupermodelIoLogisticsExpressCreateShipmentRequestContent}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    content: SupermodelIoLogisticsExpressCreateShipmentRequestContent;
    /**
     *
     * @type {SupermodelIoLogisticsExpressDocumentImages}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    documentImages?: SupermodelIoLogisticsExpressDocumentImages;
    /**
     *
     * @type {SupermodelIoLogisticsExpressCreateShipmentRequestOnDemandDelivery}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    onDemandDelivery?: SupermodelIoLogisticsExpressCreateShipmentRequestOnDemandDelivery;
    /**
     * Determines whether to request the On Demand Delivery (ODD) link. When set to true it will provide an URL link for the specified Waybill Number, Shipper Account Number. The default value is false, no ODD link URL is provided in the response message.
     * @type {boolean}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    requestOndemandDeliveryURL?: boolean;
    /**
     * This is to support sending email notification once the shipment is created. The email will contain the basic information on the shipper, recipient, waybill number, and shipment information
     * @type {Array<SupermodelIoLogisticsExpressCreateShipmentRequestShipmentNotification>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    shipmentNotification?: Array<SupermodelIoLogisticsExpressCreateShipmentRequestShipmentNotification>;
    /**
     * Please provide any charges you have already paid for this shipment, like freight paid upfront. To allow using this section please contact your DHL Express representative
     * @type {Array<SupermodelIoLogisticsExpressCreateShipmentRequestPrepaidCharges>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    prepaidCharges?: Array<SupermodelIoLogisticsExpressCreateShipmentRequestPrepaidCharges>;
    /**
     * If set to true, response will return transliterated text of shipper and receiver details.
     * @type {boolean}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    getTransliteratedResponse?: boolean;
    /**
     *
     * @type {EstimatedDeliveryDate}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    estimatedDeliveryDate?: EstimatedDeliveryDate;
    /**
     * Provides additional information in the response like service area details, routing code and pickup-related information
     * @type {Array<SupermodelIoLogisticsExpressCreateShipmentRequestGetAdditionalInformation>}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    getAdditionalInformation?: Array<SupermodelIoLogisticsExpressCreateShipmentRequestGetAdditionalInformation>;
    /**
     *
     * @type {SupermodelIoLogisticsExpressCreateShipmentRequestParentShipment}
     * @memberof SupermodelIoLogisticsExpressCreateShipmentRequest
     */
    parentShipment?: SupermodelIoLogisticsExpressCreateShipmentRequestParentShipment;
}
