/*
 * 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 for the command to generate the docker copy script. This is applicable for Openshift deployments, where we cannot perform the image copying ourselves.
 */
@Schema(description = "Arguments used for the command to generate the docker copy script. This is applicable for Openshift deployments, where we cannot perform the image copying ourselves.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiGenerateCopyDockerArgs {
  @SerializedName("remoteRepoUrl")
  private String remoteRepoUrl = null;

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

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

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

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

  public ApiGenerateCopyDockerArgs 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 ApiGenerateCopyDockerArgs dockerRegistry(String dockerRegistry) {
    this.dockerRegistry = dockerRegistry;
    return this;
  }

   /**
   * The url of the Docker Registry where images required for install will be copied to
   * @return dockerRegistry
  **/
  @Schema(description = "The url of the Docker Registry where images required for install will be copied to")
  public String getDockerRegistry() {
    return dockerRegistry;
  }

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

  public ApiGenerateCopyDockerArgs controlPlaneUuid(String controlPlaneUuid) {
    this.controlPlaneUuid = controlPlaneUuid;
    return this;
  }

   /**
   * Optional. The uuid of the control plane, if copying docker images for an upgrade
   * @return controlPlaneUuid
  **/
  @Schema(description = "Optional. The uuid of the control plane, if copying docker images for an upgrade")
  public String getControlPlaneUuid() {
    return controlPlaneUuid;
  }

  public void setControlPlaneUuid(String controlPlaneUuid) {
    this.controlPlaneUuid = controlPlaneUuid;
  }

  public ApiGenerateCopyDockerArgs selectedFeatures(String selectedFeatures) {
    this.selectedFeatures = selectedFeatures;
    return this;
  }

   /**
   * Optional. The name of the feature(s) in a comma separated list that container images/packages are associated with. When it is null, copy all the images.
   * @return selectedFeatures
  **/
  @Schema(description = "Optional. The name of the feature(s) in a comma separated list that container images/packages are associated with. When it is null, copy all the images.")
  public String getSelectedFeatures() {
    return selectedFeatures;
  }

  public void setSelectedFeatures(String selectedFeatures) {
    this.selectedFeatures = selectedFeatures;
  }

  public ApiGenerateCopyDockerArgs selectedFeaturesOnly(Boolean selectedFeaturesOnly) {
    this.selectedFeaturesOnly = selectedFeaturesOnly;
    return this;
  }

   /**
   * Optional. If true, then only images/packages that belong to the selected features will be processed. If false, then images/packages that don&#x27;t belong to any features will also be processed in addition to the ones that belong to the selected features. This should be set to false (default) for install/upgrades. to true when copying specific images/packages associated with a specific feature.
   * @return selectedFeaturesOnly
  **/
  @Schema(required = true, description = "Optional. If true, then only images/packages that belong to the selected features will be processed. If false, then images/packages that don't belong to any features will also be processed in addition to the ones that belong to the selected features. This should be set to false (default) for install/upgrades. to true when copying specific images/packages associated with a specific feature.")
  public Boolean isSelectedFeaturesOnly() {
    return selectedFeaturesOnly;
  }

  public void setSelectedFeaturesOnly(Boolean selectedFeaturesOnly) {
    this.selectedFeaturesOnly = selectedFeaturesOnly;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiGenerateCopyDockerArgs apiGenerateCopyDockerArgs = (ApiGenerateCopyDockerArgs) o;
    return Objects.equals(this.remoteRepoUrl, apiGenerateCopyDockerArgs.remoteRepoUrl) &&
        Objects.equals(this.dockerRegistry, apiGenerateCopyDockerArgs.dockerRegistry) &&
        Objects.equals(this.controlPlaneUuid, apiGenerateCopyDockerArgs.controlPlaneUuid) &&
        Objects.equals(this.selectedFeatures, apiGenerateCopyDockerArgs.selectedFeatures) &&
        Objects.equals(this.selectedFeaturesOnly, apiGenerateCopyDockerArgs.selectedFeaturesOnly);
  }

  @Override
  public int hashCode() {
    return Objects.hash(remoteRepoUrl, dockerRegistry, controlPlaneUuid, selectedFeatures, selectedFeaturesOnly);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiGenerateCopyDockerArgs {\n");
    
    sb.append("    remoteRepoUrl: ").append(toIndentedString(remoteRepoUrl)).append("\n");
    sb.append("    dockerRegistry: ").append(toIndentedString(dockerRegistry)).append("\n");
    sb.append("    controlPlaneUuid: ").append(toIndentedString(controlPlaneUuid)).append("\n");
    sb.append("    selectedFeatures: ").append(toIndentedString(selectedFeatures)).append("\n");
    sb.append("    selectedFeaturesOnly: ").append(toIndentedString(selectedFeaturesOnly)).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    ");
  }

}
