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;

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

public class OsgWanPortIpv6ConfigVo   {
  @JsonProperty("enable")
  private Integer enable;

  @JsonProperty("proto")
  private String proto;

  @JsonProperty("addr")
  private String addr;

  @JsonProperty("gateway")
  private String gateway;

  @JsonProperty("priDns")
  private String priDns;

  @JsonProperty("sndDns")
  private String sndDns;

  @JsonProperty("internetState")
  private Integer internetState;

  @JsonProperty("mac")
  private String mac;

  public OsgWanPortIpv6ConfigVo enable(Integer enable) {
    this.enable = enable;
    return this;
  }

  /**
   * IPv6 enable should be a value as follows: 0: disconnected; 1: connected
   * @return enable
  */
  @ApiModelProperty(value = "IPv6 enable should be a value as follows: 0: disconnected; 1: connected")


  public Integer getEnable() {
    return enable;
  }

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

  public OsgWanPortIpv6ConfigVo proto(String proto) {
    this.proto = proto;
    return this;
  }

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


  public String getProto() {
    return proto;
  }

  public void setProto(String proto) {
    this.proto = proto;
  }

  public OsgWanPortIpv6ConfigVo addr(String addr) {
    this.addr = addr;
    return this;
  }

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


  public String getAddr() {
    return addr;
  }

  public void setAddr(String addr) {
    this.addr = addr;
  }

  public OsgWanPortIpv6ConfigVo gateway(String gateway) {
    this.gateway = gateway;
    return this;
  }

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


  public String getGateway() {
    return gateway;
  }

  public void setGateway(String gateway) {
    this.gateway = gateway;
  }

  public OsgWanPortIpv6ConfigVo priDns(String priDns) {
    this.priDns = priDns;
    return this;
  }

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


  public String getPriDns() {
    return priDns;
  }

  public void setPriDns(String priDns) {
    this.priDns = priDns;
  }

  public OsgWanPortIpv6ConfigVo sndDns(String sndDns) {
    this.sndDns = sndDns;
    return this;
  }

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


  public String getSndDns() {
    return sndDns;
  }

  public void setSndDns(String sndDns) {
    this.sndDns = sndDns;
  }

  public OsgWanPortIpv6ConfigVo internetState(Integer internetState) {
    this.internetState = internetState;
    return this;
  }

  /**
   * It should be a value as follows: 0: disconnected; 1: connected
   * @return internetState
  */
  @ApiModelProperty(value = "It should be a value as follows: 0: disconnected; 1: connected")


  public Integer getInternetState() {
    return internetState;
  }

  public void setInternetState(Integer internetState) {
    this.internetState = internetState;
  }

  public OsgWanPortIpv6ConfigVo mac(String mac) {
    this.mac = mac;
    return this;
  }

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


  public String getMac() {
    return mac;
  }

  public void setMac(String mac) {
    this.mac = mac;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    OsgWanPortIpv6ConfigVo osgWanPortIpv6ConfigVo = (OsgWanPortIpv6ConfigVo) o;
    return Objects.equals(this.enable, osgWanPortIpv6ConfigVo.enable) &&
        Objects.equals(this.proto, osgWanPortIpv6ConfigVo.proto) &&
        Objects.equals(this.addr, osgWanPortIpv6ConfigVo.addr) &&
        Objects.equals(this.gateway, osgWanPortIpv6ConfigVo.gateway) &&
        Objects.equals(this.priDns, osgWanPortIpv6ConfigVo.priDns) &&
        Objects.equals(this.sndDns, osgWanPortIpv6ConfigVo.sndDns) &&
        Objects.equals(this.internetState, osgWanPortIpv6ConfigVo.internetState) &&
        Objects.equals(this.mac, osgWanPortIpv6ConfigVo.mac);
  }

  @Override
  public int hashCode() {
    return Objects.hash(enable, proto, addr, gateway, priDns, sndDns, internetState, mac);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class OsgWanPortIpv6ConfigVo {\n");
    
    sb.append("    enable: ").append(toIndentedString(enable)).append("\n");
    sb.append("    proto: ").append(toIndentedString(proto)).append("\n");
    sb.append("    addr: ").append(toIndentedString(addr)).append("\n");
    sb.append("    gateway: ").append(toIndentedString(gateway)).append("\n");
    sb.append("    priDns: ").append(toIndentedString(priDns)).append("\n");
    sb.append("    sndDns: ").append(toIndentedString(sndDns)).append("\n");
    sb.append("    internetState: ").append(toIndentedString(internetState)).append("\n");
    sb.append("    mac: ").append(toIndentedString(mac)).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    ");
  }
}

