001package com.box.sdkgen.schemas.v2025r0.hubcollaborationupdaterequestv2025r0;
002
003import com.box.sdkgen.internal.NullableFieldTracker;
004import com.box.sdkgen.internal.SerializableObject;
005import com.fasterxml.jackson.annotation.JsonFilter;
006import java.util.Objects;
007
008/** Request body for updating an existing Box Hub collaboration. */
009@JsonFilter("nullablePropertyFilter")
010public class HubCollaborationUpdateRequestV2025R0 extends SerializableObject {
011
012  /**
013   * The level of access granted to a Box Hub. Possible values are `editor`, `viewer`, and
014   * `co-owner`.
015   */
016  protected String role;
017
018  public HubCollaborationUpdateRequestV2025R0() {
019    super();
020  }
021
022  protected HubCollaborationUpdateRequestV2025R0(Builder builder) {
023    super();
024    this.role = builder.role;
025    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
026  }
027
028  public String getRole() {
029    return role;
030  }
031
032  @Override
033  public boolean equals(Object o) {
034    if (this == o) {
035      return true;
036    }
037    if (o == null || getClass() != o.getClass()) {
038      return false;
039    }
040    HubCollaborationUpdateRequestV2025R0 casted = (HubCollaborationUpdateRequestV2025R0) o;
041    return Objects.equals(role, casted.role);
042  }
043
044  @Override
045  public int hashCode() {
046    return Objects.hash(role);
047  }
048
049  @Override
050  public String toString() {
051    return "HubCollaborationUpdateRequestV2025R0{" + "role='" + role + '\'' + "}";
052  }
053
054  public static class Builder extends NullableFieldTracker {
055
056    protected String role;
057
058    public Builder role(String role) {
059      this.role = role;
060      return this;
061    }
062
063    public HubCollaborationUpdateRequestV2025R0 build() {
064      return new HubCollaborationUpdateRequestV2025R0(this);
065    }
066  }
067}