/*
 * Cloudera Manager API
 * <h1>Cloudera Manager API v57</h1>       <p>Introduced in Cloudera Manager 7.13.1</p>       <p><a href=\"http://www.cloudera.com/documentation.html\">Cloudera Product Documentation</a></p>
 *
 * OpenAPI spec version: 7.13.1
 * 
 *
 * NOTE: This class is auto generated by the swagger code generator program.
 * https://github.com/swagger-api/swagger-codegen.git
 * Do not edit the class manually.
 */

package com.cloudera.api.swagger.model;

import java.util.Objects;
import java.util.Arrays;
import com.cloudera.api.swagger.model.ApiHdfsSnapshot;
import com.cloudera.api.swagger.model.ApiHdfsSnapshotError;
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.v3.oas.annotations.media.Schema;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
 * Detailed information about an HDFS snapshot command.
 */
@Schema(description = "Detailed information about an HDFS snapshot command.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiHdfsSnapshotResult {
  @SerializedName("processedPathCount")
  private java.math.BigDecimal processedPathCount = null;

  @SerializedName("processedPaths")
  private List<String> processedPaths = null;

  @SerializedName("unprocessedPathCount")
  private java.math.BigDecimal unprocessedPathCount = null;

  @SerializedName("unprocessedPaths")
  private List<String> unprocessedPaths = null;

  @SerializedName("createdSnapshotCount")
  private java.math.BigDecimal createdSnapshotCount = null;

  @SerializedName("createdSnapshots")
  private List<ApiHdfsSnapshot> createdSnapshots = null;

  @SerializedName("deletedSnapshotCount")
  private java.math.BigDecimal deletedSnapshotCount = null;

  @SerializedName("deletedSnapshots")
  private List<ApiHdfsSnapshot> deletedSnapshots = null;

  @SerializedName("creationErrorCount")
  private java.math.BigDecimal creationErrorCount = null;

  @SerializedName("creationErrors")
  private List<ApiHdfsSnapshotError> creationErrors = null;

  @SerializedName("deletionErrorCount")
  private java.math.BigDecimal deletionErrorCount = null;

  @SerializedName("deletionErrors")
  private List<ApiHdfsSnapshotError> deletionErrors = null;

  public ApiHdfsSnapshotResult processedPathCount(java.math.BigDecimal processedPathCount) {
    this.processedPathCount = processedPathCount;
    return this;
  }

   /**
   * Number of processed paths.
   * @return processedPathCount
  **/
  @Schema(description = "Number of processed paths.")
  public java.math.BigDecimal getProcessedPathCount() {
    return processedPathCount;
  }

  public void setProcessedPathCount(java.math.BigDecimal processedPathCount) {
    this.processedPathCount = processedPathCount;
  }

  public ApiHdfsSnapshotResult processedPaths(List<String> processedPaths) {
    this.processedPaths = processedPaths;
    return this;
  }

  public ApiHdfsSnapshotResult addProcessedPathsItem(String processedPathsItem) {
    if (this.processedPaths == null) {
      this.processedPaths = new ArrayList<>();
    }
    this.processedPaths.add(processedPathsItem);
    return this;
  }

   /**
   * The list of processed paths. &lt;p/&gt; This is only available in the full view.
   * @return processedPaths
  **/
  @Schema(description = "The list of processed paths. <p/> This is only available in the full view.")
  public List<String> getProcessedPaths() {
    return processedPaths;
  }

  public void setProcessedPaths(List<String> processedPaths) {
    this.processedPaths = processedPaths;
  }

  public ApiHdfsSnapshotResult unprocessedPathCount(java.math.BigDecimal unprocessedPathCount) {
    this.unprocessedPathCount = unprocessedPathCount;
    return this;
  }

   /**
   * Number of unprocessed paths.
   * @return unprocessedPathCount
  **/
  @Schema(description = "Number of unprocessed paths.")
  public java.math.BigDecimal getUnprocessedPathCount() {
    return unprocessedPathCount;
  }

  public void setUnprocessedPathCount(java.math.BigDecimal unprocessedPathCount) {
    this.unprocessedPathCount = unprocessedPathCount;
  }

  public ApiHdfsSnapshotResult unprocessedPaths(List<String> unprocessedPaths) {
    this.unprocessedPaths = unprocessedPaths;
    return this;
  }

  public ApiHdfsSnapshotResult addUnprocessedPathsItem(String unprocessedPathsItem) {
    if (this.unprocessedPaths == null) {
      this.unprocessedPaths = new ArrayList<>();
    }
    this.unprocessedPaths.add(unprocessedPathsItem);
    return this;
  }

   /**
   * The list of unprocessed paths. Note that paths that are currently being processed will also be included in this list. &lt;p/&gt; This is only available in the full view.
   * @return unprocessedPaths
  **/
  @Schema(description = "The list of unprocessed paths. Note that paths that are currently being processed will also be included in this list. <p/> This is only available in the full view.")
  public List<String> getUnprocessedPaths() {
    return unprocessedPaths;
  }

  public void setUnprocessedPaths(List<String> unprocessedPaths) {
    this.unprocessedPaths = unprocessedPaths;
  }

  public ApiHdfsSnapshotResult createdSnapshotCount(java.math.BigDecimal createdSnapshotCount) {
    this.createdSnapshotCount = createdSnapshotCount;
    return this;
  }

   /**
   * Number of snapshots created.
   * @return createdSnapshotCount
  **/
  @Schema(description = "Number of snapshots created.")
  public java.math.BigDecimal getCreatedSnapshotCount() {
    return createdSnapshotCount;
  }

  public void setCreatedSnapshotCount(java.math.BigDecimal createdSnapshotCount) {
    this.createdSnapshotCount = createdSnapshotCount;
  }

  public ApiHdfsSnapshotResult createdSnapshots(List<ApiHdfsSnapshot> createdSnapshots) {
    this.createdSnapshots = createdSnapshots;
    return this;
  }

  public ApiHdfsSnapshotResult addCreatedSnapshotsItem(ApiHdfsSnapshot createdSnapshotsItem) {
    if (this.createdSnapshots == null) {
      this.createdSnapshots = new ArrayList<>();
    }
    this.createdSnapshots.add(createdSnapshotsItem);
    return this;
  }

   /**
   * List of snapshots created. &lt;p/&gt; This is only available in the full view.
   * @return createdSnapshots
  **/
  @Schema(description = "List of snapshots created. <p/> This is only available in the full view.")
  public List<ApiHdfsSnapshot> getCreatedSnapshots() {
    return createdSnapshots;
  }

  public void setCreatedSnapshots(List<ApiHdfsSnapshot> createdSnapshots) {
    this.createdSnapshots = createdSnapshots;
  }

  public ApiHdfsSnapshotResult deletedSnapshotCount(java.math.BigDecimal deletedSnapshotCount) {
    this.deletedSnapshotCount = deletedSnapshotCount;
    return this;
  }

   /**
   * Number of snapshots deleted.
   * @return deletedSnapshotCount
  **/
  @Schema(description = "Number of snapshots deleted.")
  public java.math.BigDecimal getDeletedSnapshotCount() {
    return deletedSnapshotCount;
  }

  public void setDeletedSnapshotCount(java.math.BigDecimal deletedSnapshotCount) {
    this.deletedSnapshotCount = deletedSnapshotCount;
  }

  public ApiHdfsSnapshotResult deletedSnapshots(List<ApiHdfsSnapshot> deletedSnapshots) {
    this.deletedSnapshots = deletedSnapshots;
    return this;
  }

  public ApiHdfsSnapshotResult addDeletedSnapshotsItem(ApiHdfsSnapshot deletedSnapshotsItem) {
    if (this.deletedSnapshots == null) {
      this.deletedSnapshots = new ArrayList<>();
    }
    this.deletedSnapshots.add(deletedSnapshotsItem);
    return this;
  }

   /**
   * List of snapshots deleted. &lt;p/&gt; This is only available in the full view.
   * @return deletedSnapshots
  **/
  @Schema(description = "List of snapshots deleted. <p/> This is only available in the full view.")
  public List<ApiHdfsSnapshot> getDeletedSnapshots() {
    return deletedSnapshots;
  }

  public void setDeletedSnapshots(List<ApiHdfsSnapshot> deletedSnapshots) {
    this.deletedSnapshots = deletedSnapshots;
  }

  public ApiHdfsSnapshotResult creationErrorCount(java.math.BigDecimal creationErrorCount) {
    this.creationErrorCount = creationErrorCount;
    return this;
  }

   /**
   * Number of errors detected when creating snapshots.
   * @return creationErrorCount
  **/
  @Schema(description = "Number of errors detected when creating snapshots.")
  public java.math.BigDecimal getCreationErrorCount() {
    return creationErrorCount;
  }

  public void setCreationErrorCount(java.math.BigDecimal creationErrorCount) {
    this.creationErrorCount = creationErrorCount;
  }

  public ApiHdfsSnapshotResult creationErrors(List<ApiHdfsSnapshotError> creationErrors) {
    this.creationErrors = creationErrors;
    return this;
  }

  public ApiHdfsSnapshotResult addCreationErrorsItem(ApiHdfsSnapshotError creationErrorsItem) {
    if (this.creationErrors == null) {
      this.creationErrors = new ArrayList<>();
    }
    this.creationErrors.add(creationErrorsItem);
    return this;
  }

   /**
   * List of errors encountered when creating snapshots. &lt;p/&gt; This is only available in the full view.
   * @return creationErrors
  **/
  @Schema(description = "List of errors encountered when creating snapshots. <p/> This is only available in the full view.")
  public List<ApiHdfsSnapshotError> getCreationErrors() {
    return creationErrors;
  }

  public void setCreationErrors(List<ApiHdfsSnapshotError> creationErrors) {
    this.creationErrors = creationErrors;
  }

  public ApiHdfsSnapshotResult deletionErrorCount(java.math.BigDecimal deletionErrorCount) {
    this.deletionErrorCount = deletionErrorCount;
    return this;
  }

   /**
   * Number of errors detected when deleting snapshots.
   * @return deletionErrorCount
  **/
  @Schema(description = "Number of errors detected when deleting snapshots.")
  public java.math.BigDecimal getDeletionErrorCount() {
    return deletionErrorCount;
  }

  public void setDeletionErrorCount(java.math.BigDecimal deletionErrorCount) {
    this.deletionErrorCount = deletionErrorCount;
  }

  public ApiHdfsSnapshotResult deletionErrors(List<ApiHdfsSnapshotError> deletionErrors) {
    this.deletionErrors = deletionErrors;
    return this;
  }

  public ApiHdfsSnapshotResult addDeletionErrorsItem(ApiHdfsSnapshotError deletionErrorsItem) {
    if (this.deletionErrors == null) {
      this.deletionErrors = new ArrayList<>();
    }
    this.deletionErrors.add(deletionErrorsItem);
    return this;
  }

   /**
   * List of errors encountered when deleting snapshots. &lt;p/&gt; This is only available in the full view.
   * @return deletionErrors
  **/
  @Schema(description = "List of errors encountered when deleting snapshots. <p/> This is only available in the full view.")
  public List<ApiHdfsSnapshotError> getDeletionErrors() {
    return deletionErrors;
  }

  public void setDeletionErrors(List<ApiHdfsSnapshotError> deletionErrors) {
    this.deletionErrors = deletionErrors;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiHdfsSnapshotResult apiHdfsSnapshotResult = (ApiHdfsSnapshotResult) o;
    return Objects.equals(this.processedPathCount, apiHdfsSnapshotResult.processedPathCount) &&
        Objects.equals(this.processedPaths, apiHdfsSnapshotResult.processedPaths) &&
        Objects.equals(this.unprocessedPathCount, apiHdfsSnapshotResult.unprocessedPathCount) &&
        Objects.equals(this.unprocessedPaths, apiHdfsSnapshotResult.unprocessedPaths) &&
        Objects.equals(this.createdSnapshotCount, apiHdfsSnapshotResult.createdSnapshotCount) &&
        Objects.equals(this.createdSnapshots, apiHdfsSnapshotResult.createdSnapshots) &&
        Objects.equals(this.deletedSnapshotCount, apiHdfsSnapshotResult.deletedSnapshotCount) &&
        Objects.equals(this.deletedSnapshots, apiHdfsSnapshotResult.deletedSnapshots) &&
        Objects.equals(this.creationErrorCount, apiHdfsSnapshotResult.creationErrorCount) &&
        Objects.equals(this.creationErrors, apiHdfsSnapshotResult.creationErrors) &&
        Objects.equals(this.deletionErrorCount, apiHdfsSnapshotResult.deletionErrorCount) &&
        Objects.equals(this.deletionErrors, apiHdfsSnapshotResult.deletionErrors);
  }

  @Override
  public int hashCode() {
    return Objects.hash(processedPathCount, processedPaths, unprocessedPathCount, unprocessedPaths, createdSnapshotCount, createdSnapshots, deletedSnapshotCount, deletedSnapshots, creationErrorCount, creationErrors, deletionErrorCount, deletionErrors);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiHdfsSnapshotResult {\n");
    
    sb.append("    processedPathCount: ").append(toIndentedString(processedPathCount)).append("\n");
    sb.append("    processedPaths: ").append(toIndentedString(processedPaths)).append("\n");
    sb.append("    unprocessedPathCount: ").append(toIndentedString(unprocessedPathCount)).append("\n");
    sb.append("    unprocessedPaths: ").append(toIndentedString(unprocessedPaths)).append("\n");
    sb.append("    createdSnapshotCount: ").append(toIndentedString(createdSnapshotCount)).append("\n");
    sb.append("    createdSnapshots: ").append(toIndentedString(createdSnapshots)).append("\n");
    sb.append("    deletedSnapshotCount: ").append(toIndentedString(deletedSnapshotCount)).append("\n");
    sb.append("    deletedSnapshots: ").append(toIndentedString(deletedSnapshots)).append("\n");
    sb.append("    creationErrorCount: ").append(toIndentedString(creationErrorCount)).append("\n");
    sb.append("    creationErrors: ").append(toIndentedString(creationErrors)).append("\n");
    sb.append("    deletionErrorCount: ").append(toIndentedString(deletionErrorCount)).append("\n");
    sb.append("    deletionErrors: ").append(toIndentedString(deletionErrors)).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(java.lang.Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}
