/*
 * 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;
/**
 * Arguments used to upgrade a CDP Private Cloud Control Plane
 */
@Schema(description = "Arguments used to upgrade a CDP Private Cloud Control Plane")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiUpgradeControlPlaneArgs {
  @SerializedName("kubeConfig")
  private String kubeConfig = null;

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

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

  public ApiUpgradeControlPlaneArgs kubeConfig(String kubeConfig) {
    this.kubeConfig = kubeConfig;
    return this;
  }

   /**
   * The content of the kubeconfig file of the kubernetes environment on which the control plane is running Simplified example:&lt;br&gt; &lt;br&gt; apiVersion: v1&lt;br&gt; clusters:&lt;br&gt; - cluster:&lt;br&gt; &amp;emsp;&amp;emsp;certificate-authority-data: abc123&lt;br&gt; &amp;emsp;&amp;emsp;server: https://example-server.domain.com:6443&lt;br&gt; &amp;emsp;name: example-cluster.domain.com:6443&lt;br&gt; contexts:&lt;br&gt; - context:&lt;br&gt; &amp;emsp;&amp;emsp;cluster: ocp-cluster1&lt;br&gt; &amp;emsp;&amp;emsp;user: admin&lt;br&gt; &amp;emsp;name: admin&lt;br&gt; current-context: admin&lt;br&gt; kind: Config&lt;br&gt; preferences: {}&lt;br&gt; users:&lt;br&gt; - name: admin&lt;br&gt; &amp;emsp;user:&lt;br&gt; &amp;emsp;&amp;emsp;client-certificate-data: abc123&lt;br&gt; &amp;emsp;&amp;emsp;client-key-data: xyz987&lt;br&gt; &lt;br&gt; For more information on the kubeconfig file, read the documentation &lt;a target&#x3D;\&quot;_blank\&quot; href&#x3D;https://docs.cloudera.com/r/cdp-pvc-kubernetes&gt;here&lt;/a&gt;.
   * @return kubeConfig
  **/
  @Schema(description = "The content of the kubeconfig file of the kubernetes environment on which the control plane is running Simplified example:<br> <br> apiVersion: v1<br> clusters:<br> - cluster:<br> &emsp;&emsp;certificate-authority-data: abc123<br> &emsp;&emsp;server: https://example-server.domain.com:6443<br> &emsp;name: example-cluster.domain.com:6443<br> contexts:<br> - context:<br> &emsp;&emsp;cluster: ocp-cluster1<br> &emsp;&emsp;user: admin<br> &emsp;name: admin<br> current-context: admin<br> kind: Config<br> preferences: {}<br> users:<br> - name: admin<br> &emsp;user:<br> &emsp;&emsp;client-certificate-data: abc123<br> &emsp;&emsp;client-key-data: xyz987<br> <br> For more information on the kubeconfig file, read the documentation <a target=\"_blank\" href=https://docs.cloudera.com/r/cdp-pvc-kubernetes>here</a>.")
  public String getKubeConfig() {
    return kubeConfig;
  }

  public void setKubeConfig(String kubeConfig) {
    this.kubeConfig = kubeConfig;
  }

  public ApiUpgradeControlPlaneArgs valuesYaml(String valuesYaml) {
    this.valuesYaml = valuesYaml;
    return this;
  }

   /**
   * To see sample values.yaml files, read the documentation &lt;a target&#x3D;\&quot;_blank\&quot; href&#x3D;https://docs.cloudera.com/r/cdp-pvc-upgrade-values-yaml&gt;here&lt;/a&gt;.
   * @return valuesYaml
  **/
  @Schema(description = "To see sample values.yaml files, read the documentation <a target=\"_blank\" href=https://docs.cloudera.com/r/cdp-pvc-upgrade-values-yaml>here</a>.")
  public String getValuesYaml() {
    return valuesYaml;
  }

  public void setValuesYaml(String valuesYaml) {
    this.valuesYaml = valuesYaml;
  }

  public ApiUpgradeControlPlaneArgs remoteRepoUrl(String remoteRepoUrl) {
    this.remoteRepoUrl = remoteRepoUrl;
    return this;
  }

   /**
   * The url of the remote repository where the private cloud artifacts for the target version of the upgrade are hosted
   * @return remoteRepoUrl
  **/
  @Schema(description = "The url of the remote repository where the private cloud artifacts for the target version of the upgrade are hosted")
  public String getRemoteRepoUrl() {
    return remoteRepoUrl;
  }

  public void setRemoteRepoUrl(String remoteRepoUrl) {
    this.remoteRepoUrl = remoteRepoUrl;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiUpgradeControlPlaneArgs apiUpgradeControlPlaneArgs = (ApiUpgradeControlPlaneArgs) o;
    return Objects.equals(this.kubeConfig, apiUpgradeControlPlaneArgs.kubeConfig) &&
        Objects.equals(this.valuesYaml, apiUpgradeControlPlaneArgs.valuesYaml) &&
        Objects.equals(this.remoteRepoUrl, apiUpgradeControlPlaneArgs.remoteRepoUrl);
  }

  @Override
  public int hashCode() {
    return Objects.hash(kubeConfig, valuesYaml, remoteRepoUrl);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiUpgradeControlPlaneArgs {\n");
    
    sb.append("    kubeConfig: ").append(toIndentedString(kubeConfig)).append("\n");
    sb.append("    valuesYaml: ").append(toIndentedString(valuesYaml)).append("\n");
    sb.append("    remoteRepoUrl: ").append(toIndentedString(remoteRepoUrl)).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    ");
  }

}
