/*
 * Swagger of Opencellsoft Api
 * @#Introduction
 *
 * The version of the OpenAPI document: 7.3.1-SNAPSHOT
 * Contact: contact@opencellsoft.fr
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package org.openapitools.client.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.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.openapitools.client.model.Auditable;
import org.openapitools.client.model.AuditableFieldHistory;
import org.openapitools.client.model.BusinessEntity;
import org.openapitools.client.model.Customer;
import org.openapitools.client.model.User;
import org.threeten.bp.OffsetDateTime;

/**
 * MeveoInstance
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen", date = "2019-09-13T10:03:17.753Z[GMT]")
public class MeveoInstance {
  public static final String SERIALIZED_NAME_ID = "id";
  @SerializedName(SERIALIZED_NAME_ID)
  private Long id;

  public static final String SERIALIZED_NAME_VERSION = "version";
  @SerializedName(SERIALIZED_NAME_VERSION)
  private Integer version;

  public static final String SERIALIZED_NAME_AUDITABLE = "auditable";
  @SerializedName(SERIALIZED_NAME_AUDITABLE)
  private Auditable auditable;

  public static final String SERIALIZED_NAME_HISTORIZED = "historized";
  @SerializedName(SERIALIZED_NAME_HISTORIZED)
  private Boolean historized;

  public static final String SERIALIZED_NAME_NOTIFIED = "notified";
  @SerializedName(SERIALIZED_NAME_NOTIFIED)
  private Boolean notified;

  public static final String SERIALIZED_NAME_AUDITABLE_FIELDS = "auditableFields";
  @SerializedName(SERIALIZED_NAME_AUDITABLE_FIELDS)
  private List<AuditableFieldHistory> auditableFields = null;

  public static final String SERIALIZED_NAME_CODE = "code";
  @SerializedName(SERIALIZED_NAME_CODE)
  private String code;

  public static final String SERIALIZED_NAME_DESCRIPTION = "description";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION)
  private String description;

  public static final String SERIALIZED_NAME_APPEND_GENERATED_CODE = "appendGeneratedCode";
  @SerializedName(SERIALIZED_NAME_APPEND_GENERATED_CODE)
  private Boolean appendGeneratedCode;

  public static final String SERIALIZED_NAME_USER = "user";
  @SerializedName(SERIALIZED_NAME_USER)
  private User user;

  public static final String SERIALIZED_NAME_CUSTOMER = "customer";
  @SerializedName(SERIALIZED_NAME_CUSTOMER)
  private Customer customer;

  public static final String SERIALIZED_NAME_PRODUCT_NAME = "productName";
  @SerializedName(SERIALIZED_NAME_PRODUCT_NAME)
  private String productName;

  public static final String SERIALIZED_NAME_PRODUCT_VERSION = "productVersion";
  @SerializedName(SERIALIZED_NAME_PRODUCT_VERSION)
  private String productVersion;

  public static final String SERIALIZED_NAME_OWNER = "owner";
  @SerializedName(SERIALIZED_NAME_OWNER)
  private String owner;

  public static final String SERIALIZED_NAME_MD5 = "md5";
  @SerializedName(SERIALIZED_NAME_MD5)
  private String md5;

  /**
   * Gets or Sets status
   */
  @JsonAdapter(StatusEnum.Adapter.class)
  public enum StatusEnum {
    UNKNOWN("UNKNOWN"),
    
    PARENT("PARENT"),
    
    CHILD("CHILD"),
    
    PARTNER("PARTNER");

    private String value;

    StatusEnum(String value) {
      this.value = value;
    }

    public String getValue() {
      return value;
    }

    @Override
    public String toString() {
      return String.valueOf(value);
    }

    public static StatusEnum fromValue(String value) {
      for (StatusEnum b : StatusEnum.values()) {
        if (b.value.equals(value)) {
          return b;
        }
      }
      throw new IllegalArgumentException("Unexpected value '" + value + "'");
    }

    public static class Adapter extends TypeAdapter<StatusEnum> {
      @Override
      public void write(final JsonWriter jsonWriter, final StatusEnum enumeration) throws IOException {
        jsonWriter.value(enumeration.getValue());
      }

      @Override
      public StatusEnum read(final JsonReader jsonReader) throws IOException {
        String value = jsonReader.nextString();
        return StatusEnum.fromValue(value);
      }
    }
  }

  public static final String SERIALIZED_NAME_STATUS = "status";
  @SerializedName(SERIALIZED_NAME_STATUS)
  private StatusEnum status;

  public static final String SERIALIZED_NAME_CREATION_DATE = "creationDate";
  @SerializedName(SERIALIZED_NAME_CREATION_DATE)
  private OffsetDateTime creationDate;

  public static final String SERIALIZED_NAME_UPDATE_DATE = "updateDate";
  @SerializedName(SERIALIZED_NAME_UPDATE_DATE)
  private OffsetDateTime updateDate;

  public static final String SERIALIZED_NAME_KEY_ENTREPRISE = "keyEntreprise";
  @SerializedName(SERIALIZED_NAME_KEY_ENTREPRISE)
  private String keyEntreprise;

  public static final String SERIALIZED_NAME_MAC_ADDRESS = "macAddress";
  @SerializedName(SERIALIZED_NAME_MAC_ADDRESS)
  private String macAddress;

  public static final String SERIALIZED_NAME_MACHINE_VENDOR = "machineVendor";
  @SerializedName(SERIALIZED_NAME_MACHINE_VENDOR)
  private String machineVendor;

  public static final String SERIALIZED_NAME_INSTALLATION_MODE = "installationMode";
  @SerializedName(SERIALIZED_NAME_INSTALLATION_MODE)
  private String installationMode;

  public static final String SERIALIZED_NAME_NB_CORES = "nbCores";
  @SerializedName(SERIALIZED_NAME_NB_CORES)
  private String nbCores;

  public static final String SERIALIZED_NAME_MEMORY = "memory";
  @SerializedName(SERIALIZED_NAME_MEMORY)
  private String memory;

  public static final String SERIALIZED_NAME_HD_SIZE = "hdSize";
  @SerializedName(SERIALIZED_NAME_HD_SIZE)
  private String hdSize;

  public static final String SERIALIZED_NAME_OS_NAME = "osName";
  @SerializedName(SERIALIZED_NAME_OS_NAME)
  private String osName;

  public static final String SERIALIZED_NAME_OS_VERSION = "osVersion";
  @SerializedName(SERIALIZED_NAME_OS_VERSION)
  private String osVersion;

  public static final String SERIALIZED_NAME_OS_ARCH = "osArch";
  @SerializedName(SERIALIZED_NAME_OS_ARCH)
  private String osArch;

  public static final String SERIALIZED_NAME_JAVA_VM_VERSION = "javaVmVersion";
  @SerializedName(SERIALIZED_NAME_JAVA_VM_VERSION)
  private String javaVmVersion;

  public static final String SERIALIZED_NAME_JAVA_VM_NAME = "javaVmName";
  @SerializedName(SERIALIZED_NAME_JAVA_VM_NAME)
  private String javaVmName;

  public static final String SERIALIZED_NAME_JAVA_VENDOR = "javaVendor";
  @SerializedName(SERIALIZED_NAME_JAVA_VENDOR)
  private String javaVendor;

  public static final String SERIALIZED_NAME_JAVA_VERSION = "javaVersion";
  @SerializedName(SERIALIZED_NAME_JAVA_VERSION)
  private String javaVersion;

  public static final String SERIALIZED_NAME_AS_VENDOR = "asVendor";
  @SerializedName(SERIALIZED_NAME_AS_VENDOR)
  private String asVendor;

  public static final String SERIALIZED_NAME_AS_VERSION = "asVersion";
  @SerializedName(SERIALIZED_NAME_AS_VERSION)
  private String asVersion;

  public static final String SERIALIZED_NAME_URL = "url";
  @SerializedName(SERIALIZED_NAME_URL)
  private String url;

  public static final String SERIALIZED_NAME_AUTH_USERNAME = "authUsername";
  @SerializedName(SERIALIZED_NAME_AUTH_USERNAME)
  private String authUsername;

  public static final String SERIALIZED_NAME_AUTH_PASSWORD = "authPassword";
  @SerializedName(SERIALIZED_NAME_AUTH_PASSWORD)
  private String authPassword;

  public static final String SERIALIZED_NAME_DESCRIPTION_OR_CODE = "descriptionOrCode";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION_OR_CODE)
  private String descriptionOrCode;

  public static final String SERIALIZED_NAME_DESCRIPTION_AND_CODE = "descriptionAndCode";
  @SerializedName(SERIALIZED_NAME_DESCRIPTION_AND_CODE)
  private String descriptionAndCode;

  public static final String SERIALIZED_NAME_REFERENCE_CODE = "referenceCode";
  @SerializedName(SERIALIZED_NAME_REFERENCE_CODE)
  private String referenceCode;

  public static final String SERIALIZED_NAME_REFERENCE_DESCRIPTION = "referenceDescription";
  @SerializedName(SERIALIZED_NAME_REFERENCE_DESCRIPTION)
  private String referenceDescription;

  public static final String SERIALIZED_NAME_CODE_CHANGED = "codeChanged";
  @SerializedName(SERIALIZED_NAME_CODE_CHANGED)
  private Boolean codeChanged;

  public static final String SERIALIZED_NAME_PARENT_ENTITY = "parentEntity";
  @SerializedName(SERIALIZED_NAME_PARENT_ENTITY)
  private BusinessEntity parentEntity;

  public static final String SERIALIZED_NAME_TRANSIENT = "transient";
  @SerializedName(SERIALIZED_NAME_TRANSIENT)
  private Boolean _transient;


  public MeveoInstance id(Long id) {
    
    this.id = id;
    return this;
  }

   /**
   * Get id
   * @return id
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Long getId() {
    return id;
  }



  public void setId(Long id) {
    this.id = id;
  }


  public MeveoInstance version(Integer version) {
    
    this.version = version;
    return this;
  }

   /**
   * Get version
   * @return version
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Integer getVersion() {
    return version;
  }



  public void setVersion(Integer version) {
    this.version = version;
  }


  public MeveoInstance auditable(Auditable auditable) {
    
    this.auditable = auditable;
    return this;
  }

   /**
   * Get auditable
   * @return auditable
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Auditable getAuditable() {
    return auditable;
  }



  public void setAuditable(Auditable auditable) {
    this.auditable = auditable;
  }


  public MeveoInstance historized(Boolean historized) {
    
    this.historized = historized;
    return this;
  }

   /**
   * Get historized
   * @return historized
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getHistorized() {
    return historized;
  }



  public void setHistorized(Boolean historized) {
    this.historized = historized;
  }


  public MeveoInstance notified(Boolean notified) {
    
    this.notified = notified;
    return this;
  }

   /**
   * Get notified
   * @return notified
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getNotified() {
    return notified;
  }



  public void setNotified(Boolean notified) {
    this.notified = notified;
  }


  public MeveoInstance auditableFields(List<AuditableFieldHistory> auditableFields) {
    
    this.auditableFields = auditableFields;
    return this;
  }

  public MeveoInstance addAuditableFieldsItem(AuditableFieldHistory auditableFieldsItem) {
    if (this.auditableFields == null) {
      this.auditableFields = new ArrayList<AuditableFieldHistory>();
    }
    this.auditableFields.add(auditableFieldsItem);
    return this;
  }

   /**
   * Get auditableFields
   * @return auditableFields
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public List<AuditableFieldHistory> getAuditableFields() {
    return auditableFields;
  }



  public void setAuditableFields(List<AuditableFieldHistory> auditableFields) {
    this.auditableFields = auditableFields;
  }


  public MeveoInstance code(String code) {
    
    this.code = code;
    return this;
  }

   /**
   * Get code
   * @return code
  **/
  @ApiModelProperty(required = true, value = "")

  public String getCode() {
    return code;
  }



  public void setCode(String code) {
    this.code = code;
  }


  public MeveoInstance description(String description) {
    
    this.description = description;
    return this;
  }

   /**
   * Get description
   * @return description
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescription() {
    return description;
  }



  public void setDescription(String description) {
    this.description = description;
  }


  public MeveoInstance appendGeneratedCode(Boolean appendGeneratedCode) {
    
    this.appendGeneratedCode = appendGeneratedCode;
    return this;
  }

   /**
   * Get appendGeneratedCode
   * @return appendGeneratedCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getAppendGeneratedCode() {
    return appendGeneratedCode;
  }



  public void setAppendGeneratedCode(Boolean appendGeneratedCode) {
    this.appendGeneratedCode = appendGeneratedCode;
  }


  public MeveoInstance user(User user) {
    
    this.user = user;
    return this;
  }

   /**
   * Get user
   * @return user
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public User getUser() {
    return user;
  }



  public void setUser(User user) {
    this.user = user;
  }


  public MeveoInstance customer(Customer customer) {
    
    this.customer = customer;
    return this;
  }

   /**
   * Get customer
   * @return customer
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Customer getCustomer() {
    return customer;
  }



  public void setCustomer(Customer customer) {
    this.customer = customer;
  }


  public MeveoInstance productName(String productName) {
    
    this.productName = productName;
    return this;
  }

   /**
   * Get productName
   * @return productName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getProductName() {
    return productName;
  }



  public void setProductName(String productName) {
    this.productName = productName;
  }


  public MeveoInstance productVersion(String productVersion) {
    
    this.productVersion = productVersion;
    return this;
  }

   /**
   * Get productVersion
   * @return productVersion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getProductVersion() {
    return productVersion;
  }



  public void setProductVersion(String productVersion) {
    this.productVersion = productVersion;
  }


  public MeveoInstance owner(String owner) {
    
    this.owner = owner;
    return this;
  }

   /**
   * Get owner
   * @return owner
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getOwner() {
    return owner;
  }



  public void setOwner(String owner) {
    this.owner = owner;
  }


  public MeveoInstance md5(String md5) {
    
    this.md5 = md5;
    return this;
  }

   /**
   * Get md5
   * @return md5
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getMd5() {
    return md5;
  }



  public void setMd5(String md5) {
    this.md5 = md5;
  }


  public MeveoInstance status(StatusEnum status) {
    
    this.status = status;
    return this;
  }

   /**
   * Get status
   * @return status
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public StatusEnum getStatus() {
    return status;
  }



  public void setStatus(StatusEnum status) {
    this.status = status;
  }


  public MeveoInstance creationDate(OffsetDateTime creationDate) {
    
    this.creationDate = creationDate;
    return this;
  }

   /**
   * Get creationDate
   * @return creationDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public OffsetDateTime getCreationDate() {
    return creationDate;
  }



  public void setCreationDate(OffsetDateTime creationDate) {
    this.creationDate = creationDate;
  }


  public MeveoInstance updateDate(OffsetDateTime updateDate) {
    
    this.updateDate = updateDate;
    return this;
  }

   /**
   * Get updateDate
   * @return updateDate
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public OffsetDateTime getUpdateDate() {
    return updateDate;
  }



  public void setUpdateDate(OffsetDateTime updateDate) {
    this.updateDate = updateDate;
  }


  public MeveoInstance keyEntreprise(String keyEntreprise) {
    
    this.keyEntreprise = keyEntreprise;
    return this;
  }

   /**
   * Get keyEntreprise
   * @return keyEntreprise
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getKeyEntreprise() {
    return keyEntreprise;
  }



  public void setKeyEntreprise(String keyEntreprise) {
    this.keyEntreprise = keyEntreprise;
  }


  public MeveoInstance macAddress(String macAddress) {
    
    this.macAddress = macAddress;
    return this;
  }

   /**
   * Get macAddress
   * @return macAddress
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getMacAddress() {
    return macAddress;
  }



  public void setMacAddress(String macAddress) {
    this.macAddress = macAddress;
  }


  public MeveoInstance machineVendor(String machineVendor) {
    
    this.machineVendor = machineVendor;
    return this;
  }

   /**
   * Get machineVendor
   * @return machineVendor
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getMachineVendor() {
    return machineVendor;
  }



  public void setMachineVendor(String machineVendor) {
    this.machineVendor = machineVendor;
  }


  public MeveoInstance installationMode(String installationMode) {
    
    this.installationMode = installationMode;
    return this;
  }

   /**
   * Get installationMode
   * @return installationMode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getInstallationMode() {
    return installationMode;
  }



  public void setInstallationMode(String installationMode) {
    this.installationMode = installationMode;
  }


  public MeveoInstance nbCores(String nbCores) {
    
    this.nbCores = nbCores;
    return this;
  }

   /**
   * Get nbCores
   * @return nbCores
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getNbCores() {
    return nbCores;
  }



  public void setNbCores(String nbCores) {
    this.nbCores = nbCores;
  }


  public MeveoInstance memory(String memory) {
    
    this.memory = memory;
    return this;
  }

   /**
   * Get memory
   * @return memory
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getMemory() {
    return memory;
  }



  public void setMemory(String memory) {
    this.memory = memory;
  }


  public MeveoInstance hdSize(String hdSize) {
    
    this.hdSize = hdSize;
    return this;
  }

   /**
   * Get hdSize
   * @return hdSize
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getHdSize() {
    return hdSize;
  }



  public void setHdSize(String hdSize) {
    this.hdSize = hdSize;
  }


  public MeveoInstance osName(String osName) {
    
    this.osName = osName;
    return this;
  }

   /**
   * Get osName
   * @return osName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getOsName() {
    return osName;
  }



  public void setOsName(String osName) {
    this.osName = osName;
  }


  public MeveoInstance osVersion(String osVersion) {
    
    this.osVersion = osVersion;
    return this;
  }

   /**
   * Get osVersion
   * @return osVersion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getOsVersion() {
    return osVersion;
  }



  public void setOsVersion(String osVersion) {
    this.osVersion = osVersion;
  }


  public MeveoInstance osArch(String osArch) {
    
    this.osArch = osArch;
    return this;
  }

   /**
   * Get osArch
   * @return osArch
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getOsArch() {
    return osArch;
  }



  public void setOsArch(String osArch) {
    this.osArch = osArch;
  }


  public MeveoInstance javaVmVersion(String javaVmVersion) {
    
    this.javaVmVersion = javaVmVersion;
    return this;
  }

   /**
   * Get javaVmVersion
   * @return javaVmVersion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getJavaVmVersion() {
    return javaVmVersion;
  }



  public void setJavaVmVersion(String javaVmVersion) {
    this.javaVmVersion = javaVmVersion;
  }


  public MeveoInstance javaVmName(String javaVmName) {
    
    this.javaVmName = javaVmName;
    return this;
  }

   /**
   * Get javaVmName
   * @return javaVmName
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getJavaVmName() {
    return javaVmName;
  }



  public void setJavaVmName(String javaVmName) {
    this.javaVmName = javaVmName;
  }


  public MeveoInstance javaVendor(String javaVendor) {
    
    this.javaVendor = javaVendor;
    return this;
  }

   /**
   * Get javaVendor
   * @return javaVendor
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getJavaVendor() {
    return javaVendor;
  }



  public void setJavaVendor(String javaVendor) {
    this.javaVendor = javaVendor;
  }


  public MeveoInstance javaVersion(String javaVersion) {
    
    this.javaVersion = javaVersion;
    return this;
  }

   /**
   * Get javaVersion
   * @return javaVersion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getJavaVersion() {
    return javaVersion;
  }



  public void setJavaVersion(String javaVersion) {
    this.javaVersion = javaVersion;
  }


  public MeveoInstance asVendor(String asVendor) {
    
    this.asVendor = asVendor;
    return this;
  }

   /**
   * Get asVendor
   * @return asVendor
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getAsVendor() {
    return asVendor;
  }



  public void setAsVendor(String asVendor) {
    this.asVendor = asVendor;
  }


  public MeveoInstance asVersion(String asVersion) {
    
    this.asVersion = asVersion;
    return this;
  }

   /**
   * Get asVersion
   * @return asVersion
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getAsVersion() {
    return asVersion;
  }



  public void setAsVersion(String asVersion) {
    this.asVersion = asVersion;
  }


  public MeveoInstance url(String url) {
    
    this.url = url;
    return this;
  }

   /**
   * Get url
   * @return url
  **/
  @ApiModelProperty(required = true, value = "")

  public String getUrl() {
    return url;
  }



  public void setUrl(String url) {
    this.url = url;
  }


  public MeveoInstance authUsername(String authUsername) {
    
    this.authUsername = authUsername;
    return this;
  }

   /**
   * Get authUsername
   * @return authUsername
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getAuthUsername() {
    return authUsername;
  }



  public void setAuthUsername(String authUsername) {
    this.authUsername = authUsername;
  }


  public MeveoInstance authPassword(String authPassword) {
    
    this.authPassword = authPassword;
    return this;
  }

   /**
   * Get authPassword
   * @return authPassword
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getAuthPassword() {
    return authPassword;
  }



  public void setAuthPassword(String authPassword) {
    this.authPassword = authPassword;
  }


  public MeveoInstance descriptionOrCode(String descriptionOrCode) {
    
    this.descriptionOrCode = descriptionOrCode;
    return this;
  }

   /**
   * Get descriptionOrCode
   * @return descriptionOrCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescriptionOrCode() {
    return descriptionOrCode;
  }



  public void setDescriptionOrCode(String descriptionOrCode) {
    this.descriptionOrCode = descriptionOrCode;
  }


  public MeveoInstance descriptionAndCode(String descriptionAndCode) {
    
    this.descriptionAndCode = descriptionAndCode;
    return this;
  }

   /**
   * Get descriptionAndCode
   * @return descriptionAndCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getDescriptionAndCode() {
    return descriptionAndCode;
  }



  public void setDescriptionAndCode(String descriptionAndCode) {
    this.descriptionAndCode = descriptionAndCode;
  }


  public MeveoInstance referenceCode(String referenceCode) {
    
    this.referenceCode = referenceCode;
    return this;
  }

   /**
   * Get referenceCode
   * @return referenceCode
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getReferenceCode() {
    return referenceCode;
  }



  public void setReferenceCode(String referenceCode) {
    this.referenceCode = referenceCode;
  }


  public MeveoInstance referenceDescription(String referenceDescription) {
    
    this.referenceDescription = referenceDescription;
    return this;
  }

   /**
   * Get referenceDescription
   * @return referenceDescription
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public String getReferenceDescription() {
    return referenceDescription;
  }



  public void setReferenceDescription(String referenceDescription) {
    this.referenceDescription = referenceDescription;
  }


  public MeveoInstance codeChanged(Boolean codeChanged) {
    
    this.codeChanged = codeChanged;
    return this;
  }

   /**
   * Get codeChanged
   * @return codeChanged
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getCodeChanged() {
    return codeChanged;
  }



  public void setCodeChanged(Boolean codeChanged) {
    this.codeChanged = codeChanged;
  }


  public MeveoInstance parentEntity(BusinessEntity parentEntity) {
    
    this.parentEntity = parentEntity;
    return this;
  }

   /**
   * Get parentEntity
   * @return parentEntity
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public BusinessEntity getParentEntity() {
    return parentEntity;
  }



  public void setParentEntity(BusinessEntity parentEntity) {
    this.parentEntity = parentEntity;
  }


  public MeveoInstance _transient(Boolean _transient) {
    
    this._transient = _transient;
    return this;
  }

   /**
   * Get _transient
   * @return _transient
  **/
  @javax.annotation.Nullable
  @ApiModelProperty(value = "")

  public Boolean getTransient() {
    return _transient;
  }



  public void setTransient(Boolean _transient) {
    this._transient = _transient;
  }


  @Override
  public boolean equals(java.lang.Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    MeveoInstance meveoInstance = (MeveoInstance) o;
    return Objects.equals(this.id, meveoInstance.id) &&
        Objects.equals(this.version, meveoInstance.version) &&
        Objects.equals(this.auditable, meveoInstance.auditable) &&
        Objects.equals(this.historized, meveoInstance.historized) &&
        Objects.equals(this.notified, meveoInstance.notified) &&
        Objects.equals(this.auditableFields, meveoInstance.auditableFields) &&
        Objects.equals(this.code, meveoInstance.code) &&
        Objects.equals(this.description, meveoInstance.description) &&
        Objects.equals(this.appendGeneratedCode, meveoInstance.appendGeneratedCode) &&
        Objects.equals(this.user, meveoInstance.user) &&
        Objects.equals(this.customer, meveoInstance.customer) &&
        Objects.equals(this.productName, meveoInstance.productName) &&
        Objects.equals(this.productVersion, meveoInstance.productVersion) &&
        Objects.equals(this.owner, meveoInstance.owner) &&
        Objects.equals(this.md5, meveoInstance.md5) &&
        Objects.equals(this.status, meveoInstance.status) &&
        Objects.equals(this.creationDate, meveoInstance.creationDate) &&
        Objects.equals(this.updateDate, meveoInstance.updateDate) &&
        Objects.equals(this.keyEntreprise, meveoInstance.keyEntreprise) &&
        Objects.equals(this.macAddress, meveoInstance.macAddress) &&
        Objects.equals(this.machineVendor, meveoInstance.machineVendor) &&
        Objects.equals(this.installationMode, meveoInstance.installationMode) &&
        Objects.equals(this.nbCores, meveoInstance.nbCores) &&
        Objects.equals(this.memory, meveoInstance.memory) &&
        Objects.equals(this.hdSize, meveoInstance.hdSize) &&
        Objects.equals(this.osName, meveoInstance.osName) &&
        Objects.equals(this.osVersion, meveoInstance.osVersion) &&
        Objects.equals(this.osArch, meveoInstance.osArch) &&
        Objects.equals(this.javaVmVersion, meveoInstance.javaVmVersion) &&
        Objects.equals(this.javaVmName, meveoInstance.javaVmName) &&
        Objects.equals(this.javaVendor, meveoInstance.javaVendor) &&
        Objects.equals(this.javaVersion, meveoInstance.javaVersion) &&
        Objects.equals(this.asVendor, meveoInstance.asVendor) &&
        Objects.equals(this.asVersion, meveoInstance.asVersion) &&
        Objects.equals(this.url, meveoInstance.url) &&
        Objects.equals(this.authUsername, meveoInstance.authUsername) &&
        Objects.equals(this.authPassword, meveoInstance.authPassword) &&
        Objects.equals(this.descriptionOrCode, meveoInstance.descriptionOrCode) &&
        Objects.equals(this.descriptionAndCode, meveoInstance.descriptionAndCode) &&
        Objects.equals(this.referenceCode, meveoInstance.referenceCode) &&
        Objects.equals(this.referenceDescription, meveoInstance.referenceDescription) &&
        Objects.equals(this.codeChanged, meveoInstance.codeChanged) &&
        Objects.equals(this.parentEntity, meveoInstance.parentEntity) &&
        Objects.equals(this._transient, meveoInstance._transient);
  }

  @Override
  public int hashCode() {
    return Objects.hash(id, version, auditable, historized, notified, auditableFields, code, description, appendGeneratedCode, user, customer, productName, productVersion, owner, md5, status, creationDate, updateDate, keyEntreprise, macAddress, machineVendor, installationMode, nbCores, memory, hdSize, osName, osVersion, osArch, javaVmVersion, javaVmName, javaVendor, javaVersion, asVendor, asVersion, url, authUsername, authPassword, descriptionOrCode, descriptionAndCode, referenceCode, referenceDescription, codeChanged, parentEntity, _transient);
  }


  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class MeveoInstance {\n");
    sb.append("    id: ").append(toIndentedString(id)).append("\n");
    sb.append("    version: ").append(toIndentedString(version)).append("\n");
    sb.append("    auditable: ").append(toIndentedString(auditable)).append("\n");
    sb.append("    historized: ").append(toIndentedString(historized)).append("\n");
    sb.append("    notified: ").append(toIndentedString(notified)).append("\n");
    sb.append("    auditableFields: ").append(toIndentedString(auditableFields)).append("\n");
    sb.append("    code: ").append(toIndentedString(code)).append("\n");
    sb.append("    description: ").append(toIndentedString(description)).append("\n");
    sb.append("    appendGeneratedCode: ").append(toIndentedString(appendGeneratedCode)).append("\n");
    sb.append("    user: ").append(toIndentedString(user)).append("\n");
    sb.append("    customer: ").append(toIndentedString(customer)).append("\n");
    sb.append("    productName: ").append(toIndentedString(productName)).append("\n");
    sb.append("    productVersion: ").append(toIndentedString(productVersion)).append("\n");
    sb.append("    owner: ").append(toIndentedString(owner)).append("\n");
    sb.append("    md5: ").append(toIndentedString(md5)).append("\n");
    sb.append("    status: ").append(toIndentedString(status)).append("\n");
    sb.append("    creationDate: ").append(toIndentedString(creationDate)).append("\n");
    sb.append("    updateDate: ").append(toIndentedString(updateDate)).append("\n");
    sb.append("    keyEntreprise: ").append(toIndentedString(keyEntreprise)).append("\n");
    sb.append("    macAddress: ").append(toIndentedString(macAddress)).append("\n");
    sb.append("    machineVendor: ").append(toIndentedString(machineVendor)).append("\n");
    sb.append("    installationMode: ").append(toIndentedString(installationMode)).append("\n");
    sb.append("    nbCores: ").append(toIndentedString(nbCores)).append("\n");
    sb.append("    memory: ").append(toIndentedString(memory)).append("\n");
    sb.append("    hdSize: ").append(toIndentedString(hdSize)).append("\n");
    sb.append("    osName: ").append(toIndentedString(osName)).append("\n");
    sb.append("    osVersion: ").append(toIndentedString(osVersion)).append("\n");
    sb.append("    osArch: ").append(toIndentedString(osArch)).append("\n");
    sb.append("    javaVmVersion: ").append(toIndentedString(javaVmVersion)).append("\n");
    sb.append("    javaVmName: ").append(toIndentedString(javaVmName)).append("\n");
    sb.append("    javaVendor: ").append(toIndentedString(javaVendor)).append("\n");
    sb.append("    javaVersion: ").append(toIndentedString(javaVersion)).append("\n");
    sb.append("    asVendor: ").append(toIndentedString(asVendor)).append("\n");
    sb.append("    asVersion: ").append(toIndentedString(asVersion)).append("\n");
    sb.append("    url: ").append(toIndentedString(url)).append("\n");
    sb.append("    authUsername: ").append(toIndentedString(authUsername)).append("\n");
    sb.append("    authPassword: ").append(toIndentedString(authPassword)).append("\n");
    sb.append("    descriptionOrCode: ").append(toIndentedString(descriptionOrCode)).append("\n");
    sb.append("    descriptionAndCode: ").append(toIndentedString(descriptionAndCode)).append("\n");
    sb.append("    referenceCode: ").append(toIndentedString(referenceCode)).append("\n");
    sb.append("    referenceDescription: ").append(toIndentedString(referenceDescription)).append("\n");
    sb.append("    codeChanged: ").append(toIndentedString(codeChanged)).append("\n");
    sb.append("    parentEntity: ").append(toIndentedString(parentEntity)).append("\n");
    sb.append("    _transient: ").append(toIndentedString(_transient)).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    ");
  }

}

