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

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

import java.util.Objects;

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

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

  @JsonProperty("time")
  private Long time;

  @JsonProperty("srcIp")
  private String srcIp;

  @JsonProperty("srcCountry")
  private String srcCountry;

  @JsonProperty("dstIp")
  private String dstIp;

  @JsonProperty("service")
  private String service;

  @JsonProperty("severity")
  private Integer severity;

  @JsonProperty("category")
  private Integer category;

  @JsonProperty("classification")
  private String classification;

  @JsonProperty("activity")
  private Long activity;

  @JsonProperty("protocol")
  private String protocol;

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

  /**
   * IPS threat ID
   * @return id
  */
  @ApiModelProperty(value = "IPS threat ID")


  public String getId() {
    return id;
  }

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

  public GetIpsThreatDetail time(Long time) {
    this.time = time;
    return this;
  }

  /**
   * Timestamp, in seconds, such as 1682000000
   * @return time
  */
  @ApiModelProperty(value = "Timestamp, in seconds, such as 1682000000")


  public Long getTime() {
    return time;
  }

  public void setTime(Long time) {
    this.time = time;
  }

  public GetIpsThreatDetail srcIp(String srcIp) {
    this.srcIp = srcIp;
    return this;
  }

  /**
   * IPS threat source IP
   * @return srcIp
  */
  @ApiModelProperty(value = "IPS threat source IP")


  public String getSrcIp() {
    return srcIp;
  }

  public void setSrcIp(String srcIp) {
    this.srcIp = srcIp;
  }

  public GetIpsThreatDetail srcCountry(String srcCountry) {
    this.srcCountry = srcCountry;
    return this;
  }

  /**
   * IPS threat destination Country
   * @return srcCountry
  */
  @ApiModelProperty(value = "IPS threat destination Country")


  public String getSrcCountry() {
    return srcCountry;
  }

  public void setSrcCountry(String srcCountry) {
    this.srcCountry = srcCountry;
  }

  public GetIpsThreatDetail dstIp(String dstIp) {
    this.dstIp = dstIp;
    return this;
  }

  /**
   * IPS threat destination IP
   * @return dstIp
  */
  @ApiModelProperty(value = "IPS threat destination IP")


  public String getDstIp() {
    return dstIp;
  }

  public void setDstIp(String dstIp) {
    this.dstIp = dstIp;
  }

  public GetIpsThreatDetail service(String service) {
    this.service = service;
    return this;
  }

  /**
   * Ips threat description
   * @return service
  */
  @ApiModelProperty(value = "Ips threat description")


  public String getService() {
    return service;
  }

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

  public GetIpsThreatDetail severity(Integer severity) {
    this.severity = severity;
    return this;
  }

  /**
   * Ips threat severity,  0：Critical, 1：Major, 2：Moderate 3：Minor 4:Low
   * @return severity
  */
  @ApiModelProperty(value = "Ips threat severity,  0：Critical, 1：Major, 2：Moderate 3：Minor 4:Low")


  public Integer getSeverity() {
    return severity;
  }

  public void setSeverity(Integer severity) {
    this.severity = severity;
  }

  public GetIpsThreatDetail category(Integer category) {
    this.category = category;
    return this;
  }

  /**
   * Ips threat category, Custom IDS/IPS categories list, if parameter[Dplevel] is 3, customCategories is needed.CustomCategories should be a list as follow: 1: Botcc, 2: Worm, 3: Malware, 4: Mobile_Malware, 6: P2P, 7: Tor, 8: Exploit, 9: Shellcode, 14: Activex, 15: DNS, 18: User Agents, 24: DShield
   * @return category
  */
  @ApiModelProperty(value = "Ips threat category, Custom IDS/IPS categories list, if parameter[Dplevel] is 3, customCategories is needed.CustomCategories should be a list as follow: 1: Botcc, 2: Worm, 3: Malware, 4: Mobile_Malware, 6: P2P, 7: Tor, 8: Exploit, 9: Shellcode, 14: Activex, 15: DNS, 18: User Agents, 24: DShield")


  public Integer getCategory() {
    return category;
  }

  public void setCategory(Integer category) {
    this.category = category;
  }

  public GetIpsThreatDetail classification(String classification) {
    this.classification = classification;
    return this;
  }

  /**
   * Ips threat classification
   * @return classification
  */
  @ApiModelProperty(value = "Ips threat classification")


  public String getClassification() {
    return classification;
  }

  public void setClassification(String classification) {
    this.classification = classification;
  }

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

  /**
   * Ips threat dataUsage, in Byte
   * @return activity
  */
  @ApiModelProperty(value = "Ips threat dataUsage, in Byte")


  public Long getActivity() {
    return activity;
  }

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

  public GetIpsThreatDetail protocol(String protocol) {
    this.protocol = protocol;
    return this;
  }

  /**
   * Ips threat protocol
   * @return protocol
  */
  @ApiModelProperty(value = "Ips threat protocol")


  public String getProtocol() {
    return protocol;
  }

  public void setProtocol(String protocol) {
    this.protocol = protocol;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    GetIpsThreatDetail getIpsThreatDetail = (GetIpsThreatDetail) o;
    return Objects.equals(this.id, getIpsThreatDetail.id) &&
        Objects.equals(this.time, getIpsThreatDetail.time) &&
        Objects.equals(this.srcIp, getIpsThreatDetail.srcIp) &&
        Objects.equals(this.srcCountry, getIpsThreatDetail.srcCountry) &&
        Objects.equals(this.dstIp, getIpsThreatDetail.dstIp) &&
        Objects.equals(this.service, getIpsThreatDetail.service) &&
        Objects.equals(this.severity, getIpsThreatDetail.severity) &&
        Objects.equals(this.category, getIpsThreatDetail.category) &&
        Objects.equals(this.classification, getIpsThreatDetail.classification) &&
        Objects.equals(this.activity, getIpsThreatDetail.activity) &&
        Objects.equals(this.protocol, getIpsThreatDetail.protocol);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, time, srcIp, srcCountry, dstIp, service, severity, category, classification, activity, protocol);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class GetIpsThreatDetail {\n");
    
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    time: ").append(toIndentedString(time)).append("\n");
    sb.append("    srcIp: ").append(toIndentedString(srcIp)).append("\n");
    sb.append("    srcCountry: ").append(toIndentedString(srcCountry)).append("\n");
    sb.append("    dstIp: ").append(toIndentedString(dstIp)).append("\n");
    sb.append("    service: ").append(toIndentedString(service)).append("\n");
    sb.append("    severity: ").append(toIndentedString(severity)).append("\n");
    sb.append("    category: ").append(toIndentedString(category)).append("\n");
    sb.append("    classification: ").append(toIndentedString(classification)).append("\n");
    sb.append("    activity: ").append(toIndentedString(activity)).append("\n");
    sb.append("    protocol: ").append(toIndentedString(protocol)).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    ");
  }
}

