001package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0;
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@JsonFilter("nullablePropertyFilter")
010public class HubCollaborationV2025R0AcceptanceRequirementsStatusField extends SerializableObject {
011
012  @JsonProperty("terms_of_service_requirement")
013  protected HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField
014      termsOfServiceRequirement;
015
016  @JsonProperty("strong_password_requirement")
017  protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
018      strongPasswordRequirement;
019
020  @JsonProperty("two_factor_authentication_requirement")
021  protected
022  HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField
023      twoFactorAuthenticationRequirement;
024
025  public HubCollaborationV2025R0AcceptanceRequirementsStatusField() {
026    super();
027  }
028
029  protected HubCollaborationV2025R0AcceptanceRequirementsStatusField(Builder builder) {
030    super();
031    this.termsOfServiceRequirement = builder.termsOfServiceRequirement;
032    this.strongPasswordRequirement = builder.strongPasswordRequirement;
033    this.twoFactorAuthenticationRequirement = builder.twoFactorAuthenticationRequirement;
034    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
035  }
036
037  public HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField
038      getTermsOfServiceRequirement() {
039    return termsOfServiceRequirement;
040  }
041
042  public HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
043      getStrongPasswordRequirement() {
044    return strongPasswordRequirement;
045  }
046
047  public HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField
048      getTwoFactorAuthenticationRequirement() {
049    return twoFactorAuthenticationRequirement;
050  }
051
052  @Override
053  public boolean equals(Object o) {
054    if (this == o) {
055      return true;
056    }
057    if (o == null || getClass() != o.getClass()) {
058      return false;
059    }
060    HubCollaborationV2025R0AcceptanceRequirementsStatusField casted =
061        (HubCollaborationV2025R0AcceptanceRequirementsStatusField) o;
062    return Objects.equals(termsOfServiceRequirement, casted.termsOfServiceRequirement)
063        && Objects.equals(strongPasswordRequirement, casted.strongPasswordRequirement)
064        && Objects.equals(
065            twoFactorAuthenticationRequirement, casted.twoFactorAuthenticationRequirement);
066  }
067
068  @Override
069  public int hashCode() {
070    return Objects.hash(
071        termsOfServiceRequirement, strongPasswordRequirement, twoFactorAuthenticationRequirement);
072  }
073
074  @Override
075  public String toString() {
076    return "HubCollaborationV2025R0AcceptanceRequirementsStatusField{"
077        + "termsOfServiceRequirement='"
078        + termsOfServiceRequirement
079        + '\''
080        + ", "
081        + "strongPasswordRequirement='"
082        + strongPasswordRequirement
083        + '\''
084        + ", "
085        + "twoFactorAuthenticationRequirement='"
086        + twoFactorAuthenticationRequirement
087        + '\''
088        + "}";
089  }
090
091  public static class Builder extends NullableFieldTracker {
092
093    protected HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField
094        termsOfServiceRequirement;
095
096    protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
097        strongPasswordRequirement;
098
099    protected
100    HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField
101        twoFactorAuthenticationRequirement;
102
103    public Builder termsOfServiceRequirement(
104        HubCollaborationV2025R0AcceptanceRequirementsStatusTermsOfServiceRequirementField
105            termsOfServiceRequirement) {
106      this.termsOfServiceRequirement = termsOfServiceRequirement;
107      return this;
108    }
109
110    public Builder strongPasswordRequirement(
111        HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
112            strongPasswordRequirement) {
113      this.strongPasswordRequirement = strongPasswordRequirement;
114      return this;
115    }
116
117    public Builder twoFactorAuthenticationRequirement(
118        HubCollaborationV2025R0AcceptanceRequirementsStatusTwoFactorAuthenticationRequirementField
119            twoFactorAuthenticationRequirement) {
120      this.twoFactorAuthenticationRequirement = twoFactorAuthenticationRequirement;
121      return this;
122    }
123
124    public HubCollaborationV2025R0AcceptanceRequirementsStatusField build() {
125      return new HubCollaborationV2025R0AcceptanceRequirementsStatusField(this);
126    }
127  }
128}