001package com.box.sdkgen.schemas.v2025r0.hubcollaborationv2025r0;
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 HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
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 HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField() {
030    super();
031  }
032
033  protected HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField(
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    HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField casted =
059        (HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField) 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 "HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField{"
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 HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField
104        build() {
105      return new HubCollaborationV2025R0AcceptanceRequirementsStatusStrongPasswordRequirementField(
106          this);
107    }
108  }
109}