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

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

import java.util.Objects;

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

public class HistoryRetentionOpenApiVo   {
  @JsonProperty("override")
  private Boolean override;

  @JsonProperty("clientsDataEnable")
  private Boolean clientsDataEnable;

  @JsonProperty("knownClient")
  private Integer knownClient;

  @JsonProperty("clientHistory")
  private Integer clientHistory;

  @JsonProperty("fiveMin")
  private Integer fiveMin;

  @JsonProperty("hourly")
  private Integer hourly;

  @JsonProperty("daily")
  private Integer daily;

  @JsonProperty("weekly")
  private Integer weekly;

  @JsonProperty("portalAuth")
  private Integer portalAuth;

  @JsonProperty("log")
  private Integer log;

  @JsonProperty("rogueAp")
  private Integer rogueAp;

  @JsonProperty("widsData")
  private Integer widsData;

  public HistoryRetentionOpenApiVo override(Boolean override) {
    this.override = override;
    return this;
  }

  /**
   * Whether the customer overrides the retention configuration of MSP.
   * @return override
  */
  @ApiModelProperty(value = "Whether the customer overrides the retention configuration of MSP.")


  public Boolean getOverride() {
    return override;
  }

  public void setOverride(Boolean override) {
    this.override = override;
  }

  public HistoryRetentionOpenApiVo clientsDataEnable(Boolean clientsDataEnable) {
    this.clientsDataEnable = clientsDataEnable;
    return this;
  }

  /**
   * Whether the clients' history data is recorded.
   * @return clientsDataEnable
  */
  @ApiModelProperty(value = "Whether the clients' history data is recorded.")


  public Boolean getClientsDataEnable() {
    return clientsDataEnable;
  }

  public void setClientsDataEnable(Boolean clientsDataEnable) {
    this.clientsDataEnable = clientsDataEnable;
  }

  public HistoryRetentionOpenApiVo knownClient(Integer knownClient) {
    this.knownClient = knownClient;
    return this;
  }

  /**
   * Retention configuration of known client Data, knownClient should be a value as follows: -1: Disabled; 0: All Time(Windows, Linux Only); 1: 1day; 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return knownClient
  */
  @ApiModelProperty(value = "Retention configuration of known client Data, knownClient should be a value as follows: -1: Disabled; 0: All Time(Windows, Linux Only); 1: 1day; 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getKnownClient() {
    return knownClient;
  }

  public void setKnownClient(Integer knownClient) {
    this.knownClient = knownClient;
  }

  public HistoryRetentionOpenApiVo clientHistory(Integer clientHistory) {
    this.clientHistory = clientHistory;
    return this;
  }

  /**
   * Retention configuration of client History(only effective in local controller), clientHistory should be a value as follows: -1: Disabled; 0: All Time(Windows, Linux Only); 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return clientHistory
  */
  @ApiModelProperty(value = "Retention configuration of client History(only effective in local controller), clientHistory should be a value as follows: -1: Disabled; 0: All Time(Windows, Linux Only); 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getClientHistory() {
    return clientHistory;
  }

  public void setClientHistory(Integer clientHistory) {
    this.clientHistory = clientHistory;
  }

  public HistoryRetentionOpenApiVo fiveMin(Integer fiveMin) {
    this.fiveMin = fiveMin;
    return this;
  }

  /**
   * Retention configuration of Time Series with 5 Minutes Granularity, fiveMin should be a value as follows: 2: 2days.
   * @return fiveMin
  */
  @ApiModelProperty(value = "Retention configuration of Time Series with 5 Minutes Granularity, fiveMin should be a value as follows: 2: 2days.")


  public Integer getFiveMin() {
    return fiveMin;
  }

  public void setFiveMin(Integer fiveMin) {
    this.fiveMin = fiveMin;
  }

  public HistoryRetentionOpenApiVo hourly(Integer hourly) {
    this.hourly = hourly;
    return this;
  }

  /**
   * Retention configuration of time series with hourly granularity, hourly should be a value as follows: 7: 7days.
   * @return hourly
  */
  @ApiModelProperty(value = "Retention configuration of time series with hourly granularity, hourly should be a value as follows: 7: 7days.")


  public Integer getHourly() {
    return hourly;
  }

  public void setHourly(Integer hourly) {
    this.hourly = hourly;
  }

  public HistoryRetentionOpenApiVo daily(Integer daily) {
    this.daily = daily;
    return this;
  }

  /**
   * Retention configuration of time series with daily granularity, daily should be a value as follows: 90: 90days; 180: 180days; 365: 365days(Fixed value in Cloud Based Controller as 365 days).
   * @return daily
  */
  @ApiModelProperty(value = "Retention configuration of time series with daily granularity, daily should be a value as follows: 90: 90days; 180: 180days; 365: 365days(Fixed value in Cloud Based Controller as 365 days).")


  public Integer getDaily() {
    return daily;
  }

  public void setDaily(Integer daily) {
    this.daily = daily;
  }

  public HistoryRetentionOpenApiVo weekly(Integer weekly) {
    this.weekly = weekly;
    return this;
  }

  /**
   * Retention configuration of time series with weekly granularity, weekly should be a value as follows: 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return weekly
  */
  @ApiModelProperty(value = "Retention configuration of time series with weekly granularity, weekly should be a value as follows: 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getWeekly() {
    return weekly;
  }

  public void setWeekly(Integer weekly) {
    this.weekly = weekly;
  }

  public HistoryRetentionOpenApiVo portalAuth(Integer portalAuth) {
    this.portalAuth = portalAuth;
    return this;
  }

  /**
   * Retention configuration of portal authentication records, portalAuth should be a value as follows: 0: All Time(Windows, Linux Only); 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return portalAuth
  */
  @ApiModelProperty(value = "Retention configuration of portal authentication records, portalAuth should be a value as follows: 0: All Time(Windows, Linux Only); 7: 7days; 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getPortalAuth() {
    return portalAuth;
  }

  public void setPortalAuth(Integer portalAuth) {
    this.portalAuth = portalAuth;
  }

  public HistoryRetentionOpenApiVo log(Integer log) {
    this.log = log;
    return this;
  }

  /**
   * Retention Configuration of log data(only effective in local controller), log should be a value as follows: 0: All Time(Windows, Linux Only); 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return log
  */
  @ApiModelProperty(value = "Retention Configuration of log data(only effective in local controller), log should be a value as follows: 0: All Time(Windows, Linux Only); 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getLog() {
    return log;
  }

  public void setLog(Integer log) {
    this.log = log;
  }

  public HistoryRetentionOpenApiVo rogueAp(Integer rogueAp) {
    this.rogueAp = rogueAp;
    return this;
  }

  /**
   * Retention Configuration of rogue ap data, rogueAp should be a value as follows: 0: All Time(Windows, Linux Only); 31: 31days; 90: 90days; 180: 180days; 365: 365days.
   * @return rogueAp
  */
  @ApiModelProperty(value = "Retention Configuration of rogue ap data, rogueAp should be a value as follows: 0: All Time(Windows, Linux Only); 31: 31days; 90: 90days; 180: 180days; 365: 365days.")


  public Integer getRogueAp() {
    return rogueAp;
  }

  public void setRogueAp(Integer rogueAp) {
    this.rogueAp = rogueAp;
  }

  public HistoryRetentionOpenApiVo widsData(Integer widsData) {
    this.widsData = widsData;
    return this;
  }

  /**
   * Retention Configuration of wids data(only effective in local pro controller), widsData should be a value as follows: 0: All Time(Windows, Linux Only); 90: 90days; 180: 180days; 365: 365days.
   * @return widsData
  */
  @ApiModelProperty(value = "Retention Configuration of wids data(only effective in local pro controller), widsData should be a value as follows: 0: All Time(Windows, Linux Only); 90: 90days; 180: 180days; 365: 365days.")


  public Integer getWidsData() {
    return widsData;
  }

  public void setWidsData(Integer widsData) {
    this.widsData = widsData;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    HistoryRetentionOpenApiVo historyRetentionOpenApiVo = (HistoryRetentionOpenApiVo) o;
    return Objects.equals(this.override, historyRetentionOpenApiVo.override) &&
        Objects.equals(this.clientsDataEnable, historyRetentionOpenApiVo.clientsDataEnable) &&
        Objects.equals(this.knownClient, historyRetentionOpenApiVo.knownClient) &&
        Objects.equals(this.clientHistory, historyRetentionOpenApiVo.clientHistory) &&
        Objects.equals(this.fiveMin, historyRetentionOpenApiVo.fiveMin) &&
        Objects.equals(this.hourly, historyRetentionOpenApiVo.hourly) &&
        Objects.equals(this.daily, historyRetentionOpenApiVo.daily) &&
        Objects.equals(this.weekly, historyRetentionOpenApiVo.weekly) &&
        Objects.equals(this.portalAuth, historyRetentionOpenApiVo.portalAuth) &&
        Objects.equals(this.log, historyRetentionOpenApiVo.log) &&
        Objects.equals(this.rogueAp, historyRetentionOpenApiVo.rogueAp) &&
        Objects.equals(this.widsData, historyRetentionOpenApiVo.widsData);
  }

  @Override
  public int hashCode() {
    return Objects.hash(override, clientsDataEnable, knownClient, clientHistory, fiveMin, hourly, daily, weekly, portalAuth, log, rogueAp, widsData);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class HistoryRetentionOpenApiVo {\n");
    
    sb.append("    override: ").append(toIndentedString(override)).append("\n");
    sb.append("    clientsDataEnable: ").append(toIndentedString(clientsDataEnable)).append("\n");
    sb.append("    knownClient: ").append(toIndentedString(knownClient)).append("\n");
    sb.append("    clientHistory: ").append(toIndentedString(clientHistory)).append("\n");
    sb.append("    fiveMin: ").append(toIndentedString(fiveMin)).append("\n");
    sb.append("    hourly: ").append(toIndentedString(hourly)).append("\n");
    sb.append("    daily: ").append(toIndentedString(daily)).append("\n");
    sb.append("    weekly: ").append(toIndentedString(weekly)).append("\n");
    sb.append("    portalAuth: ").append(toIndentedString(portalAuth)).append("\n");
    sb.append("    log: ").append(toIndentedString(log)).append("\n");
    sb.append("    rogueAp: ").append(toIndentedString(rogueAp)).append("\n");
    sb.append("    widsData: ").append(toIndentedString(widsData)).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    ");
  }
}

