/*
 * 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.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;
/**
 * A parcelRef references a parcel. Each parcel is identified by its \&quot;parcelName\&quot; and \&quot;parcelVersion\&quot;, and the \&quot;clusterName\&quot; of the cluster that is using it. To operate on the parcel object, use the API with the those fields as parameters.
 */
@Schema(description = "A parcelRef references a parcel. Each parcel is identified by its \"parcelName\" and \"parcelVersion\", and the \"clusterName\" of the cluster that is using it. To operate on the parcel object, use the API with the those fields as parameters.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiParcelRef {
  @SerializedName("clusterName")
  private String clusterName = null;

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

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

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

  public ApiParcelRef clusterName(String clusterName) {
    this.clusterName = clusterName;
    return this;
  }

   /**
   * The name of the cluster that the parcel is used by.
   * @return clusterName
  **/
  @Schema(description = "The name of the cluster that the parcel is used by.")
  public String getClusterName() {
    return clusterName;
  }

  public void setClusterName(String clusterName) {
    this.clusterName = clusterName;
  }

  public ApiParcelRef parcelName(String parcelName) {
    this.parcelName = parcelName;
    return this;
  }

   /**
   * The name of the parcel.
   * @return parcelName
  **/
  @Schema(description = "The name of the parcel.")
  public String getParcelName() {
    return parcelName;
  }

  public void setParcelName(String parcelName) {
    this.parcelName = parcelName;
  }

  public ApiParcelRef parcelVersion(String parcelVersion) {
    this.parcelVersion = parcelVersion;
    return this;
  }

   /**
   * The version of the parcel.
   * @return parcelVersion
  **/
  @Schema(description = "The version of the parcel.")
  public String getParcelVersion() {
    return parcelVersion;
  }

  public void setParcelVersion(String parcelVersion) {
    this.parcelVersion = parcelVersion;
  }

  public ApiParcelRef parcelDisplayName(String parcelDisplayName) {
    this.parcelDisplayName = parcelDisplayName;
    return this;
  }

   /**
   * The display name of the parcel. If set, available since v40.
   * @return parcelDisplayName
  **/
  @Schema(description = "The display name of the parcel. If set, available since v40.")
  public String getParcelDisplayName() {
    return parcelDisplayName;
  }

  public void setParcelDisplayName(String parcelDisplayName) {
    this.parcelDisplayName = parcelDisplayName;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiParcelRef apiParcelRef = (ApiParcelRef) o;
    return Objects.equals(this.clusterName, apiParcelRef.clusterName) &&
        Objects.equals(this.parcelName, apiParcelRef.parcelName) &&
        Objects.equals(this.parcelVersion, apiParcelRef.parcelVersion) &&
        Objects.equals(this.parcelDisplayName, apiParcelRef.parcelDisplayName);
  }

  @Override
  public int hashCode() {
    return Objects.hash(clusterName, parcelName, parcelVersion, parcelDisplayName);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiParcelRef {\n");
    
    sb.append("    clusterName: ").append(toIndentedString(clusterName)).append("\n");
    sb.append("    parcelName: ").append(toIndentedString(parcelName)).append("\n");
    sb.append("    parcelVersion: ").append(toIndentedString(parcelVersion)).append("\n");
    sb.append("    parcelDisplayName: ").append(toIndentedString(parcelDisplayName)).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    ");
  }

}
