/*
 * 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;
import java.util.ArrayList;
import java.util.List;
/**
 * Kerberos information of a Cluster or Cloudera Manager.
 */
@Schema(description = "Kerberos information of a Cluster or Cloudera Manager.")
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2026-05-19T08:29:59.033Z[Etc/UTC]")

public class ApiKerberosInfo {
  @SerializedName("kerberized")
  private Boolean kerberized = null;

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

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

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

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

  @SerializedName("domain")
  private List<String> domain = null;

  public ApiKerberosInfo kerberized(Boolean kerberized) {
    this.kerberized = kerberized;
    return this;
  }

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

  public void setKerberized(Boolean kerberized) {
    this.kerberized = kerberized;
  }

  public ApiKerberosInfo kdcType(String kdcType) {
    this.kdcType = kdcType;
    return this;
  }

   /**
   * Get kdcType
   * @return kdcType
  **/
  @Schema(description = "")
  public String getKdcType() {
    return kdcType;
  }

  public void setKdcType(String kdcType) {
    this.kdcType = kdcType;
  }

  public ApiKerberosInfo kerberosRealm(String kerberosRealm) {
    this.kerberosRealm = kerberosRealm;
    return this;
  }

   /**
   * Get kerberosRealm
   * @return kerberosRealm
  **/
  @Schema(description = "")
  public String getKerberosRealm() {
    return kerberosRealm;
  }

  public void setKerberosRealm(String kerberosRealm) {
    this.kerberosRealm = kerberosRealm;
  }

  public ApiKerberosInfo kdcHost(String kdcHost) {
    this.kdcHost = kdcHost;
    return this;
  }

   /**
   * Get kdcHost
   * @return kdcHost
  **/
  @Schema(description = "")
  public String getKdcHost() {
    return kdcHost;
  }

  public void setKdcHost(String kdcHost) {
    this.kdcHost = kdcHost;
  }

  public ApiKerberosInfo adminHost(String adminHost) {
    this.adminHost = adminHost;
    return this;
  }

   /**
   * Get adminHost
   * @return adminHost
  **/
  @Schema(description = "")
  public String getAdminHost() {
    return adminHost;
  }

  public void setAdminHost(String adminHost) {
    this.adminHost = adminHost;
  }

  public ApiKerberosInfo domain(List<String> domain) {
    this.domain = domain;
    return this;
  }

  public ApiKerberosInfo addDomainItem(String domainItem) {
    if (this.domain == null) {
      this.domain = new ArrayList<>();
    }
    this.domain.add(domainItem);
    return this;
  }

   /**
   * Get domain
   * @return domain
  **/
  @Schema(description = "")
  public List<String> getDomain() {
    return domain;
  }

  public void setDomain(List<String> domain) {
    this.domain = domain;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiKerberosInfo apiKerberosInfo = (ApiKerberosInfo) o;
    return Objects.equals(this.kerberized, apiKerberosInfo.kerberized) &&
        Objects.equals(this.kdcType, apiKerberosInfo.kdcType) &&
        Objects.equals(this.kerberosRealm, apiKerberosInfo.kerberosRealm) &&
        Objects.equals(this.kdcHost, apiKerberosInfo.kdcHost) &&
        Objects.equals(this.adminHost, apiKerberosInfo.adminHost) &&
        Objects.equals(this.domain, apiKerberosInfo.domain);
  }

  @Override
  public int hashCode() {
    return Objects.hash(kerberized, kdcType, kerberosRealm, kdcHost, adminHost, domain);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiKerberosInfo {\n");
    
    sb.append("    kerberized: ").append(toIndentedString(kerberized)).append("\n");
    sb.append("    kdcType: ").append(toIndentedString(kdcType)).append("\n");
    sb.append("    kerberosRealm: ").append(toIndentedString(kerberosRealm)).append("\n");
    sb.append("    kdcHost: ").append(toIndentedString(kdcHost)).append("\n");
    sb.append("    adminHost: ").append(toIndentedString(adminHost)).append("\n");
    sb.append("    domain: ").append(toIndentedString(domain)).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    ");
  }

}
