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