001package com.box.sdkgen.schemas.v2025r0.hubcopyrequestv2025r0;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import com.fasterxml.jackson.annotation.JsonProperty;
007import java.util.Objects;
008
009/** Request schema for copying a Box Hub. */
010@JsonFilter("nullablePropertyFilter")
011public class HubCopyRequestV2025R0 extends SerializableObject {
012
013  /** Title of the Box Hub. It cannot be empty and should be less than 50 characters. */
014  protected String title;
015
016  /** Description of the Box Hub. */
017  protected String description;
018
019  /**
020   * If true, the items which the user has Editor or Owner access to in the original Box Hub will be
021   * copied to the new Box Hub. Defaults to false.
022   */
023  @JsonProperty("include_items")
024  protected Boolean includeItems;
025
026  public HubCopyRequestV2025R0() {
027    super();
028  }
029
030  protected HubCopyRequestV2025R0(Builder builder) {
031    super();
032    this.title = builder.title;
033    this.description = builder.description;
034    this.includeItems = builder.includeItems;
035    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
036  }
037
038  public String getTitle() {
039    return title;
040  }
041
042  public String getDescription() {
043    return description;
044  }
045
046  public Boolean getIncludeItems() {
047    return includeItems;
048  }
049
050  @Override
051  public boolean equals(Object o) {
052    if (this == o) {
053      return true;
054    }
055    if (o == null || getClass() != o.getClass()) {
056      return false;
057    }
058    HubCopyRequestV2025R0 casted = (HubCopyRequestV2025R0) o;
059    return Objects.equals(title, casted.title)
060        && Objects.equals(description, casted.description)
061        && Objects.equals(includeItems, casted.includeItems);
062  }
063
064  @Override
065  public int hashCode() {
066    return Objects.hash(title, description, includeItems);
067  }
068
069  @Override
070  public String toString() {
071    return "HubCopyRequestV2025R0{"
072        + "title='"
073        + title
074        + '\''
075        + ", "
076        + "description='"
077        + description
078        + '\''
079        + ", "
080        + "includeItems='"
081        + includeItems
082        + '\''
083        + "}";
084  }
085
086  public static class Builder extends NullableFieldTracker {
087
088    protected String title;
089
090    protected String description;
091
092    protected Boolean includeItems;
093
094    public Builder title(String title) {
095      this.title = title;
096      return this;
097    }
098
099    public Builder description(String description) {
100      this.description = description;
101      return this;
102    }
103
104    public Builder includeItems(Boolean includeItems) {
105      this.includeItems = includeItems;
106      return this;
107    }
108
109    public HubCopyRequestV2025R0 build() {
110      return new HubCopyRequestV2025R0(this);
111    }
112  }
113}