// SPDX-FileCopyrightText: the secureCodeBox authors
//
// SPDX-License-Identifier: Apache-2.0

/*
 * Kubernetes
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1.21.1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package io.securecodebox.models;

import java.util.Objects;
import java.util.Arrays;

import com.google.gson.TypeAdapter;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.annotations.SerializedName;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.IOException;

/**
 * V1ScanStatusReadAndWriteHookStatus
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2021-11-17T10:13:00.848Z[Etc/UTC]")
public class V1ScanStatusReadAndWriteHookStatus {
  public static final String SERIALIZED_NAME_HOOK_NAME = "hookName";
  @SerializedName(SERIALIZED_NAME_HOOK_NAME)
  private String hookName;

  public static final String SERIALIZED_NAME_JOB_NAME = "jobName";
  @SerializedName(SERIALIZED_NAME_JOB_NAME)
  private String jobName;

  public static final String SERIALIZED_NAME_PRIORITY = "priority";
  @SerializedName(SERIALIZED_NAME_PRIORITY)
  private Integer priority;

  public static final String SERIALIZED_NAME_STATE = "state";
  @SerializedName(SERIALIZED_NAME_STATE)
  private String state;

  public static final String SERIALIZED_NAME_TYPE = "type";
  @SerializedName(SERIALIZED_NAME_TYPE)
  private String type;


  public V1ScanStatusReadAndWriteHookStatus hookName(String hookName) {

    this.hookName = hookName;
    return this;
  }

  /**
   * Get hookName
   *
   * @return hookName
   **/
  @ApiModelProperty(required = true, value = "")

  public String getHookName() {
    return hookName;
  }


  public void setHookName(String hookName) {
    this.hookName = hookName;
  }


  public V1ScanStatusReadAndWriteHookStatus jobName(String jobName) {

    this.jobName = jobName;
    return this;
  }

  /**
   * Get jobName
   *
   * @return jobName
   **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getJobName() {
    return jobName;
  }


  public void setJobName(String jobName) {
    this.jobName = jobName;
  }


  public V1ScanStatusReadAndWriteHookStatus priority(Integer priority) {

    this.priority = priority;
    return this;
  }

  /**
   * Get priority
   *
   * @return priority
   **/
  @ApiModelProperty(required = true, value = "")

  public Integer getPriority() {
    return priority;
  }


  public void setPriority(Integer priority) {
    this.priority = priority;
  }


  public V1ScanStatusReadAndWriteHookStatus state(String state) {

    this.state = state;
    return this;
  }

  /**
   * HookState Describes the State of a Hook on a Scan
   *
   * @return state
   **/
  @ApiModelProperty(required = true, value = "HookState Describes the State of a Hook on a Scan")

  public String getState() {
    return state;
  }


  public void setState(String state) {
    this.state = state;
  }


  public V1ScanStatusReadAndWriteHookStatus type(String type) {

    this.type = type;
    return this;
  }

  /**
   * HookType Defines weather the hook should be able to change the findings or is run in a read only mode.
   *
   * @return type
   **/
  @ApiModelProperty(required = true, value = "HookType Defines weather the hook should be able to change the findings or is run in a read only mode.")

  public String getType() {
    return type;
  }


  public void setType(String type) {
    this.type = type;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    V1ScanStatusReadAndWriteHookStatus v1ScanStatusReadAndWriteHookStatus = (V1ScanStatusReadAndWriteHookStatus) o;
    return Objects.equals(this.hookName, v1ScanStatusReadAndWriteHookStatus.hookName) &&
      Objects.equals(this.jobName, v1ScanStatusReadAndWriteHookStatus.jobName) &&
      Objects.equals(this.priority, v1ScanStatusReadAndWriteHookStatus.priority) &&
      Objects.equals(this.state, v1ScanStatusReadAndWriteHookStatus.state) &&
      Objects.equals(this.type, v1ScanStatusReadAndWriteHookStatus.type);
  }

  @Override
  public int hashCode() {
    return Objects.hash(hookName, jobName, priority, state, type);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class V1ScanStatusReadAndWriteHookStatus {\n");
    sb.append("    hookName: ").append(toIndentedString(hookName)).append("\n");
    sb.append("    jobName: ").append(toIndentedString(jobName)).append("\n");
    sb.append("    priority: ").append(toIndentedString(priority)).append("\n");
    sb.append("    state: ").append(toIndentedString(state)).append("\n");
    sb.append("    type: ").append(toIndentedString(type)).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    ");
  }

}

