/*
 * 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 install CDP a Private Cloud Control Plane
 */
@Schema(description = "Arguments used to install CDP a 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 ApiInstallControlPlaneArgs {
  @SerializedName("kubernetesType")
  private String kubernetesType = null;

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

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

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

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

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

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

  public ApiInstallControlPlaneArgs kubernetesType(String kubernetesType) {
    this.kubernetesType = kubernetesType;
    return this;
  }

   /**
   * The kubernetes type (e.g. \&quot;openshift\&quot;) that the control plane will run on
   * @return kubernetesType
  **/
  @Schema(description = "The kubernetes type (e.g. \"openshift\") that the control plane will run on")
  public String getKubernetesType() {
    return kubernetesType;
  }

  public void setKubernetesType(String kubernetesType) {
    this.kubernetesType = kubernetesType;
  }

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

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

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

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

   /**
   * A yaml file containing configuration parameters for the installation. 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-install-values-yaml&gt;here&lt;/a&gt;.
   * @return valuesYaml
  **/
  @Schema(description = "A yaml file containing configuration parameters for the installation. To see sample values.yaml files, read the documentation <a target=\"_blank\"  href=https://docs.cloudera.com/r/cdp-pvc-install-values-yaml>here</a>.")
  public String getValuesYaml() {
    return valuesYaml;
  }

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

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

   /**
   * The content of the kubeconfig file of the kubernetes environment on which the install will be performed 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 install will be performed 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 ApiInstallControlPlaneArgs namespace(String namespace) {
    this.namespace = namespace;
    return this;
  }

   /**
   * A unique namespace where the control plane will be installed
   * @return namespace
  **/
  @Schema(description = "A unique namespace where the control plane will be installed")
  public String getNamespace() {
    return namespace;
  }

  public void setNamespace(String namespace) {
    this.namespace = namespace;
  }

  public ApiInstallControlPlaneArgs dockerRegistry(String dockerRegistry) {
    this.dockerRegistry = dockerRegistry;
    return this;
  }

   /**
   * The url of the Docker Registry where images required for install are hosted. This fields is deprecated. The docker registry should be provided within the values.yaml configuration file.
   * @return dockerRegistry
  **/
  @Schema(description = "The url of the Docker Registry where images required for install are hosted. This fields is deprecated. The docker registry should be provided within the values.yaml configuration file.")
  public String getDockerRegistry() {
    return dockerRegistry;
  }

  public void setDockerRegistry(String dockerRegistry) {
    this.dockerRegistry = dockerRegistry;
  }

  public ApiInstallControlPlaneArgs isOverrideAllowed(Boolean isOverrideAllowed) {
    this.isOverrideAllowed = isOverrideAllowed;
    return this;
  }

   /**
   * Get isOverrideAllowed
   * @return isOverrideAllowed
  **/
  @Schema(description = "")
  public Boolean isIsOverrideAllowed() {
    return isOverrideAllowed;
  }

  public void setIsOverrideAllowed(Boolean isOverrideAllowed) {
    this.isOverrideAllowed = isOverrideAllowed;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiInstallControlPlaneArgs apiInstallControlPlaneArgs = (ApiInstallControlPlaneArgs) o;
    return Objects.equals(this.kubernetesType, apiInstallControlPlaneArgs.kubernetesType) &&
        Objects.equals(this.remoteRepoUrl, apiInstallControlPlaneArgs.remoteRepoUrl) &&
        Objects.equals(this.valuesYaml, apiInstallControlPlaneArgs.valuesYaml) &&
        Objects.equals(this.kubeConfig, apiInstallControlPlaneArgs.kubeConfig) &&
        Objects.equals(this.namespace, apiInstallControlPlaneArgs.namespace) &&
        Objects.equals(this.dockerRegistry, apiInstallControlPlaneArgs.dockerRegistry) &&
        Objects.equals(this.isOverrideAllowed, apiInstallControlPlaneArgs.isOverrideAllowed);
  }

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


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

}
