content: /*
   * The Selling Partner API for FBA inbound operations.
   * The Selling Partner API for Fulfillment By Amazon (FBA) Inbound. The FBA Inbound API enables building inbound workflows to create, manage, and send shipments into Amazon's fulfillment network. The API has interoperability with the Send-to-Amazon user interface.
   *
   * OpenAPI spec version: 2024-03-20
   * 
   *
   * 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.
   */
  
  
  package io.swagger.client.model.fbav2024;
  
  import java.util.Objects;
  import java.util.Arrays;
  import com.google.gson.TypeAdapter;
  import com.google.gson.annotations.JsonAdapter;
  import com.google.gson.annotations.SerializedName;
  import com.google.gson.stream.JsonReader;
  import com.google.gson.stream.JsonWriter;
  import io.swagger.annotations.ApiModel;
  import io.swagger.annotations.ApiModelProperty;
  import io.swagger.client.model.fbav2024.BoxInput;
  import java.io.IOException;
  import java.util.ArrayList;
  import java.util.List;
  
  /**
   * Packing information for the inbound plan.
   */
  @ApiModel(description = "Packing information for the inbound plan.")
  @javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2024-06-05T21:26:38.822Z")
  public class PackageGroupingInput {
    @SerializedName("boxes")
    private List<BoxInput> boxes = new ArrayList<BoxInput>();
  
    @SerializedName("packingGroupId")
    private String packingGroupId = null;
  
    @SerializedName("shipmentId")
    private String shipmentId = null;
  
    public PackageGroupingInput boxes(List<BoxInput> boxes) {
      this.boxes = boxes;
      return this;
    }
  
    public PackageGroupingInput addBoxesItem(BoxInput boxesItem) {
      this.boxes.add(boxesItem);
      return this;
    }
  
     /**
     * Box level information being provided.
     * @return boxes
    **/
    @ApiModelProperty(required = true, value = "Box level information being provided.")
    public List<BoxInput> getBoxes() {
      return boxes;
    }
  
    public void setBoxes(List<BoxInput> boxes) {
      this.boxes = boxes;
    }
  
    public PackageGroupingInput packingGroupId(String packingGroupId) {
      this.packingGroupId = packingGroupId;
      return this;
    }
  
     /**
     * The ID of the &#x60;packingGroup&#x60; that packages are grouped according to. The &#x60;PackingGroupId&#x60; can only be provided before placement confirmation, and it must belong to the confirmed &#x60;PackingOption&#x60;. One of &#x60;ShipmentId&#x60; or &#x60;PackingGroupId&#x60; must be provided with every request.
     * @return packingGroupId
    **/
    @ApiModelProperty(value = "The ID of the `packingGroup` that packages are grouped according to. The `PackingGroupId` can only be provided before placement confirmation, and it must belong to the confirmed `PackingOption`. One of `ShipmentId` or `PackingGroupId` must be provided with every request.")
    public String getPackingGroupId() {
      return packingGroupId;
    }
  
    public void setPackingGroupId(String packingGroupId) {
      this.packingGroupId = packingGroupId;
    }
  
    public PackageGroupingInput shipmentId(String shipmentId) {
      this.shipmentId = shipmentId;
      return this;
    }
  
     /**
     * The ID of the shipment that packages are grouped according to. The &#x60;ShipmentId&#x60; can only be provided after placement confirmation, and the shipment must belong to the confirmed placement option. One of &#x60;ShipmentId&#x60; or &#x60;PackingGroupId&#x60; must be provided with every request.
     * @return shipmentId
    **/
    @ApiModelProperty(value = "The ID of the shipment that packages are grouped according to. The `ShipmentId` can only be provided after placement confirmation, and the shipment must belong to the confirmed placement option. One of `ShipmentId` or `PackingGroupId` must be provided with every request.")
    public String getShipmentId() {
      return shipmentId;
    }
  
    public void setShipmentId(String shipmentId) {
      this.shipmentId = shipmentId;
    }
  
  
    @Override
    public boolean equals(java.lang.Object o) {
      if (this == o) {
        return true;
      }
      if (o == null || getClass() != o.getClass()) {
        return false;
      }
      PackageGroupingInput packageGroupingInput = (PackageGroupingInput) o;
      return Objects.equals(this.boxes, packageGroupingInput.boxes) &&
          Objects.equals(this.packingGroupId, packageGroupingInput.packingGroupId) &&
          Objects.equals(this.shipmentId, packageGroupingInput.shipmentId);
    }
  
    @Override
    public int hashCode() {
      return Objects.hash(boxes, packingGroupId, shipmentId);
    }
  
  
    @Override
    public String toString() {
      StringBuilder sb = new StringBuilder();
      sb.append("class PackageGroupingInput {\n");
      
      sb.append("    boxes: ").append(toIndentedString(boxes)).append("\n");
      sb.append("    packingGroupId: ").append(toIndentedString(packingGroupId)).append("\n");
      sb.append("    shipmentId: ").append(toIndentedString(shipmentId)).append("\n");
      sb.append("}");
      return sb.toString();
    }
  
    /**
     * Convert the given object to string with each line indented by 4 spaces
     * (except the first line).
     */
    private String toIndentedString(java.lang.Object o) {
      if (o == null) {
        return "null";
      }
      return o.toString().replace("\n", "\n    ");
    }
  
  }
  
  