text: /**
   * Selling Partner API for Fulfillment Inbound
   * The Selling Partner API for Fulfillment Inbound lets you create applications that create and update inbound shipments of inventory to Amazon's fulfillment network.
   *
   * OpenAPI spec version: v0
   * 
   *
   * 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 ApiClient from '../ApiClient';
  import Address from './Address';
  import IntendedBoxContentsSource from './IntendedBoxContentsSource';
  import LabelPrepPreference from './LabelPrepPreference';
  import ShipmentStatus from './ShipmentStatus';
  
  /**
  * The InboundShipmentHeader model module.
  * @module client/models/InboundShipmentHeader
  * @version v0
  */
  export default class InboundShipmentHeader {
      /**
      * Constructs a new <code>InboundShipmentHeader</code>.
      * Inbound shipment information used to create and update inbound shipments.
      * @alias module:client/models/InboundShipmentHeader
      * @class
      * @param shipmentName {String} The name for the shipment. Use a naming convention that helps distinguish between shipments over time, such as the date the shipment was created.
      * @param shipFromAddress {module:client/models/Address} 
      * @param destinationFulfillmentCenterId {String} The identifier for the fulfillment center to which the shipment will be shipped. Get this value from the InboundShipmentPlan object in the response returned by the createInboundShipmentPlan operation.
      * @param shipmentStatus {module:client/models/ShipmentStatus} 
      * @param labelPrepPreference {module:client/models/LabelPrepPreference} 
      */
  
      constructor(shipmentName, shipFromAddress, destinationFulfillmentCenterId, shipmentStatus, labelPrepPreference) {
          
          
          this['ShipmentName'] = shipmentName;
          this['ShipFromAddress'] = shipFromAddress;
          this['DestinationFulfillmentCenterId'] = destinationFulfillmentCenterId;
          this['ShipmentStatus'] = shipmentStatus;
          this['LabelPrepPreference'] = labelPrepPreference;
          
      }
  
      /**
      * Constructs a <code>InboundShipmentHeader</code> from a plain JavaScript object, optionally creating a new instance.
      * Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
      * @param {Object} data The plain JavaScript object bearing properties of interest.
      * @param {module:client/models/InboundShipmentHeader} obj Optional instance to populate.
      * @return {module:client/models/InboundShipmentHeader} The populated <code>InboundShipmentHeader</code> instance.
      */
      static constructFromObject(data, obj) {
          if (data) {
              obj = obj || new InboundShipmentHeader();
                          
              
              if (data.hasOwnProperty('ShipmentName')) {
                  obj['ShipmentName'] = ApiClient.convertToType(data['ShipmentName'], 'String');
              }
              if (data.hasOwnProperty('ShipFromAddress')) {
                  obj['ShipFromAddress'] = Address.constructFromObject(data['ShipFromAddress']);
              }
              if (data.hasOwnProperty('DestinationFulfillmentCenterId')) {
                  obj['DestinationFulfillmentCenterId'] = ApiClient.convertToType(data['DestinationFulfillmentCenterId'], 'String');
              }
              if (data.hasOwnProperty('AreCasesRequired')) {
                  obj['AreCasesRequired'] = ApiClient.convertToType(data['AreCasesRequired'], 'Boolean');
              }
              if (data.hasOwnProperty('ShipmentStatus')) {
                  obj['ShipmentStatus'] = ShipmentStatus.constructFromObject(data['ShipmentStatus']);
              }
              if (data.hasOwnProperty('LabelPrepPreference')) {
                  obj['LabelPrepPreference'] = LabelPrepPreference.constructFromObject(data['LabelPrepPreference']);
              }
              if (data.hasOwnProperty('IntendedBoxContentsSource')) {
                  obj['IntendedBoxContentsSource'] = IntendedBoxContentsSource.constructFromObject(data['IntendedBoxContentsSource']);
              }
          }
          return obj;
      }
  
      /**
      * The name for the shipment. Use a naming convention that helps distinguish between shipments over time, such as the date the shipment was created.
      * @member {String} ShipmentName
      */
      'ShipmentName' = undefined;
      /**
      * @member {module:client/models/Address} ShipFromAddress
      */
      'ShipFromAddress' = undefined;
      /**
      * The identifier for the fulfillment center to which the shipment will be shipped. Get this value from the InboundShipmentPlan object in the response returned by the createInboundShipmentPlan operation.
      * @member {String} DestinationFulfillmentCenterId
      */
      'DestinationFulfillmentCenterId' = undefined;
      /**
      * Indicates whether or not an inbound shipment contains case-packed boxes. Note: A shipment must contain either all case-packed boxes or all individually packed boxes.  Possible values:  true - All boxes in the shipment must be case packed.  false - All boxes in the shipment must be individually packed.  Note: If AreCasesRequired = true for an inbound shipment, then the value of QuantityInCase must be greater than zero for every item in the shipment. Otherwise the service returns an error.
      * @member {Boolean} AreCasesRequired
      */
      'AreCasesRequired' = undefined;
      /**
      * @member {module:client/models/ShipmentStatus} ShipmentStatus
      */
      'ShipmentStatus' = undefined;
      /**
      * @member {module:client/models/LabelPrepPreference} LabelPrepPreference
      */
      'LabelPrepPreference' = undefined;
      /**
      * @member {module:client/models/IntendedBoxContentsSource} IntendedBoxContentsSource
      */
      'IntendedBoxContentsSource' = undefined;
  
  
  
  
  }
  