/*
 * lakeFS API
 * lakeFS HTTP API
 *
 * The version of the OpenAPI document: 0.1.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


package io.lakefs.clients.api.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;

/**
 * StorageConfig
 */
@javax.annotation.Generated(value = "org.openapitools.codegen.languages.JavaClientCodegen")
public class StorageConfig {
  public static final String SERIALIZED_NAME_BLOCKSTORE_TYPE = "blockstore_type";
  @SerializedName(SERIALIZED_NAME_BLOCKSTORE_TYPE)
  private String blockstoreType;

  public static final String SERIALIZED_NAME_BLOCKSTORE_NAMESPACE_EXAMPLE = "blockstore_namespace_example";
  @SerializedName(SERIALIZED_NAME_BLOCKSTORE_NAMESPACE_EXAMPLE)
  private String blockstoreNamespaceExample;

  public static final String SERIALIZED_NAME_BLOCKSTORE_NAMESPACE_VALIDITY_REGEX = "blockstore_namespace_ValidityRegex";
  @SerializedName(SERIALIZED_NAME_BLOCKSTORE_NAMESPACE_VALIDITY_REGEX)
  private String blockstoreNamespaceValidityRegex;

  public static final String SERIALIZED_NAME_DEFAULT_NAMESPACE_PREFIX = "default_namespace_prefix";
  @SerializedName(SERIALIZED_NAME_DEFAULT_NAMESPACE_PREFIX)
  private String defaultNamespacePrefix;

  public static final String SERIALIZED_NAME_PRE_SIGN_SUPPORT = "pre_sign_support";
  @SerializedName(SERIALIZED_NAME_PRE_SIGN_SUPPORT)
  private Boolean preSignSupport;

  public static final String SERIALIZED_NAME_PRE_SIGN_SUPPORT_UI = "pre_sign_support_ui";
  @SerializedName(SERIALIZED_NAME_PRE_SIGN_SUPPORT_UI)
  private Boolean preSignSupportUi;

  public static final String SERIALIZED_NAME_IMPORT_SUPPORT = "import_support";
  @SerializedName(SERIALIZED_NAME_IMPORT_SUPPORT)
  private Boolean importSupport;


  public StorageConfig blockstoreType(String blockstoreType) {
    
    this.blockstoreType = blockstoreType;
    return this;
  }

   /**
   * Get blockstoreType
   * @return blockstoreType
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public String getBlockstoreType() {
    return blockstoreType;
  }


  public void setBlockstoreType(String blockstoreType) {
    this.blockstoreType = blockstoreType;
  }


  public StorageConfig blockstoreNamespaceExample(String blockstoreNamespaceExample) {
    
    this.blockstoreNamespaceExample = blockstoreNamespaceExample;
    return this;
  }

   /**
   * Get blockstoreNamespaceExample
   * @return blockstoreNamespaceExample
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public String getBlockstoreNamespaceExample() {
    return blockstoreNamespaceExample;
  }


  public void setBlockstoreNamespaceExample(String blockstoreNamespaceExample) {
    this.blockstoreNamespaceExample = blockstoreNamespaceExample;
  }


  public StorageConfig blockstoreNamespaceValidityRegex(String blockstoreNamespaceValidityRegex) {
    
    this.blockstoreNamespaceValidityRegex = blockstoreNamespaceValidityRegex;
    return this;
  }

   /**
   * Get blockstoreNamespaceValidityRegex
   * @return blockstoreNamespaceValidityRegex
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public String getBlockstoreNamespaceValidityRegex() {
    return blockstoreNamespaceValidityRegex;
  }


  public void setBlockstoreNamespaceValidityRegex(String blockstoreNamespaceValidityRegex) {
    this.blockstoreNamespaceValidityRegex = blockstoreNamespaceValidityRegex;
  }


  public StorageConfig defaultNamespacePrefix(String defaultNamespacePrefix) {
    
    this.defaultNamespacePrefix = defaultNamespacePrefix;
    return this;
  }

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

  public String getDefaultNamespacePrefix() {
    return defaultNamespacePrefix;
  }


  public void setDefaultNamespacePrefix(String defaultNamespacePrefix) {
    this.defaultNamespacePrefix = defaultNamespacePrefix;
  }


  public StorageConfig preSignSupport(Boolean preSignSupport) {
    
    this.preSignSupport = preSignSupport;
    return this;
  }

   /**
   * Get preSignSupport
   * @return preSignSupport
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public Boolean getPreSignSupport() {
    return preSignSupport;
  }


  public void setPreSignSupport(Boolean preSignSupport) {
    this.preSignSupport = preSignSupport;
  }


  public StorageConfig preSignSupportUi(Boolean preSignSupportUi) {
    
    this.preSignSupportUi = preSignSupportUi;
    return this;
  }

   /**
   * Get preSignSupportUi
   * @return preSignSupportUi
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public Boolean getPreSignSupportUi() {
    return preSignSupportUi;
  }


  public void setPreSignSupportUi(Boolean preSignSupportUi) {
    this.preSignSupportUi = preSignSupportUi;
  }


  public StorageConfig importSupport(Boolean importSupport) {
    
    this.importSupport = importSupport;
    return this;
  }

   /**
   * Get importSupport
   * @return importSupport
  **/
  @javax.annotation.Nonnull
  @ApiModelProperty(required = true, value = "")

  public Boolean getImportSupport() {
    return importSupport;
  }


  public void setImportSupport(Boolean importSupport) {
    this.importSupport = importSupport;
  }


  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }
    StorageConfig storageConfig = (StorageConfig) o;
    return Objects.equals(this.blockstoreType, storageConfig.blockstoreType) &&
        Objects.equals(this.blockstoreNamespaceExample, storageConfig.blockstoreNamespaceExample) &&
        Objects.equals(this.blockstoreNamespaceValidityRegex, storageConfig.blockstoreNamespaceValidityRegex) &&
        Objects.equals(this.defaultNamespacePrefix, storageConfig.defaultNamespacePrefix) &&
        Objects.equals(this.preSignSupport, storageConfig.preSignSupport) &&
        Objects.equals(this.preSignSupportUi, storageConfig.preSignSupportUi) &&
        Objects.equals(this.importSupport, storageConfig.importSupport);
  }

  @Override
  public int hashCode() {
    return Objects.hash(blockstoreType, blockstoreNamespaceExample, blockstoreNamespaceValidityRegex, defaultNamespacePrefix, preSignSupport, preSignSupportUi, importSupport);
  }

  @Override
  public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append("class StorageConfig {\n");
    sb.append("    blockstoreType: ").append(toIndentedString(blockstoreType)).append("\n");
    sb.append("    blockstoreNamespaceExample: ").append(toIndentedString(blockstoreNamespaceExample)).append("\n");
    sb.append("    blockstoreNamespaceValidityRegex: ").append(toIndentedString(blockstoreNamespaceValidityRegex)).append("\n");
    sb.append("    defaultNamespacePrefix: ").append(toIndentedString(defaultNamespacePrefix)).append("\n");
    sb.append("    preSignSupport: ").append(toIndentedString(preSignSupport)).append("\n");
    sb.append("    preSignSupportUi: ").append(toIndentedString(preSignSupportUi)).append("\n");
    sb.append("    importSupport: ").append(toIndentedString(importSupport)).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(Object o) {
    if (o == null) {
      return "null";
    }
    return o.toString().replace("\n", "\n    ");
  }

}

