001package com.box.sdkgen.schemas.collaboration;
002
003import com.box.sdkgen.internal.Nullable;
004import com.box.sdkgen.internal.NullableFieldTracker;
005import com.box.sdkgen.internal.SerializableObject;
006import com.box.sdkgen.schemas.termsofservicebase.TermsOfServiceBase;
007import com.fasterxml.jackson.annotation.JsonFilter;
008import com.fasterxml.jackson.annotation.JsonProperty;
009import java.util.Objects;
010
011@JsonFilter("nullablePropertyFilter")
012public class CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField
013    extends SerializableObject {
014
015  /**
016   * Whether or not the terms of service have been accepted. The field is `null` when there is no
017   * terms of service required.
018   */
019  @JsonProperty("is_accepted")
020  @Nullable
021  protected Boolean isAccepted;
022
023  @JsonProperty("terms_of_service")
024  protected TermsOfServiceBase termsOfService;
025
026  public CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField() {
027    super();
028  }
029
030  protected CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField(
031      Builder builder) {
032    super();
033    this.isAccepted = builder.isAccepted;
034    this.termsOfService = builder.termsOfService;
035    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
036  }
037
038  public Boolean getIsAccepted() {
039    return isAccepted;
040  }
041
042  public TermsOfServiceBase getTermsOfService() {
043    return termsOfService;
044  }
045
046  @Override
047  public boolean equals(Object o) {
048    if (this == o) {
049      return true;
050    }
051    if (o == null || getClass() != o.getClass()) {
052      return false;
053    }
054    CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField casted =
055        (CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField) o;
056    return Objects.equals(isAccepted, casted.isAccepted)
057        && Objects.equals(termsOfService, casted.termsOfService);
058  }
059
060  @Override
061  public int hashCode() {
062    return Objects.hash(isAccepted, termsOfService);
063  }
064
065  @Override
066  public String toString() {
067    return "CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField{"
068        + "isAccepted='"
069        + isAccepted
070        + '\''
071        + ", "
072        + "termsOfService='"
073        + termsOfService
074        + '\''
075        + "}";
076  }
077
078  public static class Builder extends NullableFieldTracker {
079
080    protected Boolean isAccepted;
081
082    protected TermsOfServiceBase termsOfService;
083
084    public Builder isAccepted(Boolean isAccepted) {
085      this.isAccepted = isAccepted;
086      this.markNullableFieldAsSet("is_accepted");
087      return this;
088    }
089
090    public Builder termsOfService(TermsOfServiceBase termsOfService) {
091      this.termsOfService = termsOfService;
092      return this;
093    }
094
095    public CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField build() {
096      return new CollaborationAcceptanceRequirementsStatusTermsOfServiceRequirementField(this);
097    }
098  }
099}