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

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

import java.util.Objects;

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

public class SsidOpenApiVo   {
  @JsonProperty("ssidId")
  private String ssidId;

  @JsonProperty("name")
  private String name;

  @JsonProperty("band")
  private Integer band;

  @JsonProperty("guestNetEnable")
  private Boolean guestNetEnable;

  @JsonProperty("security")
  private Integer security;

  @JsonProperty("broadcast")
  private Boolean broadcast;

  @JsonProperty("vlanEnable")
  private Boolean vlanEnable;

  @JsonProperty("vlanId")
  private Integer vlanId;

  public SsidOpenApiVo ssidId(String ssidId) {
    this.ssidId = ssidId;
    return this;
  }

  /**
   * SSID ID
   * @return ssidId
  */
  @ApiModelProperty(value = "SSID ID")


  public String getSsidId() {
    return ssidId;
  }

  public void setSsidId(String ssidId) {
    this.ssidId = ssidId;
  }

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

  /**
   * SSID name. It should contain 1 to 32 UTF-8 characters.
   * @return name
  */
  @ApiModelProperty(value = "SSID name. It should contain 1 to 32 UTF-8 characters.")


  public String getName() {
    return name;
  }

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

  public SsidOpenApiVo band(Integer band) {
    this.band = band;
    return this;
  }

  /**
   * SSID band. The lowest bit indicates whether 2.4G is included; the second lowest bit indicates whether 5G is included; the third lowest bit indicates whether 6G is included; 1 means included while 0 means not included. For example, 7(111) means that 2G/5G/6G are enabled; 1(001) means that 2G is enabled. (When 5G is included，it means 5G/5G1/5G2 are enabled.)
   * @return band
  */
  @ApiModelProperty(value = "SSID band. The lowest bit indicates whether 2.4G is included; the second lowest bit indicates whether 5G is included; the third lowest bit indicates whether 6G is included; 1 means included while 0 means not included. For example, 7(111) means that 2G/5G/6G are enabled; 1(001) means that 2G is enabled. (When 5G is included，it means 5G/5G1/5G2 are enabled.)")


  public Integer getBand() {
    return band;
  }

  public void setBand(Integer band) {
    this.band = band;
  }

  public SsidOpenApiVo guestNetEnable(Boolean guestNetEnable) {
    this.guestNetEnable = guestNetEnable;
    return this;
  }

  /**
   * SSID guest network config status. True: enable, false: disable.
   * @return guestNetEnable
  */
  @ApiModelProperty(value = "SSID guest network config status. True: enable, false: disable.")


  public Boolean getGuestNetEnable() {
    return guestNetEnable;
  }

  public void setGuestNetEnable(Boolean guestNetEnable) {
    this.guestNetEnable = guestNetEnable;
  }

  public SsidOpenApiVo security(Integer security) {
    this.security = security;
    return this;
  }

  /**
   * SSID security mode; Security should be a value as follows: 0: None; 2: WPA-Enterprise; 3: WPA-Personal; 4: PPSK without RADIUS; 5: PPSK with RADIUS.
   * @return security
  */
  @ApiModelProperty(value = "SSID security mode; Security should be a value as follows: 0: None; 2: WPA-Enterprise; 3: WPA-Personal; 4: PPSK without RADIUS; 5: PPSK with RADIUS.")


  public Integer getSecurity() {
    return security;
  }

  public void setSecurity(Integer security) {
    this.security = security;
  }

  public SsidOpenApiVo broadcast(Boolean broadcast) {
    this.broadcast = broadcast;
    return this;
  }

  /**
   * SSID broadcast config status. True: enable, false: disable.
   * @return broadcast
  */
  @ApiModelProperty(value = "SSID broadcast config status. True: enable, false: disable.")


  public Boolean getBroadcast() {
    return broadcast;
  }

  public void setBroadcast(Boolean broadcast) {
    this.broadcast = broadcast;
  }

  public SsidOpenApiVo vlanEnable(Boolean vlanEnable) {
    this.vlanEnable = vlanEnable;
    return this;
  }

  /**
   * SSID VLAN config status. True: enable, false: disable.
   * @return vlanEnable
  */
  @ApiModelProperty(value = "SSID VLAN config status. True: enable, false: disable.")


  public Boolean getVlanEnable() {
    return vlanEnable;
  }

  public void setVlanEnable(Boolean vlanEnable) {
    this.vlanEnable = vlanEnable;
  }

  public SsidOpenApiVo vlanId(Integer vlanId) {
    this.vlanId = vlanId;
    return this;
  }

  /**
   * SSID VLAN ID. This field is required when Parameter [vlanEnable] is true; It should be within the range of 1–4094.
   * @return vlanId
  */
  @ApiModelProperty(value = "SSID VLAN ID. This field is required when Parameter [vlanEnable] is true; It should be within the range of 1–4094.")


  public Integer getVlanId() {
    return vlanId;
  }

  public void setVlanId(Integer vlanId) {
    this.vlanId = vlanId;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SsidOpenApiVo ssidOpenApiVo = (SsidOpenApiVo) o;
    return Objects.equals(this.ssidId, ssidOpenApiVo.ssidId) &&
        Objects.equals(this.name, ssidOpenApiVo.name) &&
        Objects.equals(this.band, ssidOpenApiVo.band) &&
        Objects.equals(this.guestNetEnable, ssidOpenApiVo.guestNetEnable) &&
        Objects.equals(this.security, ssidOpenApiVo.security) &&
        Objects.equals(this.broadcast, ssidOpenApiVo.broadcast) &&
        Objects.equals(this.vlanEnable, ssidOpenApiVo.vlanEnable) &&
        Objects.equals(this.vlanId, ssidOpenApiVo.vlanId);
  }

  @Override
  public int hashCode() {
    return Objects.hash(ssidId, name, band, guestNetEnable, security, broadcast, vlanEnable, vlanId);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SsidOpenApiVo {\n");
    
    sb.append("    ssidId: ").append(toIndentedString(ssidId)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    band: ").append(toIndentedString(band)).append("\n");
    sb.append("    guestNetEnable: ").append(toIndentedString(guestNetEnable)).append("\n");
    sb.append("    security: ").append(toIndentedString(security)).append("\n");
    sb.append("    broadcast: ").append(toIndentedString(broadcast)).append("\n");
    sb.append("    vlanEnable: ").append(toIndentedString(vlanEnable)).append("\n");
    sb.append("    vlanId: ").append(toIndentedString(vlanId)).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    ");
  }
}

