/*
 * 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.kubernetes.autoscaling.models;

import java.util.Objects;
import com.google.gson.annotations.SerializedName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * Data of the checkpoint.
 */
@ApiModel(description = "Data of the checkpoint.")
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2022-10-02T17:31:04.907Z[Etc/UTC]")
public class V1beta2VerticalPodAutoscalerCheckpointStatus {
  public static final String SERIALIZED_NAME_CPU_HISTOGRAM = "cpuHistogram";
  @SerializedName(SERIALIZED_NAME_CPU_HISTOGRAM)
  private V1beta2VerticalPodAutoscalerCheckpointStatusCpuHistogram cpuHistogram;

  public static final String SERIALIZED_NAME_FIRST_SAMPLE_START = "firstSampleStart";
  @SerializedName(SERIALIZED_NAME_FIRST_SAMPLE_START)
  private Object firstSampleStart;

  public static final String SERIALIZED_NAME_LAST_SAMPLE_START = "lastSampleStart";
  @SerializedName(SERIALIZED_NAME_LAST_SAMPLE_START)
  private Object lastSampleStart;

  public static final String SERIALIZED_NAME_LAST_UPDATE_TIME = "lastUpdateTime";
  @SerializedName(SERIALIZED_NAME_LAST_UPDATE_TIME)
  private Object lastUpdateTime;

  public static final String SERIALIZED_NAME_MEMORY_HISTOGRAM = "memoryHistogram";
  @SerializedName(SERIALIZED_NAME_MEMORY_HISTOGRAM)
  private V1beta2VerticalPodAutoscalerCheckpointStatusMemoryHistogram memoryHistogram;

  public static final String SERIALIZED_NAME_TOTAL_SAMPLES_COUNT = "totalSamplesCount";
  @SerializedName(SERIALIZED_NAME_TOTAL_SAMPLES_COUNT)
  private Integer totalSamplesCount;

  public static final String SERIALIZED_NAME_VERSION = "version";
  @SerializedName(SERIALIZED_NAME_VERSION)
  private String version;


  public V1beta2VerticalPodAutoscalerCheckpointStatus cpuHistogram(V1beta2VerticalPodAutoscalerCheckpointStatusCpuHistogram cpuHistogram) {

    this.cpuHistogram = cpuHistogram;
    return this;
  }

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

  public V1beta2VerticalPodAutoscalerCheckpointStatusCpuHistogram getCpuHistogram() {
    return cpuHistogram;
  }


  public void setCpuHistogram(V1beta2VerticalPodAutoscalerCheckpointStatusCpuHistogram cpuHistogram) {
    this.cpuHistogram = cpuHistogram;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus firstSampleStart(Object firstSampleStart) {

    this.firstSampleStart = firstSampleStart;
    return this;
  }

   /**
   * Timestamp of the fist sample from the histograms.
   * @return firstSampleStart
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Timestamp of the fist sample from the histograms.")

  public Object getFirstSampleStart() {
    return firstSampleStart;
  }


  public void setFirstSampleStart(Object firstSampleStart) {
    this.firstSampleStart = firstSampleStart;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus lastSampleStart(Object lastSampleStart) {

    this.lastSampleStart = lastSampleStart;
    return this;
  }

   /**
   * Timestamp of the last sample from the histograms.
   * @return lastSampleStart
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Timestamp of the last sample from the histograms.")

  public Object getLastSampleStart() {
    return lastSampleStart;
  }


  public void setLastSampleStart(Object lastSampleStart) {
    this.lastSampleStart = lastSampleStart;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus lastUpdateTime(Object lastUpdateTime) {

    this.lastUpdateTime = lastUpdateTime;
    return this;
  }

   /**
   * The time when the status was last refreshed.
   * @return lastUpdateTime
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "The time when the status was last refreshed.")

  public Object getLastUpdateTime() {
    return lastUpdateTime;
  }


  public void setLastUpdateTime(Object lastUpdateTime) {
    this.lastUpdateTime = lastUpdateTime;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus memoryHistogram(V1beta2VerticalPodAutoscalerCheckpointStatusMemoryHistogram memoryHistogram) {

    this.memoryHistogram = memoryHistogram;
    return this;
  }

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

  public V1beta2VerticalPodAutoscalerCheckpointStatusMemoryHistogram getMemoryHistogram() {
    return memoryHistogram;
  }


  public void setMemoryHistogram(V1beta2VerticalPodAutoscalerCheckpointStatusMemoryHistogram memoryHistogram) {
    this.memoryHistogram = memoryHistogram;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus totalSamplesCount(Integer totalSamplesCount) {

    this.totalSamplesCount = totalSamplesCount;
    return this;
  }

   /**
   * Total number of samples in the histograms.
   * @return totalSamplesCount
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Total number of samples in the histograms.")

  public Integer getTotalSamplesCount() {
    return totalSamplesCount;
  }


  public void setTotalSamplesCount(Integer totalSamplesCount) {
    this.totalSamplesCount = totalSamplesCount;
  }


  public V1beta2VerticalPodAutoscalerCheckpointStatus version(String version) {

    this.version = version;
    return this;
  }

   /**
   * Version of the format of the stored data.
   * @return version
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "Version of the format of the stored data.")

  public String getVersion() {
    return version;
  }


  public void setVersion(String version) {
    this.version = version;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    V1beta2VerticalPodAutoscalerCheckpointStatus v1beta2VerticalPodAutoscalerCheckpointStatus = (V1beta2VerticalPodAutoscalerCheckpointStatus) o;
    return Objects.equals(this.cpuHistogram, v1beta2VerticalPodAutoscalerCheckpointStatus.cpuHistogram) &&
        Objects.equals(this.firstSampleStart, v1beta2VerticalPodAutoscalerCheckpointStatus.firstSampleStart) &&
        Objects.equals(this.lastSampleStart, v1beta2VerticalPodAutoscalerCheckpointStatus.lastSampleStart) &&
        Objects.equals(this.lastUpdateTime, v1beta2VerticalPodAutoscalerCheckpointStatus.lastUpdateTime) &&
        Objects.equals(this.memoryHistogram, v1beta2VerticalPodAutoscalerCheckpointStatus.memoryHistogram) &&
        Objects.equals(this.totalSamplesCount, v1beta2VerticalPodAutoscalerCheckpointStatus.totalSamplesCount) &&
        Objects.equals(this.version, v1beta2VerticalPodAutoscalerCheckpointStatus.version);
  }

  @Override
  public int hashCode() {
    return Objects.hash(cpuHistogram, firstSampleStart, lastSampleStart, lastUpdateTime, memoryHistogram, totalSamplesCount, version);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class V1beta2VerticalPodAutoscalerCheckpointStatus {\n");
    sb.append("    cpuHistogram: ").append(toIndentedString(cpuHistogram)).append("\n");
    sb.append("    firstSampleStart: ").append(toIndentedString(firstSampleStart)).append("\n");
    sb.append("    lastSampleStart: ").append(toIndentedString(lastSampleStart)).append("\n");
    sb.append("    lastUpdateTime: ").append(toIndentedString(lastUpdateTime)).append("\n");
    sb.append("    memoryHistogram: ").append(toIndentedString(memoryHistogram)).append("\n");
    sb.append("    totalSamplesCount: ").append(toIndentedString(totalSamplesCount)).append("\n");
    sb.append("    version: ").append(toIndentedString(version)).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    ");
  }

}

