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

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

import java.util.Objects;

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

public class DdnsOpenApiVo   {
  @JsonProperty("id")
  private String id;

  @JsonProperty("service")
  private Integer service;

  @JsonProperty("status")
  private Boolean status;

  @JsonProperty("interfacePortId")
  private String interfacePortId;

  @JsonProperty("username")
  private String username;

  @JsonProperty("password")
  private String password;

  @JsonProperty("domainName")
  private String domainName;

  @JsonProperty("updateInterval")
  private Integer updateInterval;

  @JsonProperty("customInterval")
  private Integer customInterval;

  @JsonProperty("updateUrl")
  private String updateUrl;

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

  /**
   * Dynamic DNS ID
   * @return id
  */
  @ApiModelProperty(value = "Dynamic DNS ID")


  public String getId() {
    return id;
  }

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

  public DdnsOpenApiVo service(Integer service) {
    this.service = service;
    return this;
  }

  /**
   * Dynamic DNS service type, 0: DynDNS, 1: NO-IP, 2: Peanuthull, 3: Comexe, 4: Custom, 5: TP-Link DDNS
   * @return service
  */
  @ApiModelProperty(value = "Dynamic DNS service type, 0: DynDNS, 1: NO-IP, 2: Peanuthull, 3: Comexe, 4: Custom, 5: TP-Link DDNS")


  public Integer getService() {
    return service;
  }

  public void setService(Integer service) {
    this.service = service;
  }

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

  /**
   * Dynamic DNS enable status
   * @return status
  */
  @ApiModelProperty(value = "Dynamic DNS enable status")


  public Boolean getStatus() {
    return status;
  }

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

  public DdnsOpenApiVo interfacePortId(String interfacePortId) {
    this.interfacePortId = interfacePortId;
    return this;
  }

  /**
   * Port ID of interface
   * @return interfacePortId
  */
  @ApiModelProperty(value = "Port ID of interface")


  public String getInterfacePortId() {
    return interfacePortId;
  }

  public void setInterfacePortId(String interfacePortId) {
    this.interfacePortId = interfacePortId;
  }

  public DdnsOpenApiVo username(String username) {
    this.username = username;
    return this;
  }

  /**
   * Dynamic DNS username
   * @return username
  */
  @ApiModelProperty(value = "Dynamic DNS username")


  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

  public DdnsOpenApiVo password(String password) {
    this.password = password;
    return this;
  }

  /**
   * Dynamic DNS password
   * @return password
  */
  @ApiModelProperty(value = "Dynamic DNS password")


  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public DdnsOpenApiVo domainName(String domainName) {
    this.domainName = domainName;
    return this;
  }

  /**
   * Dynamic DNS domainName
   * @return domainName
  */
  @ApiModelProperty(value = "Dynamic DNS domainName")


  public String getDomainName() {
    return domainName;
  }

  public void setDomainName(String domainName) {
    this.domainName = domainName;
  }

  public DdnsOpenApiVo updateInterval(Integer updateInterval) {
    this.updateInterval = updateInterval;
    return this;
  }

  /**
   * Dynamic DNS update interval, unit: hour
   * @return updateInterval
  */
  @ApiModelProperty(value = "Dynamic DNS update interval, unit: hour")


  public Integer getUpdateInterval() {
    return updateInterval;
  }

  public void setUpdateInterval(Integer updateInterval) {
    this.updateInterval = updateInterval;
  }

  public DdnsOpenApiVo customInterval(Integer customInterval) {
    this.customInterval = customInterval;
    return this;
  }

  /**
   * Dynamic DNS custom interval, valid when parameter [server] is 0, 1 or 4, unit: minute
   * @return customInterval
  */
  @ApiModelProperty(value = "Dynamic DNS custom interval, valid when parameter [server] is 0, 1 or 4, unit: minute")


  public Integer getCustomInterval() {
    return customInterval;
  }

  public void setCustomInterval(Integer customInterval) {
    this.customInterval = customInterval;
  }

  public DdnsOpenApiVo updateUrl(String updateUrl) {
    this.updateUrl = updateUrl;
    return this;
  }

  /**
   * Dynamic DNS updateUrl, valid when parameter [server] is 4
   * @return updateUrl
  */
  @ApiModelProperty(value = "Dynamic DNS updateUrl, valid when parameter [server] is 4")


  public String getUpdateUrl() {
    return updateUrl;
  }

  public void setUpdateUrl(String updateUrl) {
    this.updateUrl = updateUrl;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    DdnsOpenApiVo ddnsOpenApiVo = (DdnsOpenApiVo) o;
    return Objects.equals(this.id, ddnsOpenApiVo.id) &&
        Objects.equals(this.service, ddnsOpenApiVo.service) &&
        Objects.equals(this.status, ddnsOpenApiVo.status) &&
        Objects.equals(this.interfacePortId, ddnsOpenApiVo.interfacePortId) &&
        Objects.equals(this.username, ddnsOpenApiVo.username) &&
        Objects.equals(this.password, ddnsOpenApiVo.password) &&
        Objects.equals(this.domainName, ddnsOpenApiVo.domainName) &&
        Objects.equals(this.updateInterval, ddnsOpenApiVo.updateInterval) &&
        Objects.equals(this.customInterval, ddnsOpenApiVo.customInterval) &&
        Objects.equals(this.updateUrl, ddnsOpenApiVo.updateUrl);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, service, status, interfacePortId, username, password, domainName, updateInterval, customInterval, updateUrl);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class DdnsOpenApiVo {\n");
    
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    service: ").append(toIndentedString(service)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    interfacePortId: ").append(toIndentedString(interfacePortId)).append("\n");
    sb.append("    username: ").append(toIndentedString(username)).append("\n");
    sb.append("    password: ").append(toIndentedString(password)).append("\n");
    sb.append("    domainName: ").append(toIndentedString(domainName)).append("\n");
    sb.append("    updateInterval: ").append(toIndentedString(updateInterval)).append("\n");
    sb.append("    customInterval: ").append(toIndentedString(customInterval)).append("\n");
    sb.append("    updateUrl: ").append(toIndentedString(updateUrl)).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    ");
  }
}

