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

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

import java.util.Objects;

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

public class SpecifiedOptionOpenApiVo   {
  @JsonProperty("securityOptionEnable")
  private Boolean securityOptionEnable;

  @JsonProperty("recordRouteEnable")
  private Boolean recordRouteEnable;

  @JsonProperty("streamEnable")
  private Boolean streamEnable;

  @JsonProperty("timestampEnable")
  private Boolean timestampEnable;

  @JsonProperty("noOperationEnable")
  private Boolean noOperationEnable;

  public SpecifiedOptionOpenApiVo securityOptionEnable(Boolean securityOptionEnable) {
    this.securityOptionEnable = securityOptionEnable;
    return this;
  }

  /**
   * Security Option of the attack defense setting.
   * @return securityOptionEnable
  */
  @ApiModelProperty(value = "Security Option of the attack defense setting.")


  public Boolean getSecurityOptionEnable() {
    return securityOptionEnable;
  }

  public void setSecurityOptionEnable(Boolean securityOptionEnable) {
    this.securityOptionEnable = securityOptionEnable;
  }

  public SpecifiedOptionOpenApiVo recordRouteEnable(Boolean recordRouteEnable) {
    this.recordRouteEnable = recordRouteEnable;
    return this;
  }

  /**
   * Record Route Option of the attack defense setting.
   * @return recordRouteEnable
  */
  @ApiModelProperty(value = "Record Route Option of the attack defense setting.")


  public Boolean getRecordRouteEnable() {
    return recordRouteEnable;
  }

  public void setRecordRouteEnable(Boolean recordRouteEnable) {
    this.recordRouteEnable = recordRouteEnable;
  }

  public SpecifiedOptionOpenApiVo streamEnable(Boolean streamEnable) {
    this.streamEnable = streamEnable;
    return this;
  }

  /**
   * Stream Option of the attack defense setting.
   * @return streamEnable
  */
  @ApiModelProperty(value = "Stream Option of the attack defense setting.")


  public Boolean getStreamEnable() {
    return streamEnable;
  }

  public void setStreamEnable(Boolean streamEnable) {
    this.streamEnable = streamEnable;
  }

  public SpecifiedOptionOpenApiVo timestampEnable(Boolean timestampEnable) {
    this.timestampEnable = timestampEnable;
    return this;
  }

  /**
   * Timestamp Option of the attack defense setting.
   * @return timestampEnable
  */
  @ApiModelProperty(value = "Timestamp Option of the attack defense setting.")


  public Boolean getTimestampEnable() {
    return timestampEnable;
  }

  public void setTimestampEnable(Boolean timestampEnable) {
    this.timestampEnable = timestampEnable;
  }

  public SpecifiedOptionOpenApiVo noOperationEnable(Boolean noOperationEnable) {
    this.noOperationEnable = noOperationEnable;
    return this;
  }

  /**
   * No Operation Option of the attack defense setting.
   * @return noOperationEnable
  */
  @ApiModelProperty(value = "No Operation Option of the attack defense setting.")


  public Boolean getNoOperationEnable() {
    return noOperationEnable;
  }

  public void setNoOperationEnable(Boolean noOperationEnable) {
    this.noOperationEnable = noOperationEnable;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    SpecifiedOptionOpenApiVo specifiedOptionOpenApiVo = (SpecifiedOptionOpenApiVo) o;
    return Objects.equals(this.securityOptionEnable, specifiedOptionOpenApiVo.securityOptionEnable) &&
        Objects.equals(this.recordRouteEnable, specifiedOptionOpenApiVo.recordRouteEnable) &&
        Objects.equals(this.streamEnable, specifiedOptionOpenApiVo.streamEnable) &&
        Objects.equals(this.timestampEnable, specifiedOptionOpenApiVo.timestampEnable) &&
        Objects.equals(this.noOperationEnable, specifiedOptionOpenApiVo.noOperationEnable);
  }

  @Override
  public int hashCode() {
    return Objects.hash(securityOptionEnable, recordRouteEnable, streamEnable, timestampEnable, noOperationEnable);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class SpecifiedOptionOpenApiVo {\n");
    
    sb.append("    securityOptionEnable: ").append(toIndentedString(securityOptionEnable)).append("\n");
    sb.append("    recordRouteEnable: ").append(toIndentedString(recordRouteEnable)).append("\n");
    sb.append("    streamEnable: ").append(toIndentedString(streamEnable)).append("\n");
    sb.append("    timestampEnable: ").append(toIndentedString(timestampEnable)).append("\n");
    sb.append("    noOperationEnable: ").append(toIndentedString(noOperationEnable)).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    ");
  }
}

