package org.wfc.omada.api.sitesetting.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;

import java.util.Objects;

/**
 * LdapProfileOpenApiVo
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:32:19.054+08:00[Asia/Shanghai]")

public class LdapProfileOpenApiVo   {
  @JsonProperty("ldapProfileId")
  private String ldapProfileId;

  @JsonProperty("name")
  private String name;

  @JsonProperty("status")
  private Boolean status;

  @JsonProperty("bindType")
  private Integer bindType;

  @JsonProperty("server")
  private String server;

  @JsonProperty("dstPort")
  private Integer dstPort;

  @JsonProperty("useSsl")
  private Boolean useSsl;

  @JsonProperty("cn")
  private String cn;

  @JsonProperty("baseDn")
  private String baseDn;

  @JsonProperty("groupDn")
  private String groupDn;

  @JsonProperty("filter")
  private String filter;

  @JsonProperty("regularDn")
  private String regularDn;

  @JsonProperty("regularPassword")
  private String regularPassword;

  public LdapProfileOpenApiVo ldapProfileId(String ldapProfileId) {
    this.ldapProfileId = ldapProfileId;
    return this;
  }

  /**
   * LDAP profile ID
   * @return ldapProfileId
  */
  @ApiModelProperty(value = "LDAP profile ID")


  public String getLdapProfileId() {
    return ldapProfileId;
  }

  public void setLdapProfileId(String ldapProfileId) {
    this.ldapProfileId = ldapProfileId;
  }

  public LdapProfileOpenApiVo name(String name) {
    this.name = name;
    return this;
  }

  /**
   * LDAP profile name
   * @return name
  */
  @ApiModelProperty(value = "LDAP profile name")


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public LdapProfileOpenApiVo status(Boolean status) {
    this.status = status;
    return this;
  }

  /**
   * LDAP profile enable status
   * @return status
  */
  @ApiModelProperty(value = "LDAP profile enable status")


  public Boolean getStatus() {
    return status;
  }

  public void setStatus(Boolean status) {
    this.status = status;
  }

  public LdapProfileOpenApiVo bindType(Integer bindType) {
    this.bindType = bindType;
    return this;
  }

  /**
   * Type of LDAP bind, 0: Simple Mode；1: Anonymous Mode; 2: Regular Mode
   * @return bindType
  */
  @ApiModelProperty(value = "Type of LDAP bind, 0: Simple Mode；1: Anonymous Mode; 2: Regular Mode")


  public Integer getBindType() {
    return bindType;
  }

  public void setBindType(Integer bindType) {
    this.bindType = bindType;
  }

  public LdapProfileOpenApiVo server(String server) {
    this.server = server;
    return this;
  }

  /**
   * LDAP server address
   * @return server
  */
  @ApiModelProperty(value = "LDAP server address")


  public String getServer() {
    return server;
  }

  public void setServer(String server) {
    this.server = server;
  }

  public LdapProfileOpenApiVo dstPort(Integer dstPort) {
    this.dstPort = dstPort;
    return this;
  }

  /**
   * LDAP server listening port. When SSL is not enabled, it is generally 389, and when SSL is enabled, it is generally 636
   * @return dstPort
  */
  @ApiModelProperty(value = "LDAP server listening port. When SSL is not enabled, it is generally 389, and when SSL is enabled, it is generally 636")


  public Integer getDstPort() {
    return dstPort;
  }

  public void setDstPort(Integer dstPort) {
    this.dstPort = dstPort;
  }

  public LdapProfileOpenApiVo useSsl(Boolean useSsl) {
    this.useSsl = useSsl;
    return this;
  }

  /**
   * LDAP server enable ssl status
   * @return useSsl
  */
  @ApiModelProperty(value = "LDAP server enable ssl status")


  public Boolean getUseSsl() {
    return useSsl;
  }

  public void setUseSsl(Boolean useSsl) {
    this.useSsl = useSsl;
  }

  public LdapProfileOpenApiVo cn(String cn) {
    this.cn = cn;
    return this;
  }

  /**
   * LDAP server common name
   * @return cn
  */
  @ApiModelProperty(value = "LDAP server common name")


  public String getCn() {
    return cn;
  }

  public void setCn(String cn) {
    this.cn = cn;
  }

  public LdapProfileOpenApiVo baseDn(String baseDn) {
    this.baseDn = baseDn;
    return this;
  }

  /**
   * LDAP server base distinguish name
   * @return baseDn
  */
  @ApiModelProperty(value = "LDAP server base distinguish name")


  public String getBaseDn() {
    return baseDn;
  }

  public void setBaseDn(String baseDn) {
    this.baseDn = baseDn;
  }

  public LdapProfileOpenApiVo groupDn(String groupDn) {
    this.groupDn = groupDn;
    return this;
  }

  /**
   * LDAP server group distinguish name, optional when parameter [type] is 1 or 2
   * @return groupDn
  */
  @ApiModelProperty(value = "LDAP server group distinguish name, optional when parameter [type] is 1 or 2")


  public String getGroupDn() {
    return groupDn;
  }

  public void setGroupDn(String groupDn) {
    this.groupDn = groupDn;
  }

  public LdapProfileOpenApiVo filter(String filter) {
    this.filter = filter;
    return this;
  }

  /**
   * Additional filter, optional when parameter [type] is 1 or 2
   * @return filter
  */
  @ApiModelProperty(value = "Additional filter, optional when parameter [type] is 1 or 2")


  public String getFilter() {
    return filter;
  }

  public void setFilter(String filter) {
    this.filter = filter;
  }

  public LdapProfileOpenApiVo regularDn(String regularDn) {
    this.regularDn = regularDn;
    return this;
  }

  /**
   * Regular Dn, valid when parameter [type] is 2
   * @return regularDn
  */
  @ApiModelProperty(value = "Regular Dn, valid when parameter [type] is 2")


  public String getRegularDn() {
    return regularDn;
  }

  public void setRegularDn(String regularDn) {
    this.regularDn = regularDn;
  }

  public LdapProfileOpenApiVo regularPassword(String regularPassword) {
    this.regularPassword = regularPassword;
    return this;
  }

  /**
   * Regular Password, valid when parameter [type] is 2
   * @return regularPassword
  */
  @ApiModelProperty(value = "Regular Password, valid when parameter [type] is 2")


  public String getRegularPassword() {
    return regularPassword;
  }

  public void setRegularPassword(String regularPassword) {
    this.regularPassword = regularPassword;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    LdapProfileOpenApiVo ldapProfileOpenApiVo = (LdapProfileOpenApiVo) o;
    return Objects.equals(this.ldapProfileId, ldapProfileOpenApiVo.ldapProfileId) &&
        Objects.equals(this.name, ldapProfileOpenApiVo.name) &&
        Objects.equals(this.status, ldapProfileOpenApiVo.status) &&
        Objects.equals(this.bindType, ldapProfileOpenApiVo.bindType) &&
        Objects.equals(this.server, ldapProfileOpenApiVo.server) &&
        Objects.equals(this.dstPort, ldapProfileOpenApiVo.dstPort) &&
        Objects.equals(this.useSsl, ldapProfileOpenApiVo.useSsl) &&
        Objects.equals(this.cn, ldapProfileOpenApiVo.cn) &&
        Objects.equals(this.baseDn, ldapProfileOpenApiVo.baseDn) &&
        Objects.equals(this.groupDn, ldapProfileOpenApiVo.groupDn) &&
        Objects.equals(this.filter, ldapProfileOpenApiVo.filter) &&
        Objects.equals(this.regularDn, ldapProfileOpenApiVo.regularDn) &&
        Objects.equals(this.regularPassword, ldapProfileOpenApiVo.regularPassword);
  }

  @Override
  public int hashCode() {
    return Objects.hash(ldapProfileId, name, status, bindType, server, dstPort, useSsl, cn, baseDn, groupDn, filter, regularDn, regularPassword);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class LdapProfileOpenApiVo {\n");
    
    sb.append("    ldapProfileId: ").append(toIndentedString(ldapProfileId)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    bindType: ").append(toIndentedString(bindType)).append("\n");
    sb.append("    server: ").append(toIndentedString(server)).append("\n");
    sb.append("    dstPort: ").append(toIndentedString(dstPort)).append("\n");
    sb.append("    useSsl: ").append(toIndentedString(useSsl)).append("\n");
    sb.append("    cn: ").append(toIndentedString(cn)).append("\n");
    sb.append("    baseDn: ").append(toIndentedString(baseDn)).append("\n");
    sb.append("    groupDn: ").append(toIndentedString(groupDn)).append("\n");
    sb.append("    filter: ").append(toIndentedString(filter)).append("\n");
    sb.append("    regularDn: ").append(toIndentedString(regularDn)).append("\n");
    sb.append("    regularPassword: ").append(toIndentedString(regularPassword)).append("\n");
    sb.append("}");
    return sb.toString();
  }

  /**
   * Convert the given object to string with each line indented by 4 spaces
   * (except the first line).
   */
  private String toIndentedString(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }
}

