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.fasterxml.jackson.annotation.JsonFilter;
007import com.fasterxml.jackson.annotation.JsonProperty;
008import java.util.Objects;
009
010@JsonFilter("nullablePropertyFilter")
011public class CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField
012    extends SerializableObject {
013
014  /**
015   * Whether or not the enterprise that owns the content requires a strong password to collaborate
016   * on the content, or enforces an exposed password detection for the external collaborators.
017   */
018  @JsonProperty("enterprise_has_strong_password_required_for_external_users")
019  protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers;
020
021  /**
022   * Whether or not the user has a strong and not exposed password set for their account. The field
023   * is `null` when a strong password is not required.
024   */
025  @JsonProperty("user_has_strong_password")
026  @Nullable
027  protected Boolean userHasStrongPassword;
028
029  public CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField() {
030    super();
031  }
032
033  protected CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField(
034      Builder builder) {
035    super();
036    this.enterpriseHasStrongPasswordRequiredForExternalUsers =
037        builder.enterpriseHasStrongPasswordRequiredForExternalUsers;
038    this.userHasStrongPassword = builder.userHasStrongPassword;
039    markNullableFieldsAsSet(builder.getExplicitlySetNullableFields());
040  }
041
042  public Boolean getEnterpriseHasStrongPasswordRequiredForExternalUsers() {
043    return enterpriseHasStrongPasswordRequiredForExternalUsers;
044  }
045
046  public Boolean getUserHasStrongPassword() {
047    return userHasStrongPassword;
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    CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField casted =
059        (CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField) o;
060    return Objects.equals(
061            enterpriseHasStrongPasswordRequiredForExternalUsers,
062            casted.enterpriseHasStrongPasswordRequiredForExternalUsers)
063        && Objects.equals(userHasStrongPassword, casted.userHasStrongPassword);
064  }
065
066  @Override
067  public int hashCode() {
068    return Objects.hash(enterpriseHasStrongPasswordRequiredForExternalUsers, userHasStrongPassword);
069  }
070
071  @Override
072  public String toString() {
073    return "CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField{"
074        + "enterpriseHasStrongPasswordRequiredForExternalUsers='"
075        + enterpriseHasStrongPasswordRequiredForExternalUsers
076        + '\''
077        + ", "
078        + "userHasStrongPassword='"
079        + userHasStrongPassword
080        + '\''
081        + "}";
082  }
083
084  public static class Builder extends NullableFieldTracker {
085
086    protected Boolean enterpriseHasStrongPasswordRequiredForExternalUsers;
087
088    protected Boolean userHasStrongPassword;
089
090    public Builder enterpriseHasStrongPasswordRequiredForExternalUsers(
091        Boolean enterpriseHasStrongPasswordRequiredForExternalUsers) {
092      this.enterpriseHasStrongPasswordRequiredForExternalUsers =
093          enterpriseHasStrongPasswordRequiredForExternalUsers;
094      return this;
095    }
096
097    public Builder userHasStrongPassword(Boolean userHasStrongPassword) {
098      this.userHasStrongPassword = userHasStrongPassword;
099      this.markNullableFieldAsSet("user_has_strong_password");
100      return this;
101    }
102
103    public CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField build() {
104      return new CollaborationAcceptanceRequirementsStatusStrongPasswordRequirementField(this);
105    }
106  }
107}