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

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

import javax.validation.Valid;
import java.util.Objects;

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

public class VirtualWanInfoOpenApiVo   {
  @JsonProperty("status")
  private Boolean status;

  @JsonProperty("name")
  private String name;

  @JsonProperty("physicalWanName")
  private String physicalWanName;

  @JsonProperty("physicalWanId")
  private String physicalWanId;

  @JsonProperty("physicalWanPortId")
  private Integer physicalWanPortId;

  @JsonProperty("id")
  private String id;

  @JsonProperty("wanPortIpv4Setting")
  private VirtualWanIpv4SettingInfoOpenApiVo wanPortIpv4Setting;

  @JsonProperty("dslSetting")
  private VirtualWanDslOpenApiVo dslSetting;

  public VirtualWanInfoOpenApiVo status(Boolean status) {
    this.status = status;
    return this;
  }

  /**
   * Virtual WAN status.
   * @return status
  */
  @ApiModelProperty(value = "Virtual WAN status.")


  public Boolean getStatus() {
    return status;
  }

  public void setStatus(Boolean status) {
    this.status = status;
  }

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

  /**
   * Virtual WAN name. 
   * @return name
  */
  @ApiModelProperty(value = "Virtual WAN name. ")


  public String getName() {
    return name;
  }

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

  public VirtualWanInfoOpenApiVo physicalWanName(String physicalWanName) {
    this.physicalWanName = physicalWanName;
    return this;
  }

  /**
   * Physical WAN name.
   * @return physicalWanName
  */
  @ApiModelProperty(value = "Physical WAN name.")


  public String getPhysicalWanName() {
    return physicalWanName;
  }

  public void setPhysicalWanName(String physicalWanName) {
    this.physicalWanName = physicalWanName;
  }

  public VirtualWanInfoOpenApiVo physicalWanId(String physicalWanId) {
    this.physicalWanId = physicalWanId;
    return this;
  }

  /**
   * Physical WAN ID.
   * @return physicalWanId
  */
  @ApiModelProperty(value = "Physical WAN ID.")


  public String getPhysicalWanId() {
    return physicalWanId;
  }

  public void setPhysicalWanId(String physicalWanId) {
    this.physicalWanId = physicalWanId;
  }

  public VirtualWanInfoOpenApiVo physicalWanPortId(Integer physicalWanPortId) {
    this.physicalWanPortId = physicalWanPortId;
    return this;
  }

  /**
   * Physical WAN port ID.
   * @return physicalWanPortId
  */
  @ApiModelProperty(value = "Physical WAN port ID.")


  public Integer getPhysicalWanPortId() {
    return physicalWanPortId;
  }

  public void setPhysicalWanPortId(Integer physicalWanPortId) {
    this.physicalWanPortId = physicalWanPortId;
  }

  public VirtualWanInfoOpenApiVo id(String id) {
    this.id = id;
    return this;
  }

  /**
   * Virtual WAN ID.
   * @return id
  */
  @ApiModelProperty(value = "Virtual WAN ID.")


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public VirtualWanInfoOpenApiVo wanPortIpv4Setting(VirtualWanIpv4SettingInfoOpenApiVo wanPortIpv4Setting) {
    this.wanPortIpv4Setting = wanPortIpv4Setting;
    return this;
  }

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

  @Valid

  public VirtualWanIpv4SettingInfoOpenApiVo getWanPortIpv4Setting() {
    return wanPortIpv4Setting;
  }

  public void setWanPortIpv4Setting(VirtualWanIpv4SettingInfoOpenApiVo wanPortIpv4Setting) {
    this.wanPortIpv4Setting = wanPortIpv4Setting;
  }

  public VirtualWanInfoOpenApiVo dslSetting(VirtualWanDslOpenApiVo dslSetting) {
    this.dslSetting = dslSetting;
    return this;
  }

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

  @Valid

  public VirtualWanDslOpenApiVo getDslSetting() {
    return dslSetting;
  }

  public void setDslSetting(VirtualWanDslOpenApiVo dslSetting) {
    this.dslSetting = dslSetting;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    VirtualWanInfoOpenApiVo virtualWanInfoOpenApiVo = (VirtualWanInfoOpenApiVo) o;
    return Objects.equals(this.status, virtualWanInfoOpenApiVo.status) &&
        Objects.equals(this.name, virtualWanInfoOpenApiVo.name) &&
        Objects.equals(this.physicalWanName, virtualWanInfoOpenApiVo.physicalWanName) &&
        Objects.equals(this.physicalWanId, virtualWanInfoOpenApiVo.physicalWanId) &&
        Objects.equals(this.physicalWanPortId, virtualWanInfoOpenApiVo.physicalWanPortId) &&
        Objects.equals(this.id, virtualWanInfoOpenApiVo.id) &&
        Objects.equals(this.wanPortIpv4Setting, virtualWanInfoOpenApiVo.wanPortIpv4Setting) &&
        Objects.equals(this.dslSetting, virtualWanInfoOpenApiVo.dslSetting);
  }

  @Override
  public int hashCode() {
    return Objects.hash(status, name, physicalWanName, physicalWanId, physicalWanPortId, id, wanPortIpv4Setting, dslSetting);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class VirtualWanInfoOpenApiVo {\n");
    
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    physicalWanName: ").append(toIndentedString(physicalWanName)).append("\n");
    sb.append("    physicalWanId: ").append(toIndentedString(physicalWanId)).append("\n");
    sb.append("    physicalWanPortId: ").append(toIndentedString(physicalWanPortId)).append("\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    wanPortIpv4Setting: ").append(toIndentedString(wanPortIpv4Setting)).append("\n");
    sb.append("    dslSetting: ").append(toIndentedString(dslSetting)).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    ");
  }
}

