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

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

import java.util.Objects;

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

public class McastRateLimitSettingVo   {
  @JsonProperty("enable")
  private Boolean enable;

  @JsonProperty("arpEnable")
  private Boolean arpEnable;

  @JsonProperty("arpPps")
  private Integer arpPps;

  @JsonProperty("ndEnable")
  private Boolean ndEnable;

  @JsonProperty("ndPps")
  private Integer ndPps;

  @JsonProperty("igmpEnable")
  private Boolean igmpEnable;

  @JsonProperty("igmpPps")
  private Integer igmpPps;

  @JsonProperty("dhcpEnable")
  private Boolean dhcpEnable;

  @JsonProperty("dhcpPps")
  private Integer dhcpPps;

  @JsonProperty("dhcpv6Enable")
  private Boolean dhcpv6Enable;

  @JsonProperty("dhcpv6Pps")
  private Integer dhcpv6Pps;

  @JsonProperty("mdnsEnable")
  private Boolean mdnsEnable;

  @JsonProperty("mdnsPps")
  private Integer mdnsPps;

  @JsonProperty("otherBcastEnable")
  private Boolean otherBcastEnable;

  @JsonProperty("otherBcastPps")
  private Integer otherBcastPps;

  @JsonProperty("otherMcastEnable")
  private Boolean otherMcastEnable;

  @JsonProperty("otherMcastPps")
  private Integer otherMcastPps;

  public McastRateLimitSettingVo enable(Boolean enable) {
    this.enable = enable;
    return this;
  }

  /**
   * Parameter [enable] indicates whether to enable the multicast rate limiting function. True: on, false: off
   * @return enable
  */
  @ApiModelProperty(value = "Parameter [enable] indicates whether to enable the multicast rate limiting function. True: on, false: off")


  public Boolean getEnable() {
    return enable;
  }

  public void setEnable(Boolean enable) {
    this.enable = enable;
  }

  public McastRateLimitSettingVo arpEnable(Boolean arpEnable) {
    this.arpEnable = arpEnable;
    return this;
  }

  /**
   * Whether to enable ARP.
   * @return arpEnable
  */
  @ApiModelProperty(value = "Whether to enable ARP.")


  public Boolean getArpEnable() {
    return arpEnable;
  }

  public void setArpEnable(Boolean arpEnable) {
    this.arpEnable = arpEnable;
  }

  public McastRateLimitSettingVo arpPps(Integer arpPps) {
    this.arpPps = arpPps;
    return this;
  }

  /**
   * Parameter [arpPps] indicates the number of ARP packets allowed to pass per second.
   * @return arpPps
  */
  @ApiModelProperty(value = "Parameter [arpPps] indicates the number of ARP packets allowed to pass per second.")


  public Integer getArpPps() {
    return arpPps;
  }

  public void setArpPps(Integer arpPps) {
    this.arpPps = arpPps;
  }

  public McastRateLimitSettingVo ndEnable(Boolean ndEnable) {
    this.ndEnable = ndEnable;
    return this;
  }

  /**
   * Whether to enable ND.
   * @return ndEnable
  */
  @ApiModelProperty(value = "Whether to enable ND.")


  public Boolean getNdEnable() {
    return ndEnable;
  }

  public void setNdEnable(Boolean ndEnable) {
    this.ndEnable = ndEnable;
  }

  public McastRateLimitSettingVo ndPps(Integer ndPps) {
    this.ndPps = ndPps;
    return this;
  }

  /**
   * Parameter [ndPps] indicates the number of ND packets allowed to pass per second.
   * @return ndPps
  */
  @ApiModelProperty(value = "Parameter [ndPps] indicates the number of ND packets allowed to pass per second.")


  public Integer getNdPps() {
    return ndPps;
  }

  public void setNdPps(Integer ndPps) {
    this.ndPps = ndPps;
  }

  public McastRateLimitSettingVo igmpEnable(Boolean igmpEnable) {
    this.igmpEnable = igmpEnable;
    return this;
  }

  /**
   * Whether to enable IGMP.
   * @return igmpEnable
  */
  @ApiModelProperty(value = "Whether to enable IGMP.")


  public Boolean getIgmpEnable() {
    return igmpEnable;
  }

  public void setIgmpEnable(Boolean igmpEnable) {
    this.igmpEnable = igmpEnable;
  }

  public McastRateLimitSettingVo igmpPps(Integer igmpPps) {
    this.igmpPps = igmpPps;
    return this;
  }

  /**
   * Parameter [igmpPps] indicates the number of IGMP packets allowed to pass per second.
   * @return igmpPps
  */
  @ApiModelProperty(value = "Parameter [igmpPps] indicates the number of IGMP packets allowed to pass per second.")


  public Integer getIgmpPps() {
    return igmpPps;
  }

  public void setIgmpPps(Integer igmpPps) {
    this.igmpPps = igmpPps;
  }

  public McastRateLimitSettingVo dhcpEnable(Boolean dhcpEnable) {
    this.dhcpEnable = dhcpEnable;
    return this;
  }

  /**
   * Whether to enable DHCP.
   * @return dhcpEnable
  */
  @ApiModelProperty(value = "Whether to enable DHCP.")


  public Boolean getDhcpEnable() {
    return dhcpEnable;
  }

  public void setDhcpEnable(Boolean dhcpEnable) {
    this.dhcpEnable = dhcpEnable;
  }

  public McastRateLimitSettingVo dhcpPps(Integer dhcpPps) {
    this.dhcpPps = dhcpPps;
    return this;
  }

  /**
   * Parameter [dhcpPps] indicates the number of DHCP packets allowed to pass per second.
   * @return dhcpPps
  */
  @ApiModelProperty(value = "Parameter [dhcpPps] indicates the number of DHCP packets allowed to pass per second.")


  public Integer getDhcpPps() {
    return dhcpPps;
  }

  public void setDhcpPps(Integer dhcpPps) {
    this.dhcpPps = dhcpPps;
  }

  public McastRateLimitSettingVo dhcpv6Enable(Boolean dhcpv6Enable) {
    this.dhcpv6Enable = dhcpv6Enable;
    return this;
  }

  /**
   * Whether to enable DHCP v6.
   * @return dhcpv6Enable
  */
  @ApiModelProperty(value = "Whether to enable DHCP v6.")


  public Boolean getDhcpv6Enable() {
    return dhcpv6Enable;
  }

  public void setDhcpv6Enable(Boolean dhcpv6Enable) {
    this.dhcpv6Enable = dhcpv6Enable;
  }

  public McastRateLimitSettingVo dhcpv6Pps(Integer dhcpv6Pps) {
    this.dhcpv6Pps = dhcpv6Pps;
    return this;
  }

  /**
   * Parameter [dhcpv6Pps] indicates the number of DHCP v6 packets allowed to pass per second.
   * @return dhcpv6Pps
  */
  @ApiModelProperty(value = "Parameter [dhcpv6Pps] indicates the number of DHCP v6 packets allowed to pass per second.")


  public Integer getDhcpv6Pps() {
    return dhcpv6Pps;
  }

  public void setDhcpv6Pps(Integer dhcpv6Pps) {
    this.dhcpv6Pps = dhcpv6Pps;
  }

  public McastRateLimitSettingVo mdnsEnable(Boolean mdnsEnable) {
    this.mdnsEnable = mdnsEnable;
    return this;
  }

  /**
   * Whether to enable MDNS.
   * @return mdnsEnable
  */
  @ApiModelProperty(value = "Whether to enable MDNS.")


  public Boolean getMdnsEnable() {
    return mdnsEnable;
  }

  public void setMdnsEnable(Boolean mdnsEnable) {
    this.mdnsEnable = mdnsEnable;
  }

  public McastRateLimitSettingVo mdnsPps(Integer mdnsPps) {
    this.mdnsPps = mdnsPps;
    return this;
  }

  /**
   * Parameter [mdnsPps] indicates the number of MDNS packets allowed to pass per second.
   * @return mdnsPps
  */
  @ApiModelProperty(value = "Parameter [mdnsPps] indicates the number of MDNS packets allowed to pass per second.")


  public Integer getMdnsPps() {
    return mdnsPps;
  }

  public void setMdnsPps(Integer mdnsPps) {
    this.mdnsPps = mdnsPps;
  }

  public McastRateLimitSettingVo otherBcastEnable(Boolean otherBcastEnable) {
    this.otherBcastEnable = otherBcastEnable;
    return this;
  }

  /**
   * Whether to enable OTHER BROADCAST.
   * @return otherBcastEnable
  */
  @ApiModelProperty(value = "Whether to enable OTHER BROADCAST.")


  public Boolean getOtherBcastEnable() {
    return otherBcastEnable;
  }

  public void setOtherBcastEnable(Boolean otherBcastEnable) {
    this.otherBcastEnable = otherBcastEnable;
  }

  public McastRateLimitSettingVo otherBcastPps(Integer otherBcastPps) {
    this.otherBcastPps = otherBcastPps;
    return this;
  }

  /**
   * Parameter [otherBcastPps] indicates the number of OTHER BROADCAST packets allowed to pass per second.
   * @return otherBcastPps
  */
  @ApiModelProperty(value = "Parameter [otherBcastPps] indicates the number of OTHER BROADCAST packets allowed to pass per second.")


  public Integer getOtherBcastPps() {
    return otherBcastPps;
  }

  public void setOtherBcastPps(Integer otherBcastPps) {
    this.otherBcastPps = otherBcastPps;
  }

  public McastRateLimitSettingVo otherMcastEnable(Boolean otherMcastEnable) {
    this.otherMcastEnable = otherMcastEnable;
    return this;
  }

  /**
   * Whether to enable OTHER MULTICAST.
   * @return otherMcastEnable
  */
  @ApiModelProperty(value = "Whether to enable OTHER MULTICAST.")


  public Boolean getOtherMcastEnable() {
    return otherMcastEnable;
  }

  public void setOtherMcastEnable(Boolean otherMcastEnable) {
    this.otherMcastEnable = otherMcastEnable;
  }

  public McastRateLimitSettingVo otherMcastPps(Integer otherMcastPps) {
    this.otherMcastPps = otherMcastPps;
    return this;
  }

  /**
   * Parameter [otherMcastPps] indicates the number of OTHER MULTICAST packets allowed to pass per second.
   * @return otherMcastPps
  */
  @ApiModelProperty(value = "Parameter [otherMcastPps] indicates the number of OTHER MULTICAST packets allowed to pass per second.")


  public Integer getOtherMcastPps() {
    return otherMcastPps;
  }

  public void setOtherMcastPps(Integer otherMcastPps) {
    this.otherMcastPps = otherMcastPps;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    McastRateLimitSettingVo mcastRateLimitSettingVo = (McastRateLimitSettingVo) o;
    return Objects.equals(this.enable, mcastRateLimitSettingVo.enable) &&
        Objects.equals(this.arpEnable, mcastRateLimitSettingVo.arpEnable) &&
        Objects.equals(this.arpPps, mcastRateLimitSettingVo.arpPps) &&
        Objects.equals(this.ndEnable, mcastRateLimitSettingVo.ndEnable) &&
        Objects.equals(this.ndPps, mcastRateLimitSettingVo.ndPps) &&
        Objects.equals(this.igmpEnable, mcastRateLimitSettingVo.igmpEnable) &&
        Objects.equals(this.igmpPps, mcastRateLimitSettingVo.igmpPps) &&
        Objects.equals(this.dhcpEnable, mcastRateLimitSettingVo.dhcpEnable) &&
        Objects.equals(this.dhcpPps, mcastRateLimitSettingVo.dhcpPps) &&
        Objects.equals(this.dhcpv6Enable, mcastRateLimitSettingVo.dhcpv6Enable) &&
        Objects.equals(this.dhcpv6Pps, mcastRateLimitSettingVo.dhcpv6Pps) &&
        Objects.equals(this.mdnsEnable, mcastRateLimitSettingVo.mdnsEnable) &&
        Objects.equals(this.mdnsPps, mcastRateLimitSettingVo.mdnsPps) &&
        Objects.equals(this.otherBcastEnable, mcastRateLimitSettingVo.otherBcastEnable) &&
        Objects.equals(this.otherBcastPps, mcastRateLimitSettingVo.otherBcastPps) &&
        Objects.equals(this.otherMcastEnable, mcastRateLimitSettingVo.otherMcastEnable) &&
        Objects.equals(this.otherMcastPps, mcastRateLimitSettingVo.otherMcastPps);
  }

  @Override
  public int hashCode() {
    return Objects.hash(enable, arpEnable, arpPps, ndEnable, ndPps, igmpEnable, igmpPps, dhcpEnable, dhcpPps, dhcpv6Enable, dhcpv6Pps, mdnsEnable, mdnsPps, otherBcastEnable, otherBcastPps, otherMcastEnable, otherMcastPps);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class McastRateLimitSettingVo {\n");
    
    sb.append("    enable: ").append(toIndentedString(enable)).append("\n");
    sb.append("    arpEnable: ").append(toIndentedString(arpEnable)).append("\n");
    sb.append("    arpPps: ").append(toIndentedString(arpPps)).append("\n");
    sb.append("    ndEnable: ").append(toIndentedString(ndEnable)).append("\n");
    sb.append("    ndPps: ").append(toIndentedString(ndPps)).append("\n");
    sb.append("    igmpEnable: ").append(toIndentedString(igmpEnable)).append("\n");
    sb.append("    igmpPps: ").append(toIndentedString(igmpPps)).append("\n");
    sb.append("    dhcpEnable: ").append(toIndentedString(dhcpEnable)).append("\n");
    sb.append("    dhcpPps: ").append(toIndentedString(dhcpPps)).append("\n");
    sb.append("    dhcpv6Enable: ").append(toIndentedString(dhcpv6Enable)).append("\n");
    sb.append("    dhcpv6Pps: ").append(toIndentedString(dhcpv6Pps)).append("\n");
    sb.append("    mdnsEnable: ").append(toIndentedString(mdnsEnable)).append("\n");
    sb.append("    mdnsPps: ").append(toIndentedString(mdnsPps)).append("\n");
    sb.append("    otherBcastEnable: ").append(toIndentedString(otherBcastEnable)).append("\n");
    sb.append("    otherBcastPps: ").append(toIndentedString(otherBcastPps)).append("\n");
    sb.append("    otherMcastEnable: ").append(toIndentedString(otherMcastEnable)).append("\n");
    sb.append("    otherMcastPps: ").append(toIndentedString(otherMcastPps)).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    ");
  }
}

