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;

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

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

  @JsonProperty("type")
  private String type;

  @JsonProperty("name")
  private String name;

  @JsonProperty("rate")
  private String rate;

  @JsonProperty("duplex")
  private Integer duplex;

  @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;

  @JsonProperty("port")
  private String port;

  @JsonProperty("ip")
  private String ip;

  @JsonProperty("portType")
  private Integer portType;

  @JsonProperty("txPower")
  private Double txPower;

  @JsonProperty("rxPower")
  private Double rxPower;

  @JsonProperty("temp")
  private Double temp;

  @JsonProperty("voltage")
  private Double voltage;

  @JsonProperty("current")
  private Double current;

  @JsonProperty("model")
  private String model;

  @JsonProperty("modelVersion")
  private String modelVersion;

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

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


  public String getUplinkMac() {
    return uplinkMac;
  }

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

  public ApWiredUplinkInfo type(String type) {
    this.type = type;
    return this;
  }

  /**
   * Uplink device type
   * @return type
  */
  @ApiModelProperty(value = "Uplink device type")


  public String getType() {
    return type;
  }

  public void setType(String type) {
    this.type = type;
  }

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

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


  public String getName() {
    return name;
  }

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

  public ApWiredUplinkInfo rate(String rate) {
    this.rate = rate;
    return this;
  }

  /**
   * Negotiation rate, LAN(connected): 10,100,1000,2500,10000, LAN(disconnected):0, Unit:Mbps
   * @return rate
  */
  @ApiModelProperty(value = "Negotiation rate, LAN(connected): 10,100,1000,2500,10000, LAN(disconnected):0, Unit:Mbps")


  public String getRate() {
    return rate;
  }

  public void setRate(String rate) {
    this.rate = rate;
  }

  public ApWiredUplinkInfo duplex(Integer duplex) {
    this.duplex = duplex;
    return this;
  }

  /**
   * Duplex should be a value as follows: 0: LAN disconnected; 1: half; 2: full
   * @return duplex
  */
  @ApiModelProperty(value = "Duplex should be a value as follows: 0: LAN disconnected; 1: half; 2: full")


  public Integer getDuplex() {
    return duplex;
  }

  public void setDuplex(Integer duplex) {
    this.duplex = duplex;
  }

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

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


  public Long getUpBytes() {
    return upBytes;
  }

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

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

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


  public Long getDownBytes() {
    return downBytes;
  }

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

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

  /**
   * Get upPackets
   * @return upPackets
  */
  @ApiModelProperty(value = "")


  public Long getUpPackets() {
    return upPackets;
  }

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

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

  /**
   * Get downPackets
   * @return downPackets
  */
  @ApiModelProperty(value = "")


  public Long getDownPackets() {
    return downPackets;
  }

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

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

  /**
   * (Change of( downBytes+upBytes))/ time, Unit: Bytes/s
   * @return activity
  */
  @ApiModelProperty(value = "(Change of( downBytes+upBytes))/ time, Unit: Bytes/s")


  public Long getActivity() {
    return activity;
  }

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

  public ApWiredUplinkInfo port(String port) {
    this.port = port;
    return this;
  }

  /**
   * Uplink port ID, only supported by some devices.
   * @return port
  */
  @ApiModelProperty(value = "Uplink port ID, only supported by some devices.")


  public String getPort() {
    return port;
  }

  public void setPort(String port) {
    this.port = port;
  }

  public ApWiredUplinkInfo ip(String ip) {
    this.ip = ip;
    return this;
  }

  /**
   * Uplink device ip.
   * @return ip
  */
  @ApiModelProperty(value = "Uplink device ip.")


  public String getIp() {
    return ip;
  }

  public void setIp(String ip) {
    this.ip = ip;
  }

  public ApWiredUplinkInfo portType(Integer portType) {
    this.portType = portType;
    return this;
  }

  /**
   * Port Type, 0:ETH, 1:POTS, 2:SFP
   * @return portType
  */
  @ApiModelProperty(value = "Port Type, 0:ETH, 1:POTS, 2:SFP")


  public Integer getPortType() {
    return portType;
  }

  public void setPortType(Integer portType) {
    this.portType = portType;
  }

  public ApWiredUplinkInfo txPower(Double txPower) {
    this.txPower = txPower;
    return this;
  }

  /**
   * Tx power, only supported by some devices.
   * @return txPower
  */
  @ApiModelProperty(value = "Tx power, only supported by some devices.")


  public Double getTxPower() {
    return txPower;
  }

  public void setTxPower(Double txPower) {
    this.txPower = txPower;
  }

  public ApWiredUplinkInfo rxPower(Double rxPower) {
    this.rxPower = rxPower;
    return this;
  }

  /**
   * Rx Power, only supported by some devices.
   * @return rxPower
  */
  @ApiModelProperty(value = "Rx Power, only supported by some devices.")


  public Double getRxPower() {
    return rxPower;
  }

  public void setRxPower(Double rxPower) {
    this.rxPower = rxPower;
  }

  public ApWiredUplinkInfo temp(Double temp) {
    this.temp = temp;
    return this;
  }

  /**
   * Temperature, only supported by some devices.
   * @return temp
  */
  @ApiModelProperty(value = "Temperature, only supported by some devices.")


  public Double getTemp() {
    return temp;
  }

  public void setTemp(Double temp) {
    this.temp = temp;
  }

  public ApWiredUplinkInfo voltage(Double voltage) {
    this.voltage = voltage;
    return this;
  }

  /**
   * Voltage, only supported by some devices.
   * @return voltage
  */
  @ApiModelProperty(value = "Voltage, only supported by some devices.")


  public Double getVoltage() {
    return voltage;
  }

  public void setVoltage(Double voltage) {
    this.voltage = voltage;
  }

  public ApWiredUplinkInfo current(Double current) {
    this.current = current;
    return this;
  }

  /**
   * Current, only supported by some devices.
   * @return current
  */
  @ApiModelProperty(value = "Current, only supported by some devices.")


  public Double getCurrent() {
    return current;
  }

  public void setCurrent(Double current) {
    this.current = current;
  }

  public ApWiredUplinkInfo model(String model) {
    this.model = model;
    return this;
  }

  /**
   * Get model
   * @return model
  */
  @ApiModelProperty(value = "")


  public String getModel() {
    return model;
  }

  public void setModel(String model) {
    this.model = model;
  }

  public ApWiredUplinkInfo modelVersion(String modelVersion) {
    this.modelVersion = modelVersion;
    return this;
  }

  /**
   * Get modelVersion
   * @return modelVersion
  */
  @ApiModelProperty(value = "")


  public String getModelVersion() {
    return modelVersion;
  }

  public void setModelVersion(String modelVersion) {
    this.modelVersion = modelVersion;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApWiredUplinkInfo apWiredUplinkInfo = (ApWiredUplinkInfo) o;
    return Objects.equals(this.uplinkMac, apWiredUplinkInfo.uplinkMac) &&
        Objects.equals(this.type, apWiredUplinkInfo.type) &&
        Objects.equals(this.name, apWiredUplinkInfo.name) &&
        Objects.equals(this.rate, apWiredUplinkInfo.rate) &&
        Objects.equals(this.duplex, apWiredUplinkInfo.duplex) &&
        Objects.equals(this.upBytes, apWiredUplinkInfo.upBytes) &&
        Objects.equals(this.downBytes, apWiredUplinkInfo.downBytes) &&
        Objects.equals(this.upPackets, apWiredUplinkInfo.upPackets) &&
        Objects.equals(this.downPackets, apWiredUplinkInfo.downPackets) &&
        Objects.equals(this.activity, apWiredUplinkInfo.activity) &&
        Objects.equals(this.port, apWiredUplinkInfo.port) &&
        Objects.equals(this.ip, apWiredUplinkInfo.ip) &&
        Objects.equals(this.portType, apWiredUplinkInfo.portType) &&
        Objects.equals(this.txPower, apWiredUplinkInfo.txPower) &&
        Objects.equals(this.rxPower, apWiredUplinkInfo.rxPower) &&
        Objects.equals(this.temp, apWiredUplinkInfo.temp) &&
        Objects.equals(this.voltage, apWiredUplinkInfo.voltage) &&
        Objects.equals(this.current, apWiredUplinkInfo.current) &&
        Objects.equals(this.model, apWiredUplinkInfo.model) &&
        Objects.equals(this.modelVersion, apWiredUplinkInfo.modelVersion);
  }

  @Override
  public int hashCode() {
    return Objects.hash(uplinkMac, type, name, rate, duplex, upBytes, downBytes, upPackets, downPackets, activity, port, ip, portType, txPower, rxPower, temp, voltage, current, model, modelVersion);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApWiredUplinkInfo {\n");
    
    sb.append("    uplinkMac: ").append(toIndentedString(uplinkMac)).append("\n");
    sb.append("    type: ").append(toIndentedString(type)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    rate: ").append(toIndentedString(rate)).append("\n");
    sb.append("    duplex: ").append(toIndentedString(duplex)).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("    port: ").append(toIndentedString(port)).append("\n");
    sb.append("    ip: ").append(toIndentedString(ip)).append("\n");
    sb.append("    portType: ").append(toIndentedString(portType)).append("\n");
    sb.append("    txPower: ").append(toIndentedString(txPower)).append("\n");
    sb.append("    rxPower: ").append(toIndentedString(rxPower)).append("\n");
    sb.append("    temp: ").append(toIndentedString(temp)).append("\n");
    sb.append("    voltage: ").append(toIndentedString(voltage)).append("\n");
    sb.append("    current: ").append(toIndentedString(current)).append("\n");
    sb.append("    model: ").append(toIndentedString(model)).append("\n");
    sb.append("    modelVersion: ").append(toIndentedString(modelVersion)).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    ");
  }
}

