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

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

import java.util.Objects;

/**
 * Wireless uplink info
 */
@ApiModel(description = "Wireless uplink info")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.SpringCodegen", date = "2024-12-04T11:26:25.576+08:00[Asia/Shanghai]")

public class ApWirelessUplink   {
  @JsonProperty("uplinkMac")
  private String uplinkMac;

  @JsonProperty("name")
  private String name;

  @JsonProperty("channel")
  private Integer channel;

  @JsonProperty("rssi")
  private Integer rssi;

  @JsonProperty("snr")
  private Integer snr;

  @JsonProperty("txRate")
  private String txRate;

  @JsonProperty("txRateInt")
  private Integer txRateInt;

  @JsonProperty("rxRate")
  private String rxRate;

  @JsonProperty("rxRateInt")
  private Integer rxRateInt;

  @JsonProperty("upBytes")
  private Long upBytes;

  @JsonProperty("downBytes")
  private Long downBytes;

  @JsonProperty("upPackets")
  private Long upPackets;

  @JsonProperty("downPackets")
  private Long downPackets;

  @JsonProperty("activity")
  private Long activity;

  public ApWirelessUplink uplinkMac(String uplinkMac) {
    this.uplinkMac = uplinkMac;
    return this;
  }

  /**
   * Uplink AP MAC
   * @return uplinkMac
  */
  @ApiModelProperty(value = "Uplink AP MAC")


  public String getUplinkMac() {
    return uplinkMac;
  }

  public void setUplinkMac(String uplinkMac) {
    this.uplinkMac = uplinkMac;
  }

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

  /**
   * Uplink AP name
   * @return name
  */
  @ApiModelProperty(value = "Uplink AP name")


  public String getName() {
    return name;
  }

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

  public ApWirelessUplink channel(Integer channel) {
    this.channel = channel;
    return this;
  }

  /**
   * Uplink AP channel
   * @return channel
  */
  @ApiModelProperty(value = "Uplink AP channel")


  public Integer getChannel() {
    return channel;
  }

  public void setChannel(Integer channel) {
    this.channel = channel;
  }

  public ApWirelessUplink rssi(Integer rssi) {
    this.rssi = rssi;
    return this;
  }

  /**
   * Uplink AP rssi
   * @return rssi
  */
  @ApiModelProperty(value = "Uplink AP rssi")


  public Integer getRssi() {
    return rssi;
  }

  public void setRssi(Integer rssi) {
    this.rssi = rssi;
  }

  public ApWirelessUplink snr(Integer snr) {
    this.snr = snr;
    return this;
  }

  /**
   * Uplink AP Signal-noise ratio
   * @return snr
  */
  @ApiModelProperty(value = "Uplink AP Signal-noise ratio")


  public Integer getSnr() {
    return snr;
  }

  public void setSnr(Integer snr) {
    this.snr = snr;
  }

  public ApWirelessUplink txRate(String txRate) {
    this.txRate = txRate;
    return this;
  }

  /**
   * Uplink AP txRate
   * @return txRate
  */
  @ApiModelProperty(value = "Uplink AP txRate")


  public String getTxRate() {
    return txRate;
  }

  public void setTxRate(String txRate) {
    this.txRate = txRate;
  }

  public ApWirelessUplink txRateInt(Integer txRateInt) {
    this.txRateInt = txRateInt;
    return this;
  }

  /**
   * Uplink AP txRateInt; Unit: Mbps
   * @return txRateInt
  */
  @ApiModelProperty(value = "Uplink AP txRateInt; Unit: Mbps")


  public Integer getTxRateInt() {
    return txRateInt;
  }

  public void setTxRateInt(Integer txRateInt) {
    this.txRateInt = txRateInt;
  }

  public ApWirelessUplink rxRate(String rxRate) {
    this.rxRate = rxRate;
    return this;
  }

  /**
   * Uplink AP rxRate
   * @return rxRate
  */
  @ApiModelProperty(value = "Uplink AP rxRate")


  public String getRxRate() {
    return rxRate;
  }

  public void setRxRate(String rxRate) {
    this.rxRate = rxRate;
  }

  public ApWirelessUplink rxRateInt(Integer rxRateInt) {
    this.rxRateInt = rxRateInt;
    return this;
  }

  /**
   * Uplink AP rxRateInt; Unit: Mbps
   * @return rxRateInt
  */
  @ApiModelProperty(value = "Uplink AP rxRateInt; Unit: Mbps")


  public Integer getRxRateInt() {
    return rxRateInt;
  }

  public void setRxRateInt(Integer rxRateInt) {
    this.rxRateInt = rxRateInt;
  }

  public ApWirelessUplink upBytes(Long upBytes) {
    this.upBytes = upBytes;
    return this;
  }

  /**
   * Uplink AP upBytes; Unit: Byte
   * @return upBytes
  */
  @ApiModelProperty(value = "Uplink AP upBytes; Unit: Byte")


  public Long getUpBytes() {
    return upBytes;
  }

  public void setUpBytes(Long upBytes) {
    this.upBytes = upBytes;
  }

  public ApWirelessUplink downBytes(Long downBytes) {
    this.downBytes = downBytes;
    return this;
  }

  /**
   * Uplink AP downBytes; Unit:Byte
   * @return downBytes
  */
  @ApiModelProperty(value = "Uplink AP downBytes; Unit:Byte")


  public Long getDownBytes() {
    return downBytes;
  }

  public void setDownBytes(Long downBytes) {
    this.downBytes = downBytes;
  }

  public ApWirelessUplink upPackets(Long upPackets) {
    this.upPackets = upPackets;
    return this;
  }

  /**
   * Uplink AP upPackets
   * @return upPackets
  */
  @ApiModelProperty(value = "Uplink AP upPackets")


  public Long getUpPackets() {
    return upPackets;
  }

  public void setUpPackets(Long upPackets) {
    this.upPackets = upPackets;
  }

  public ApWirelessUplink downPackets(Long downPackets) {
    this.downPackets = downPackets;
    return this;
  }

  /**
   * Uplink AP downPackets
   * @return downPackets
  */
  @ApiModelProperty(value = "Uplink AP downPackets")


  public Long getDownPackets() {
    return downPackets;
  }

  public void setDownPackets(Long downPackets) {
    this.downPackets = downPackets;
  }

  public ApWirelessUplink activity(Long activity) {
    this.activity = activity;
    return this;
  }

  /**
   * Uplink AP activity: (change of(downBytes+upBytes))/time
   * @return activity
  */
  @ApiModelProperty(value = "Uplink AP activity: (change of(downBytes+upBytes))/time")


  public Long getActivity() {
    return activity;
  }

  public void setActivity(Long activity) {
    this.activity = activity;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApWirelessUplink apWirelessUplink = (ApWirelessUplink) o;
    return Objects.equals(this.uplinkMac, apWirelessUplink.uplinkMac) &&
        Objects.equals(this.name, apWirelessUplink.name) &&
        Objects.equals(this.channel, apWirelessUplink.channel) &&
        Objects.equals(this.rssi, apWirelessUplink.rssi) &&
        Objects.equals(this.snr, apWirelessUplink.snr) &&
        Objects.equals(this.txRate, apWirelessUplink.txRate) &&
        Objects.equals(this.txRateInt, apWirelessUplink.txRateInt) &&
        Objects.equals(this.rxRate, apWirelessUplink.rxRate) &&
        Objects.equals(this.rxRateInt, apWirelessUplink.rxRateInt) &&
        Objects.equals(this.upBytes, apWirelessUplink.upBytes) &&
        Objects.equals(this.downBytes, apWirelessUplink.downBytes) &&
        Objects.equals(this.upPackets, apWirelessUplink.upPackets) &&
        Objects.equals(this.downPackets, apWirelessUplink.downPackets) &&
        Objects.equals(this.activity, apWirelessUplink.activity);
  }

  @Override
  public int hashCode() {
    return Objects.hash(uplinkMac, name, channel, rssi, snr, txRate, txRateInt, rxRate, rxRateInt, upBytes, downBytes, upPackets, downPackets, activity);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApWirelessUplink {\n");
    
    sb.append("    uplinkMac: ").append(toIndentedString(uplinkMac)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    channel: ").append(toIndentedString(channel)).append("\n");
    sb.append("    rssi: ").append(toIndentedString(rssi)).append("\n");
    sb.append("    snr: ").append(toIndentedString(snr)).append("\n");
    sb.append("    txRate: ").append(toIndentedString(txRate)).append("\n");
    sb.append("    txRateInt: ").append(toIndentedString(txRateInt)).append("\n");
    sb.append("    rxRate: ").append(toIndentedString(rxRate)).append("\n");
    sb.append("    rxRateInt: ").append(toIndentedString(rxRateInt)).append("\n");
    sb.append("    upBytes: ").append(toIndentedString(upBytes)).append("\n");
    sb.append("    downBytes: ").append(toIndentedString(downBytes)).append("\n");
    sb.append("    upPackets: ").append(toIndentedString(upPackets)).append("\n");
    sb.append("    downPackets: ").append(toIndentedString(downPackets)).append("\n");
    sb.append("    activity: ").append(toIndentedString(activity)).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    ");
  }
}

