/*
 * 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.ApiOzoneSnapshotDetails;
import com.cloudera.api.swagger.model.ApiOzoneSnapshotError;
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 Ozone snapshot command.
 */
@Schema(description = "Detailed information about an Ozone snapshot command.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

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

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

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

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

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

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

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

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

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

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

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

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

  public ApiOzoneSnapshotResult processedBucketCount(java.math.BigDecimal processedBucketCount) {
    this.processedBucketCount = processedBucketCount;
    return this;
  }

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

  public void setProcessedBucketCount(java.math.BigDecimal processedBucketCount) {
    this.processedBucketCount = processedBucketCount;
  }

  public ApiOzoneSnapshotResult processedBuckets(List<String> processedBuckets) {
    this.processedBuckets = processedBuckets;
    return this;
  }

  public ApiOzoneSnapshotResult addProcessedBucketsItem(String processedBucketsItem) {
    if (this.processedBuckets == null) {
      this.processedBuckets = new ArrayList<>();
    }
    this.processedBuckets.add(processedBucketsItem);
    return this;
  }

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

  public void setProcessedBuckets(List<String> processedBuckets) {
    this.processedBuckets = processedBuckets;
  }

  public ApiOzoneSnapshotResult unprocessedBucketCount(java.math.BigDecimal unprocessedBucketCount) {
    this.unprocessedBucketCount = unprocessedBucketCount;
    return this;
  }

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

  public void setUnprocessedBucketCount(java.math.BigDecimal unprocessedBucketCount) {
    this.unprocessedBucketCount = unprocessedBucketCount;
  }

  public ApiOzoneSnapshotResult unprocessedBuckets(List<String> unprocessedBuckets) {
    this.unprocessedBuckets = unprocessedBuckets;
    return this;
  }

  public ApiOzoneSnapshotResult addUnprocessedBucketsItem(String unprocessedBucketsItem) {
    if (this.unprocessedBuckets == null) {
      this.unprocessedBuckets = new ArrayList<>();
    }
    this.unprocessedBuckets.add(unprocessedBucketsItem);
    return this;
  }

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

  public void setUnprocessedBuckets(List<String> unprocessedBuckets) {
    this.unprocessedBuckets = unprocessedBuckets;
  }

  public ApiOzoneSnapshotResult 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 ApiOzoneSnapshotResult createdSnapshots(List<ApiOzoneSnapshotDetails> createdSnapshots) {
    this.createdSnapshots = createdSnapshots;
    return this;
  }

  public ApiOzoneSnapshotResult addCreatedSnapshotsItem(ApiOzoneSnapshotDetails 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<ApiOzoneSnapshotDetails> getCreatedSnapshots() {
    return createdSnapshots;
  }

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

  public ApiOzoneSnapshotResult 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 ApiOzoneSnapshotResult deletedSnapshots(List<ApiOzoneSnapshotDetails> deletedSnapshots) {
    this.deletedSnapshots = deletedSnapshots;
    return this;
  }

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

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

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

  public ApiOzoneSnapshotResult 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 ApiOzoneSnapshotResult creationErrors(List<ApiOzoneSnapshotError> creationErrors) {
    this.creationErrors = creationErrors;
    return this;
  }

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

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

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

  public ApiOzoneSnapshotResult 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 ApiOzoneSnapshotResult deletionErrors(List<ApiOzoneSnapshotError> deletionErrors) {
    this.deletionErrors = deletionErrors;
    return this;
  }

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

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

  public void setDeletionErrors(List<ApiOzoneSnapshotError> 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;
    }
    ApiOzoneSnapshotResult apiOzoneSnapshotResult = (ApiOzoneSnapshotResult) o;
    return Objects.equals(this.processedBucketCount, apiOzoneSnapshotResult.processedBucketCount) &&
        Objects.equals(this.processedBuckets, apiOzoneSnapshotResult.processedBuckets) &&
        Objects.equals(this.unprocessedBucketCount, apiOzoneSnapshotResult.unprocessedBucketCount) &&
        Objects.equals(this.unprocessedBuckets, apiOzoneSnapshotResult.unprocessedBuckets) &&
        Objects.equals(this.createdSnapshotCount, apiOzoneSnapshotResult.createdSnapshotCount) &&
        Objects.equals(this.createdSnapshots, apiOzoneSnapshotResult.createdSnapshots) &&
        Objects.equals(this.deletedSnapshotCount, apiOzoneSnapshotResult.deletedSnapshotCount) &&
        Objects.equals(this.deletedSnapshots, apiOzoneSnapshotResult.deletedSnapshots) &&
        Objects.equals(this.creationErrorCount, apiOzoneSnapshotResult.creationErrorCount) &&
        Objects.equals(this.creationErrors, apiOzoneSnapshotResult.creationErrors) &&
        Objects.equals(this.deletionErrorCount, apiOzoneSnapshotResult.deletionErrorCount) &&
        Objects.equals(this.deletionErrors, apiOzoneSnapshotResult.deletionErrors);
  }

  @Override
  public int hashCode() {
    return Objects.hash(processedBucketCount, processedBuckets, unprocessedBucketCount, unprocessedBuckets, createdSnapshotCount, createdSnapshots, deletedSnapshotCount, deletedSnapshots, creationErrorCount, creationErrors, deletionErrorCount, deletionErrors);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiOzoneSnapshotResult {\n");
    
    sb.append("    processedBucketCount: ").append(toIndentedString(processedBucketCount)).append("\n");
    sb.append("    processedBuckets: ").append(toIndentedString(processedBuckets)).append("\n");
    sb.append("    unprocessedBucketCount: ").append(toIndentedString(unprocessedBucketCount)).append("\n");
    sb.append("    unprocessedBuckets: ").append(toIndentedString(unprocessedBuckets)).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    ");
  }

}
