/*
 * 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.ApiHdfsReplicationResult;
import com.cloudera.api.swagger.model.ApiHiveReplicationError;
import com.cloudera.api.swagger.model.ApiHiveTable;
import com.cloudera.api.swagger.model.ApiHiveUDF;
import com.cloudera.api.swagger.model.ApiImpalaUDF;
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 a Hive replication job.
 */
@Schema(description = "Detailed information about a Hive replication job.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiHiveReplicationResult {
  @SerializedName("phase")
  private String phase = null;

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

  @SerializedName("tables")
  private List<ApiHiveTable> tables = null;

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

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

  @SerializedName("impalaUDFs")
  private List<ApiImpalaUDF> impalaUDFs = null;

  @SerializedName("hiveUDFs")
  private List<ApiHiveUDF> hiveUDFs = null;

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

  @SerializedName("errors")
  private List<ApiHiveReplicationError> errors = null;

  @SerializedName("dataReplicationResult")
  private ApiHdfsReplicationResult dataReplicationResult = null;

  @SerializedName("dryRun")
  private Boolean dryRun = null;

  @SerializedName("runAsUser")
  private String runAsUser = null;

  @SerializedName("runOnSourceAsUser")
  private String runOnSourceAsUser = null;

  @SerializedName("logPath")
  private String logPath = null;

  @SerializedName("directoryForMetadata")
  private String directoryForMetadata = null;

  @SerializedName("statsAvailable")
  private Boolean statsAvailable = null;

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

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

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

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

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

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

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

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

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

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

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

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

  public ApiHiveReplicationResult phase(String phase) {
    this.phase = phase;
    return this;
  }

   /**
   * Phase the replication is in. &lt;p/&gt; If the replication job is still active, this will contain a string describing the current phase. This will be one of: EXPORT, DATA or IMPORT, for, respectively, exporting the source metastore information, replicating table data (if configured), and importing metastore information in the target. &lt;p/&gt; This value will not be present if the replication is not active. &lt;p/&gt; Available since API v4.
   * @return phase
  **/
  @Schema(description = "Phase the replication is in. <p/> If the replication job is still active, this will contain a string describing the current phase. This will be one of: EXPORT, DATA or IMPORT, for, respectively, exporting the source metastore information, replicating table data (if configured), and importing metastore information in the target. <p/> This value will not be present if the replication is not active. <p/> Available since API v4.")
  public String getPhase() {
    return phase;
  }

  public void setPhase(String phase) {
    this.phase = phase;
  }

  public ApiHiveReplicationResult tableCount(java.math.BigDecimal tableCount) {
    this.tableCount = tableCount;
    return this;
  }

   /**
   * Number of tables that were successfully replicated. Available since API v4.
   * @return tableCount
  **/
  @Schema(description = "Number of tables that were successfully replicated. Available since API v4.")
  public java.math.BigDecimal getTableCount() {
    return tableCount;
  }

  public void setTableCount(java.math.BigDecimal tableCount) {
    this.tableCount = tableCount;
  }

  public ApiHiveReplicationResult tables(List<ApiHiveTable> tables) {
    this.tables = tables;
    return this;
  }

  public ApiHiveReplicationResult addTablesItem(ApiHiveTable tablesItem) {
    if (this.tables == null) {
      this.tables = new ArrayList<>();
    }
    this.tables.add(tablesItem);
    return this;
  }

   /**
   * The list of tables successfully replicated. &lt;p/&gt; Since API v4, this is only available in the full view.
   * @return tables
  **/
  @Schema(description = "The list of tables successfully replicated. <p/> Since API v4, this is only available in the full view.")
  public List<ApiHiveTable> getTables() {
    return tables;
  }

  public void setTables(List<ApiHiveTable> tables) {
    this.tables = tables;
  }

  public ApiHiveReplicationResult impalaUDFCount(java.math.BigDecimal impalaUDFCount) {
    this.impalaUDFCount = impalaUDFCount;
    return this;
  }

   /**
   * Number of impala UDFs that were successfully replicated. Available since API v6.
   * @return impalaUDFCount
  **/
  @Schema(description = "Number of impala UDFs that were successfully replicated. Available since API v6.")
  public java.math.BigDecimal getImpalaUDFCount() {
    return impalaUDFCount;
  }

  public void setImpalaUDFCount(java.math.BigDecimal impalaUDFCount) {
    this.impalaUDFCount = impalaUDFCount;
  }

  public ApiHiveReplicationResult hiveUDFCount(java.math.BigDecimal hiveUDFCount) {
    this.hiveUDFCount = hiveUDFCount;
    return this;
  }

   /**
   * Number of hive UDFs that were successfully replicated. Available since API v14.
   * @return hiveUDFCount
  **/
  @Schema(description = "Number of hive UDFs that were successfully replicated. Available since API v14.")
  public java.math.BigDecimal getHiveUDFCount() {
    return hiveUDFCount;
  }

  public void setHiveUDFCount(java.math.BigDecimal hiveUDFCount) {
    this.hiveUDFCount = hiveUDFCount;
  }

  public ApiHiveReplicationResult impalaUDFs(List<ApiImpalaUDF> impalaUDFs) {
    this.impalaUDFs = impalaUDFs;
    return this;
  }

  public ApiHiveReplicationResult addImpalaUDFsItem(ApiImpalaUDF impalaUDFsItem) {
    if (this.impalaUDFs == null) {
      this.impalaUDFs = new ArrayList<>();
    }
    this.impalaUDFs.add(impalaUDFsItem);
    return this;
  }

   /**
   * The list of Impala UDFs successfully replicated. Available since API v6 in the full view.
   * @return impalaUDFs
  **/
  @Schema(description = "The list of Impala UDFs successfully replicated. Available since API v6 in the full view.")
  public List<ApiImpalaUDF> getImpalaUDFs() {
    return impalaUDFs;
  }

  public void setImpalaUDFs(List<ApiImpalaUDF> impalaUDFs) {
    this.impalaUDFs = impalaUDFs;
  }

  public ApiHiveReplicationResult hiveUDFs(List<ApiHiveUDF> hiveUDFs) {
    this.hiveUDFs = hiveUDFs;
    return this;
  }

  public ApiHiveReplicationResult addHiveUDFsItem(ApiHiveUDF hiveUDFsItem) {
    if (this.hiveUDFs == null) {
      this.hiveUDFs = new ArrayList<>();
    }
    this.hiveUDFs.add(hiveUDFsItem);
    return this;
  }

   /**
   * The list of Impala UDFs successfully replicated. Available since API v6 in the full view.
   * @return hiveUDFs
  **/
  @Schema(description = "The list of Impala UDFs successfully replicated. Available since API v6 in the full view.")
  public List<ApiHiveUDF> getHiveUDFs() {
    return hiveUDFs;
  }

  public void setHiveUDFs(List<ApiHiveUDF> hiveUDFs) {
    this.hiveUDFs = hiveUDFs;
  }

  public ApiHiveReplicationResult errorCount(java.math.BigDecimal errorCount) {
    this.errorCount = errorCount;
    return this;
  }

   /**
   * Number of errors detected during replication job. Available since API v4.
   * @return errorCount
  **/
  @Schema(description = "Number of errors detected during replication job. Available since API v4.")
  public java.math.BigDecimal getErrorCount() {
    return errorCount;
  }

  public void setErrorCount(java.math.BigDecimal errorCount) {
    this.errorCount = errorCount;
  }

  public ApiHiveReplicationResult errors(List<ApiHiveReplicationError> errors) {
    this.errors = errors;
    return this;
  }

  public ApiHiveReplicationResult addErrorsItem(ApiHiveReplicationError errorsItem) {
    if (this.errors == null) {
      this.errors = new ArrayList<>();
    }
    this.errors.add(errorsItem);
    return this;
  }

   /**
   * List of errors encountered during replication. &lt;p/&gt; Since API v4, this is only available in the full view.
   * @return errors
  **/
  @Schema(description = "List of errors encountered during replication. <p/> Since API v4, this is only available in the full view.")
  public List<ApiHiveReplicationError> getErrors() {
    return errors;
  }

  public void setErrors(List<ApiHiveReplicationError> errors) {
    this.errors = errors;
  }

  public ApiHiveReplicationResult dataReplicationResult(ApiHdfsReplicationResult dataReplicationResult) {
    this.dataReplicationResult = dataReplicationResult;
    return this;
  }

   /**
   * Get dataReplicationResult
   * @return dataReplicationResult
  **/
  @Schema(description = "")
  public ApiHdfsReplicationResult getDataReplicationResult() {
    return dataReplicationResult;
  }

  public void setDataReplicationResult(ApiHdfsReplicationResult dataReplicationResult) {
    this.dataReplicationResult = dataReplicationResult;
  }

  public ApiHiveReplicationResult dryRun(Boolean dryRun) {
    this.dryRun = dryRun;
    return this;
  }

   /**
   * Whether this was a dry run.
   * @return dryRun
  **/
  @Schema(description = "Whether this was a dry run.")
  public Boolean isDryRun() {
    return dryRun;
  }

  public void setDryRun(Boolean dryRun) {
    this.dryRun = dryRun;
  }

  public ApiHiveReplicationResult runAsUser(String runAsUser) {
    this.runAsUser = runAsUser;
    return this;
  }

   /**
   * Name of the of proxy user, if any. Available since API v11.
   * @return runAsUser
  **/
  @Schema(description = "Name of the of proxy user, if any. Available since API v11.")
  public String getRunAsUser() {
    return runAsUser;
  }

  public void setRunAsUser(String runAsUser) {
    this.runAsUser = runAsUser;
  }

  public ApiHiveReplicationResult runOnSourceAsUser(String runOnSourceAsUser) {
    this.runOnSourceAsUser = runOnSourceAsUser;
    return this;
  }

   /**
   * Name of the source proxy user, if any. Available since API v18.
   * @return runOnSourceAsUser
  **/
  @Schema(description = "Name of the source proxy user, if any. Available since API v18.")
  public String getRunOnSourceAsUser() {
    return runOnSourceAsUser;
  }

  public void setRunOnSourceAsUser(String runOnSourceAsUser) {
    this.runOnSourceAsUser = runOnSourceAsUser;
  }

  public ApiHiveReplicationResult logPath(String logPath) {
    this.logPath = logPath;
    return this;
  }

   /**
   * Returns HDFS path of DistCp execution log files. Available since API v33.
   * @return logPath
  **/
  @Schema(description = "Returns HDFS path of DistCp execution log files. Available since API v33.")
  public String getLogPath() {
    return logPath;
  }

  public void setLogPath(String logPath) {
    this.logPath = logPath;
  }

  public ApiHiveReplicationResult directoryForMetadata(String directoryForMetadata) {
    this.directoryForMetadata = directoryForMetadata;
    return this;
  }

   /**
   * Returns HDFS path of export file for Hive replication. Available since API v33.
   * @return directoryForMetadata
  **/
  @Schema(description = "Returns HDFS path of export file for Hive replication. Available since API v33.")
  public String getDirectoryForMetadata() {
    return directoryForMetadata;
  }

  public void setDirectoryForMetadata(String directoryForMetadata) {
    this.directoryForMetadata = directoryForMetadata;
  }

  public ApiHiveReplicationResult statsAvailable(Boolean statsAvailable) {
    this.statsAvailable = statsAvailable;
    return this;
  }

   /**
   * Whether stats are available to display or not. Available since API v19.
   * @return statsAvailable
  **/
  @Schema(description = "Whether stats are available to display or not. Available since API v19.")
  public Boolean isStatsAvailable() {
    return statsAvailable;
  }

  public void setStatsAvailable(Boolean statsAvailable) {
    this.statsAvailable = statsAvailable;
  }

  public ApiHiveReplicationResult dbProcessed(java.math.BigDecimal dbProcessed) {
    this.dbProcessed = dbProcessed;
    return this;
  }

   /**
   * Number of Db&#x27;s Imported/Exported. Available since API v19.
   * @return dbProcessed
  **/
  @Schema(description = "Number of Db's Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getDbProcessed() {
    return dbProcessed;
  }

  public void setDbProcessed(java.math.BigDecimal dbProcessed) {
    this.dbProcessed = dbProcessed;
  }

  public ApiHiveReplicationResult tableProcessed(java.math.BigDecimal tableProcessed) {
    this.tableProcessed = tableProcessed;
    return this;
  }

   /**
   * Number of Tables Imported/Exported. Available since API v19.
   * @return tableProcessed
  **/
  @Schema(description = "Number of Tables Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getTableProcessed() {
    return tableProcessed;
  }

  public void setTableProcessed(java.math.BigDecimal tableProcessed) {
    this.tableProcessed = tableProcessed;
  }

  public ApiHiveReplicationResult partitionProcessed(java.math.BigDecimal partitionProcessed) {
    this.partitionProcessed = partitionProcessed;
    return this;
  }

   /**
   * Number of Partitions Imported/Exported. Available since API v19.
   * @return partitionProcessed
  **/
  @Schema(description = "Number of Partitions Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getPartitionProcessed() {
    return partitionProcessed;
  }

  public void setPartitionProcessed(java.math.BigDecimal partitionProcessed) {
    this.partitionProcessed = partitionProcessed;
  }

  public ApiHiveReplicationResult functionProcessed(java.math.BigDecimal functionProcessed) {
    this.functionProcessed = functionProcessed;
    return this;
  }

   /**
   * Number of Functions Imported/Exported. Available since API v19.
   * @return functionProcessed
  **/
  @Schema(description = "Number of Functions Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getFunctionProcessed() {
    return functionProcessed;
  }

  public void setFunctionProcessed(java.math.BigDecimal functionProcessed) {
    this.functionProcessed = functionProcessed;
  }

  public ApiHiveReplicationResult indexProcessed(java.math.BigDecimal indexProcessed) {
    this.indexProcessed = indexProcessed;
    return this;
  }

   /**
   * Number of Indexes Imported/Exported. Available since API v19.
   * @return indexProcessed
  **/
  @Schema(description = "Number of Indexes Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getIndexProcessed() {
    return indexProcessed;
  }

  public void setIndexProcessed(java.math.BigDecimal indexProcessed) {
    this.indexProcessed = indexProcessed;
  }

  public ApiHiveReplicationResult statsProcessed(java.math.BigDecimal statsProcessed) {
    this.statsProcessed = statsProcessed;
    return this;
  }

   /**
   * Number of Table and Partitions Statistics Imported/Exported. Available since API v19.
   * @return statsProcessed
  **/
  @Schema(description = "Number of Table and Partitions Statistics Imported/Exported. Available since API v19.")
  public java.math.BigDecimal getStatsProcessed() {
    return statsProcessed;
  }

  public void setStatsProcessed(java.math.BigDecimal statsProcessed) {
    this.statsProcessed = statsProcessed;
  }

  public ApiHiveReplicationResult dbExpected(java.math.BigDecimal dbExpected) {
    this.dbExpected = dbExpected;
    return this;
  }

   /**
   * Number of Db&#x27;s Expected. Available since API v19.
   * @return dbExpected
  **/
  @Schema(description = "Number of Db's Expected. Available since API v19.")
  public java.math.BigDecimal getDbExpected() {
    return dbExpected;
  }

  public void setDbExpected(java.math.BigDecimal dbExpected) {
    this.dbExpected = dbExpected;
  }

  public ApiHiveReplicationResult tableExpected(java.math.BigDecimal tableExpected) {
    this.tableExpected = tableExpected;
    return this;
  }

   /**
   * Number of Tables Expected. Available since API v19.
   * @return tableExpected
  **/
  @Schema(description = "Number of Tables Expected. Available since API v19.")
  public java.math.BigDecimal getTableExpected() {
    return tableExpected;
  }

  public void setTableExpected(java.math.BigDecimal tableExpected) {
    this.tableExpected = tableExpected;
  }

  public ApiHiveReplicationResult partitionExpected(java.math.BigDecimal partitionExpected) {
    this.partitionExpected = partitionExpected;
    return this;
  }

   /**
   * Number of Partitions Expected. Available since API v19.
   * @return partitionExpected
  **/
  @Schema(description = "Number of Partitions Expected. Available since API v19.")
  public java.math.BigDecimal getPartitionExpected() {
    return partitionExpected;
  }

  public void setPartitionExpected(java.math.BigDecimal partitionExpected) {
    this.partitionExpected = partitionExpected;
  }

  public ApiHiveReplicationResult functionExpected(java.math.BigDecimal functionExpected) {
    this.functionExpected = functionExpected;
    return this;
  }

   /**
   * Number of Functions Expected. Available since API v19.
   * @return functionExpected
  **/
  @Schema(description = "Number of Functions Expected. Available since API v19.")
  public java.math.BigDecimal getFunctionExpected() {
    return functionExpected;
  }

  public void setFunctionExpected(java.math.BigDecimal functionExpected) {
    this.functionExpected = functionExpected;
  }

  public ApiHiveReplicationResult indexExpected(java.math.BigDecimal indexExpected) {
    this.indexExpected = indexExpected;
    return this;
  }

   /**
   * Number of Indexes Expected. Available since API v19.
   * @return indexExpected
  **/
  @Schema(description = "Number of Indexes Expected. Available since API v19.")
  public java.math.BigDecimal getIndexExpected() {
    return indexExpected;
  }

  public void setIndexExpected(java.math.BigDecimal indexExpected) {
    this.indexExpected = indexExpected;
  }

  public ApiHiveReplicationResult statsExpected(java.math.BigDecimal statsExpected) {
    this.statsExpected = statsExpected;
    return this;
  }

   /**
   * Number of Table and Partition Statistics Expected. Available since API v19.
   * @return statsExpected
  **/
  @Schema(description = "Number of Table and Partition Statistics Expected. Available since API v19.")
  public java.math.BigDecimal getStatsExpected() {
    return statsExpected;
  }

  public void setStatsExpected(java.math.BigDecimal statsExpected) {
    this.statsExpected = statsExpected;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiHiveReplicationResult apiHiveReplicationResult = (ApiHiveReplicationResult) o;
    return Objects.equals(this.phase, apiHiveReplicationResult.phase) &&
        Objects.equals(this.tableCount, apiHiveReplicationResult.tableCount) &&
        Objects.equals(this.tables, apiHiveReplicationResult.tables) &&
        Objects.equals(this.impalaUDFCount, apiHiveReplicationResult.impalaUDFCount) &&
        Objects.equals(this.hiveUDFCount, apiHiveReplicationResult.hiveUDFCount) &&
        Objects.equals(this.impalaUDFs, apiHiveReplicationResult.impalaUDFs) &&
        Objects.equals(this.hiveUDFs, apiHiveReplicationResult.hiveUDFs) &&
        Objects.equals(this.errorCount, apiHiveReplicationResult.errorCount) &&
        Objects.equals(this.errors, apiHiveReplicationResult.errors) &&
        Objects.equals(this.dataReplicationResult, apiHiveReplicationResult.dataReplicationResult) &&
        Objects.equals(this.dryRun, apiHiveReplicationResult.dryRun) &&
        Objects.equals(this.runAsUser, apiHiveReplicationResult.runAsUser) &&
        Objects.equals(this.runOnSourceAsUser, apiHiveReplicationResult.runOnSourceAsUser) &&
        Objects.equals(this.logPath, apiHiveReplicationResult.logPath) &&
        Objects.equals(this.directoryForMetadata, apiHiveReplicationResult.directoryForMetadata) &&
        Objects.equals(this.statsAvailable, apiHiveReplicationResult.statsAvailable) &&
        Objects.equals(this.dbProcessed, apiHiveReplicationResult.dbProcessed) &&
        Objects.equals(this.tableProcessed, apiHiveReplicationResult.tableProcessed) &&
        Objects.equals(this.partitionProcessed, apiHiveReplicationResult.partitionProcessed) &&
        Objects.equals(this.functionProcessed, apiHiveReplicationResult.functionProcessed) &&
        Objects.equals(this.indexProcessed, apiHiveReplicationResult.indexProcessed) &&
        Objects.equals(this.statsProcessed, apiHiveReplicationResult.statsProcessed) &&
        Objects.equals(this.dbExpected, apiHiveReplicationResult.dbExpected) &&
        Objects.equals(this.tableExpected, apiHiveReplicationResult.tableExpected) &&
        Objects.equals(this.partitionExpected, apiHiveReplicationResult.partitionExpected) &&
        Objects.equals(this.functionExpected, apiHiveReplicationResult.functionExpected) &&
        Objects.equals(this.indexExpected, apiHiveReplicationResult.indexExpected) &&
        Objects.equals(this.statsExpected, apiHiveReplicationResult.statsExpected);
  }

  @Override
  public int hashCode() {
    return Objects.hash(phase, tableCount, tables, impalaUDFCount, hiveUDFCount, impalaUDFs, hiveUDFs, errorCount, errors, dataReplicationResult, dryRun, runAsUser, runOnSourceAsUser, logPath, directoryForMetadata, statsAvailable, dbProcessed, tableProcessed, partitionProcessed, functionProcessed, indexProcessed, statsProcessed, dbExpected, tableExpected, partitionExpected, functionExpected, indexExpected, statsExpected);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiHiveReplicationResult {\n");
    
    sb.append("    phase: ").append(toIndentedString(phase)).append("\n");
    sb.append("    tableCount: ").append(toIndentedString(tableCount)).append("\n");
    sb.append("    tables: ").append(toIndentedString(tables)).append("\n");
    sb.append("    impalaUDFCount: ").append(toIndentedString(impalaUDFCount)).append("\n");
    sb.append("    hiveUDFCount: ").append(toIndentedString(hiveUDFCount)).append("\n");
    sb.append("    impalaUDFs: ").append(toIndentedString(impalaUDFs)).append("\n");
    sb.append("    hiveUDFs: ").append(toIndentedString(hiveUDFs)).append("\n");
    sb.append("    errorCount: ").append(toIndentedString(errorCount)).append("\n");
    sb.append("    errors: ").append(toIndentedString(errors)).append("\n");
    sb.append("    dataReplicationResult: ").append(toIndentedString(dataReplicationResult)).append("\n");
    sb.append("    dryRun: ").append(toIndentedString(dryRun)).append("\n");
    sb.append("    runAsUser: ").append(toIndentedString(runAsUser)).append("\n");
    sb.append("    runOnSourceAsUser: ").append(toIndentedString(runOnSourceAsUser)).append("\n");
    sb.append("    logPath: ").append(toIndentedString(logPath)).append("\n");
    sb.append("    directoryForMetadata: ").append(toIndentedString(directoryForMetadata)).append("\n");
    sb.append("    statsAvailable: ").append(toIndentedString(statsAvailable)).append("\n");
    sb.append("    dbProcessed: ").append(toIndentedString(dbProcessed)).append("\n");
    sb.append("    tableProcessed: ").append(toIndentedString(tableProcessed)).append("\n");
    sb.append("    partitionProcessed: ").append(toIndentedString(partitionProcessed)).append("\n");
    sb.append("    functionProcessed: ").append(toIndentedString(functionProcessed)).append("\n");
    sb.append("    indexProcessed: ").append(toIndentedString(indexProcessed)).append("\n");
    sb.append("    statsProcessed: ").append(toIndentedString(statsProcessed)).append("\n");
    sb.append("    dbExpected: ").append(toIndentedString(dbExpected)).append("\n");
    sb.append("    tableExpected: ").append(toIndentedString(tableExpected)).append("\n");
    sb.append("    partitionExpected: ").append(toIndentedString(partitionExpected)).append("\n");
    sb.append("    functionExpected: ").append(toIndentedString(functionExpected)).append("\n");
    sb.append("    indexExpected: ").append(toIndentedString(indexExpected)).append("\n");
    sb.append("    statsExpected: ").append(toIndentedString(statsExpected)).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    ");
  }

}
