/*
 * 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 enable Llama RM command.
 */
@Schema(description = "Arguments used for enable Llama RM command.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiEnableLlamaRmArguments {
  @SerializedName("llama1HostId")
  private String llama1HostId = null;

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

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

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

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

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

  public ApiEnableLlamaRmArguments llama1HostId(String llama1HostId) {
    this.llama1HostId = llama1HostId;
    return this;
  }

   /**
   * HostId of the host on which the first Llama role will be created.
   * @return llama1HostId
  **/
  @Schema(description = "HostId of the host on which the first Llama role will be created.")
  public String getLlama1HostId() {
    return llama1HostId;
  }

  public void setLlama1HostId(String llama1HostId) {
    this.llama1HostId = llama1HostId;
  }

  public ApiEnableLlamaRmArguments llama1RoleName(String llama1RoleName) {
    this.llama1RoleName = llama1RoleName;
    return this;
  }

   /**
   * Name of the first Llama role to be created (optional).
   * @return llama1RoleName
  **/
  @Schema(description = "Name of the first Llama role to be created (optional).")
  public String getLlama1RoleName() {
    return llama1RoleName;
  }

  public void setLlama1RoleName(String llama1RoleName) {
    this.llama1RoleName = llama1RoleName;
  }

  public ApiEnableLlamaRmArguments llama2HostId(String llama2HostId) {
    this.llama2HostId = llama2HostId;
    return this;
  }

   /**
   * HostId of the host on which the second Llama role will be created.
   * @return llama2HostId
  **/
  @Schema(description = "HostId of the host on which the second Llama role will be created.")
  public String getLlama2HostId() {
    return llama2HostId;
  }

  public void setLlama2HostId(String llama2HostId) {
    this.llama2HostId = llama2HostId;
  }

  public ApiEnableLlamaRmArguments llama2RoleName(String llama2RoleName) {
    this.llama2RoleName = llama2RoleName;
    return this;
  }

   /**
   * Name of the second Llama role to be created (optional).
   * @return llama2RoleName
  **/
  @Schema(description = "Name of the second Llama role to be created (optional).")
  public String getLlama2RoleName() {
    return llama2RoleName;
  }

  public void setLlama2RoleName(String llama2RoleName) {
    this.llama2RoleName = llama2RoleName;
  }

  public ApiEnableLlamaRmArguments zkServiceName(String zkServiceName) {
    this.zkServiceName = zkServiceName;
    return this;
  }

   /**
   * Name of the ZooKeeper service that will be used for auto-failover. Only relevant when enabling Llama RM in HA mode (i.e., when two Llama roles are being created). This argument may be omitted if the ZooKeeper dependency for Impala is already configured.
   * @return zkServiceName
  **/
  @Schema(description = "Name of the ZooKeeper service that will be used for auto-failover. Only relevant when enabling Llama RM in HA mode (i.e., when two Llama roles are being created). This argument may be omitted if the ZooKeeper dependency for Impala is already configured.")
  public String getZkServiceName() {
    return zkServiceName;
  }

  public void setZkServiceName(String zkServiceName) {
    this.zkServiceName = zkServiceName;
  }

  public ApiEnableLlamaRmArguments skipRestart(Boolean skipRestart) {
    this.skipRestart = skipRestart;
    return this;
  }

   /**
   * Skip the restart of Yarn, Impala, and their dependent services, and don&#x27;t deploy client configuration. Default is false (i.e., by default, the services are restarted and client configuration is deployed).
   * @return skipRestart
  **/
  @Schema(required = true, description = "Skip the restart of Yarn, Impala, and their dependent services, and don't deploy client configuration. Default is false (i.e., by default, the services are restarted and client configuration is deployed).")
  public Boolean isSkipRestart() {
    return skipRestart;
  }

  public void setSkipRestart(Boolean skipRestart) {
    this.skipRestart = skipRestart;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiEnableLlamaRmArguments apiEnableLlamaRmArguments = (ApiEnableLlamaRmArguments) o;
    return Objects.equals(this.llama1HostId, apiEnableLlamaRmArguments.llama1HostId) &&
        Objects.equals(this.llama1RoleName, apiEnableLlamaRmArguments.llama1RoleName) &&
        Objects.equals(this.llama2HostId, apiEnableLlamaRmArguments.llama2HostId) &&
        Objects.equals(this.llama2RoleName, apiEnableLlamaRmArguments.llama2RoleName) &&
        Objects.equals(this.zkServiceName, apiEnableLlamaRmArguments.zkServiceName) &&
        Objects.equals(this.skipRestart, apiEnableLlamaRmArguments.skipRestart);
  }

  @Override
  public int hashCode() {
    return Objects.hash(llama1HostId, llama1RoleName, llama2HostId, llama2RoleName, zkServiceName, skipRestart);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiEnableLlamaRmArguments {\n");
    
    sb.append("    llama1HostId: ").append(toIndentedString(llama1HostId)).append("\n");
    sb.append("    llama1RoleName: ").append(toIndentedString(llama1RoleName)).append("\n");
    sb.append("    llama2HostId: ").append(toIndentedString(llama2HostId)).append("\n");
    sb.append("    llama2RoleName: ").append(toIndentedString(llama2RoleName)).append("\n");
    sb.append("    zkServiceName: ").append(toIndentedString(zkServiceName)).append("\n");
    sb.append("    skipRestart: ").append(toIndentedString(skipRestart)).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    ");
  }

}
