/*
 * Cloudera Manager API
 * <h1>Cloudera Manager API v50</h1>       <p>Introduced in Cloudera Manager 7.8.1</p>       <p><a href=\"http://www.cloudera.com/documentation.html\">Cloudera Product Documentation</a></p>
 *
 * OpenAPI spec version: 7.8.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 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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;

/**
 * An authRoleRef to operate on ApiAuthRole object
 */
@ApiModel(description = "An authRoleRef to operate on ApiAuthRole object")
@javax.annotation.Generated(value = "io.swagger.codegen.languages.JavaClientCodegen", date = "2022-11-17T16:38:34.097Z")
public class ApiAuthRoleRef {
  @SerializedName("displayName")
  private String displayName = null;

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

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

  public ApiAuthRoleRef displayName(String displayName) {
    this.displayName = displayName;
    return this;
  }

   /**
   * The display name of the authRole. displayName is optional. If a changed displayName is passed in, it will be ignored.
   * @return displayName
  **/
  @ApiModelProperty(value = "The display name of the authRole. displayName is optional. If a changed displayName is passed in, it will be ignored.")
  public String getDisplayName() {
    return displayName;
  }

  public void setDisplayName(String displayName) {
    this.displayName = displayName;
  }

  public ApiAuthRoleRef name(String name) {
    this.name = name;
    return this;
  }

   /**
   * The name of the authRole. name is available from v32. It is optional, and cannot be modified. Name takes precedence over uuid. If name is absent, uuid will be used for look up.
   * @return name
  **/
  @ApiModelProperty(value = "The name of the authRole. name is available from v32. It is optional, and cannot be modified. Name takes precedence over uuid. If name is absent, uuid will be used for look up.")
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public ApiAuthRoleRef uuid(String uuid) {
    this.uuid = uuid;
    return this;
  }

   /**
   * The uuid of the authRole, which uniquely identifies it in a CM installation.
   * @return uuid
  **/
  @ApiModelProperty(value = "The uuid of the authRole, which uniquely identifies it in a CM installation.")
  public String getUuid() {
    return uuid;
  }

  public void setUuid(String uuid) {
    this.uuid = uuid;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    ApiAuthRoleRef apiAuthRoleRef = (ApiAuthRoleRef) o;
    return Objects.equals(this.displayName, apiAuthRoleRef.displayName) &&
        Objects.equals(this.name, apiAuthRoleRef.name) &&
        Objects.equals(this.uuid, apiAuthRoleRef.uuid);
  }

  @Override
  public int hashCode() {
    return Objects.hash(displayName, name, uuid);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class ApiAuthRoleRef {\n");
    
    sb.append("    displayName: ").append(toIndentedString(displayName)).append("\n");
    sb.append("    name: ").append(toIndentedString(name)).append("\n");
    sb.append("    uuid: ").append(toIndentedString(uuid)).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    ");
  }
  
}

