yandex.cloud.api.mdb.redis.v1.config.Redis Maven / Gradle / Ivy
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: yandex/cloud/mdb/redis/v1/config/redis.proto
package yandex.cloud.api.mdb.redis.v1.config;
public final class Redis {
  private Redis() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions(
        (com.google.protobuf.ExtensionRegistryLite) registry);
  }
  public interface RedisConfigOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.config.RedisConfig)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Redis key eviction policy for a dataset that reaches maximum memory,
     * available to the host. Redis maxmemory setting depends on Managed
     * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
     * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
     * @return The enum numeric value on the wire for maxmemoryPolicy.
     */
    int getMaxmemoryPolicyValue();
    /**
     * 
     * Redis key eviction policy for a dataset that reaches maximum memory,
     * available to the host. Redis maxmemory setting depends on Managed
     * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
     * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
     * @return The maxmemoryPolicy.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy getMaxmemoryPolicy();
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     * @return Whether the timeout field is set.
     */
    boolean hasTimeout();
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     * @return The timeout.
     */
    com.google.protobuf.Int64Value getTimeout();
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     */
    com.google.protobuf.Int64ValueOrBuilder getTimeoutOrBuilder();
    /**
     * 
     * Authentication password.
     * 
     *
     * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
     * @return The password.
     */
    java.lang.String getPassword();
    /**
     * 
     * Authentication password.
     * 
     *
     * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
     * @return The bytes for password.
     */
    com.google.protobuf.ByteString
        getPasswordBytes();
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     * @return Whether the databases field is set.
     */
    boolean hasDatabases();
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     * @return The databases.
     */
    com.google.protobuf.Int64Value getDatabases();
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     */
    com.google.protobuf.Int64ValueOrBuilder getDatabasesOrBuilder();
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     * @return Whether the slowlogLogSlowerThan field is set.
     */
    boolean hasSlowlogLogSlowerThan();
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     * @return The slowlogLogSlowerThan.
     */
    com.google.protobuf.Int64Value getSlowlogLogSlowerThan();
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     */
    com.google.protobuf.Int64ValueOrBuilder getSlowlogLogSlowerThanOrBuilder();
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     * @return Whether the slowlogMaxLen field is set.
     */
    boolean hasSlowlogMaxLen();
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     * @return The slowlogMaxLen.
     */
    com.google.protobuf.Int64Value getSlowlogMaxLen();
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     */
    com.google.protobuf.Int64ValueOrBuilder getSlowlogMaxLenOrBuilder();
    /**
     * 
     * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
     * 
     *
     * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
     * @return The notifyKeyspaceEvents.
     */
    java.lang.String getNotifyKeyspaceEvents();
    /**
     * 
     * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
     * 
     *
     * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
     * @return The bytes for notifyKeyspaceEvents.
     */
    com.google.protobuf.ByteString
        getNotifyKeyspaceEventsBytes();
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     * @return Whether the clientOutputBufferLimitPubsub field is set.
     */
    boolean hasClientOutputBufferLimitPubsub();
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     * @return The clientOutputBufferLimitPubsub.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitPubsub();
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitPubsubOrBuilder();
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     * @return Whether the clientOutputBufferLimitNormal field is set.
     */
    boolean hasClientOutputBufferLimitNormal();
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     * @return The clientOutputBufferLimitNormal.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitNormal();
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitNormalOrBuilder();
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     * @return Whether the maxmemoryPercent field is set.
     */
    boolean hasMaxmemoryPercent();
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     * @return The maxmemoryPercent.
     */
    com.google.protobuf.Int64Value getMaxmemoryPercent();
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     */
    com.google.protobuf.Int64ValueOrBuilder getMaxmemoryPercentOrBuilder();
  }
  /**
   * 
   * Fields and structure of `RedisConfig` reflects Redis configuration file
   * parameters.
   * 
   *
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfig}
   */
  public static final class RedisConfig extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.config.RedisConfig)
      RedisConfigOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RedisConfig.newBuilder() to construct.
    private RedisConfig(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RedisConfig() {
      maxmemoryPolicy_ = 0;
      password_ = "";
      notifyKeyspaceEvents_ = "";
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RedisConfig();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RedisConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8: {
              int rawValue = input.readEnum();
              maxmemoryPolicy_ = rawValue;
              break;
            }
            case 18: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (timeout_ != null) {
                subBuilder = timeout_.toBuilder();
              }
              timeout_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(timeout_);
                timeout_ = subBuilder.buildPartial();
              }
              break;
            }
            case 26: {
              java.lang.String s = input.readStringRequireUtf8();
              password_ = s;
              break;
            }
            case 34: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (databases_ != null) {
                subBuilder = databases_.toBuilder();
              }
              databases_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(databases_);
                databases_ = subBuilder.buildPartial();
              }
              break;
            }
            case 42: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (slowlogLogSlowerThan_ != null) {
                subBuilder = slowlogLogSlowerThan_.toBuilder();
              }
              slowlogLogSlowerThan_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(slowlogLogSlowerThan_);
                slowlogLogSlowerThan_ = subBuilder.buildPartial();
              }
              break;
            }
            case 50: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (slowlogMaxLen_ != null) {
                subBuilder = slowlogMaxLen_.toBuilder();
              }
              slowlogMaxLen_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(slowlogMaxLen_);
                slowlogMaxLen_ = subBuilder.buildPartial();
              }
              break;
            }
            case 58: {
              java.lang.String s = input.readStringRequireUtf8();
              notifyKeyspaceEvents_ = s;
              break;
            }
            case 66: {
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder subBuilder = null;
              if (clientOutputBufferLimitPubsub_ != null) {
                subBuilder = clientOutputBufferLimitPubsub_.toBuilder();
              }
              clientOutputBufferLimitPubsub_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(clientOutputBufferLimitPubsub_);
                clientOutputBufferLimitPubsub_ = subBuilder.buildPartial();
              }
              break;
            }
            case 74: {
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder subBuilder = null;
              if (clientOutputBufferLimitNormal_ != null) {
                subBuilder = clientOutputBufferLimitNormal_.toBuilder();
              }
              clientOutputBufferLimitNormal_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(clientOutputBufferLimitNormal_);
                clientOutputBufferLimitNormal_ = subBuilder.buildPartial();
              }
              break;
            }
            case 82: {
              com.google.protobuf.Int64Value.Builder subBuilder = null;
              if (maxmemoryPercent_ != null) {
                subBuilder = maxmemoryPercent_.toBuilder();
              }
              maxmemoryPercent_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(maxmemoryPercent_);
                maxmemoryPercent_ = subBuilder.buildPartial();
              }
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder.class);
    }
    /**
     * Protobuf enum {@code yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy}
     */
    public enum MaxmemoryPolicy
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * MAXMEMORY_POLICY_UNSPECIFIED = 0;
       */
      MAXMEMORY_POLICY_UNSPECIFIED(0),
      /**
       * 
       * Try to remove less recently used (LRU) keys with `expire set`.
       * 
       *
       * VOLATILE_LRU = 1;
       */
      VOLATILE_LRU(1),
      /**
       * 
       * Remove less recently used (LRU) keys.
       * 
       *
       * ALLKEYS_LRU = 2;
       */
      ALLKEYS_LRU(2),
      /**
       * 
       * Try to remove least frequently used (LFU) keys with `expire set`.
       * 
       *
       * VOLATILE_LFU = 3;
       */
      VOLATILE_LFU(3),
      /**
       * 
       * Remove least frequently used (LFU) keys.
       * 
       *
       * ALLKEYS_LFU = 4;
       */
      ALLKEYS_LFU(4),
      /**
       * 
       * Try to remove keys with `expire set` randomly.
       * 
       *
       * VOLATILE_RANDOM = 5;
       */
      VOLATILE_RANDOM(5),
      /**
       * 
       * Remove keys randomly.
       * 
       *
       * ALLKEYS_RANDOM = 6;
       */
      ALLKEYS_RANDOM(6),
      /**
       * 
       * Try to remove less recently used (LRU) keys with `expire set`
       * and shorter TTL first.
       * 
       *
       * VOLATILE_TTL = 7;
       */
      VOLATILE_TTL(7),
      /**
       * 
       * Return errors when memory limit was reached and commands could require
       * more memory to be used.
       * 
       *
       * NOEVICTION = 8;
       */
      NOEVICTION(8),
      UNRECOGNIZED(-1),
      ;
      /**
       * MAXMEMORY_POLICY_UNSPECIFIED = 0;
       */
      public static final int MAXMEMORY_POLICY_UNSPECIFIED_VALUE = 0;
      /**
       * 
       * Try to remove less recently used (LRU) keys with `expire set`.
       * 
       *
       * VOLATILE_LRU = 1;
       */
      public static final int VOLATILE_LRU_VALUE = 1;
      /**
       * 
       * Remove less recently used (LRU) keys.
       * 
       *
       * ALLKEYS_LRU = 2;
       */
      public static final int ALLKEYS_LRU_VALUE = 2;
      /**
       * 
       * Try to remove least frequently used (LFU) keys with `expire set`.
       * 
       *
       * VOLATILE_LFU = 3;
       */
      public static final int VOLATILE_LFU_VALUE = 3;
      /**
       * 
       * Remove least frequently used (LFU) keys.
       * 
       *
       * ALLKEYS_LFU = 4;
       */
      public static final int ALLKEYS_LFU_VALUE = 4;
      /**
       * 
       * Try to remove keys with `expire set` randomly.
       * 
       *
       * VOLATILE_RANDOM = 5;
       */
      public static final int VOLATILE_RANDOM_VALUE = 5;
      /**
       * 
       * Remove keys randomly.
       * 
       *
       * ALLKEYS_RANDOM = 6;
       */
      public static final int ALLKEYS_RANDOM_VALUE = 6;
      /**
       * 
       * Try to remove less recently used (LRU) keys with `expire set`
       * and shorter TTL first.
       * 
       *
       * VOLATILE_TTL = 7;
       */
      public static final int VOLATILE_TTL_VALUE = 7;
      /**
       * 
       * Return errors when memory limit was reached and commands could require
       * more memory to be used.
       * 
       *
       * NOEVICTION = 8;
       */
      public static final int NOEVICTION_VALUE = 8;
      public final int getNumber() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalArgumentException(
              "Can't get the number of an unknown enum value.");
        }
        return value;
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static MaxmemoryPolicy valueOf(int value) {
        return forNumber(value);
      }
      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static MaxmemoryPolicy forNumber(int value) {
        switch (value) {
          case 0: return MAXMEMORY_POLICY_UNSPECIFIED;
          case 1: return VOLATILE_LRU;
          case 2: return ALLKEYS_LRU;
          case 3: return VOLATILE_LFU;
          case 4: return ALLKEYS_LFU;
          case 5: return VOLATILE_RANDOM;
          case 6: return ALLKEYS_RANDOM;
          case 7: return VOLATILE_TTL;
          case 8: return NOEVICTION;
          default: return null;
        }
      }
      public static com.google.protobuf.Internal.EnumLiteMap
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.google.protobuf.Internal.EnumLiteMap<
          MaxmemoryPolicy> internalValueMap =
            new com.google.protobuf.Internal.EnumLiteMap() {
              public MaxmemoryPolicy findValueByNumber(int number) {
                return MaxmemoryPolicy.forNumber(number);
              }
            };
      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        if (this == UNRECOGNIZED) {
          throw new java.lang.IllegalStateException(
              "Can't get the descriptor of an unrecognized enum value.");
        }
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDescriptor().getEnumTypes().get(0);
      }
      private static final MaxmemoryPolicy[] VALUES = values();
      public static MaxmemoryPolicy valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        if (desc.getIndex() == -1) {
          return UNRECOGNIZED;
        }
        return VALUES[desc.getIndex()];
      }
      private final int value;
      private MaxmemoryPolicy(int value) {
        this.value = value;
      }
      // @@protoc_insertion_point(enum_scope:yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy)
    }
    public interface ClientOutputBufferLimitOrBuilder extends
        // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit)
        com.google.protobuf.MessageOrBuilder {
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the hardLimit field is set.
       */
      boolean hasHardLimit();
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       * @return The hardLimit.
       */
      com.google.protobuf.Int64Value getHardLimit();
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       */
      com.google.protobuf.Int64ValueOrBuilder getHardLimitOrBuilder();
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the softLimit field is set.
       */
      boolean hasSoftLimit();
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       * @return The softLimit.
       */
      com.google.protobuf.Int64Value getSoftLimit();
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       */
      com.google.protobuf.Int64ValueOrBuilder getSoftLimitOrBuilder();
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the softSeconds field is set.
       */
      boolean hasSoftSeconds();
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       * @return The softSeconds.
       */
      com.google.protobuf.Int64Value getSoftSeconds();
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       */
      com.google.protobuf.Int64ValueOrBuilder getSoftSecondsOrBuilder();
    }
    /**
     * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit}
     */
    public static final class ClientOutputBufferLimit extends
        com.google.protobuf.GeneratedMessageV3 implements
        // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit)
        ClientOutputBufferLimitOrBuilder {
    private static final long serialVersionUID = 0L;
      // Use ClientOutputBufferLimit.newBuilder() to construct.
      private ClientOutputBufferLimit(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
        super(builder);
      }
      private ClientOutputBufferLimit() {
      }
      @java.lang.Override
      @SuppressWarnings({"unused"})
      protected java.lang.Object newInstance(
          UnusedPrivateParameter unused) {
        return new ClientOutputBufferLimit();
      }
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
      getUnknownFields() {
        return this.unknownFields;
      }
      private ClientOutputBufferLimit(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        this();
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.google.protobuf.Int64Value.Builder subBuilder = null;
                if (hardLimit_ != null) {
                  subBuilder = hardLimit_.toBuilder();
                }
                hardLimit_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(hardLimit_);
                  hardLimit_ = subBuilder.buildPartial();
                }
                break;
              }
              case 26: {
                com.google.protobuf.Int64Value.Builder subBuilder = null;
                if (softLimit_ != null) {
                  subBuilder = softLimit_.toBuilder();
                }
                softLimit_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(softLimit_);
                  softLimit_ = subBuilder.buildPartial();
                }
                break;
              }
              case 42: {
                com.google.protobuf.Int64Value.Builder subBuilder = null;
                if (softSeconds_ != null) {
                  subBuilder = softSeconds_.toBuilder();
                }
                softSeconds_ = input.readMessage(com.google.protobuf.Int64Value.parser(), extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(softSeconds_);
                  softSeconds_ = subBuilder.buildPartial();
                }
                break;
              }
              default: {
                if (!parseUnknownField(
                    input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder.class);
      }
      public static final int HARD_LIMIT_FIELD_NUMBER = 1;
      private com.google.protobuf.Int64Value hardLimit_;
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the hardLimit field is set.
       */
      @java.lang.Override
      public boolean hasHardLimit() {
        return hardLimit_ != null;
      }
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       * @return The hardLimit.
       */
      @java.lang.Override
      public com.google.protobuf.Int64Value getHardLimit() {
        return hardLimit_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : hardLimit_;
      }
      /**
       * 
       * Total limit in bytes.
       * 
       *
       * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
       */
      @java.lang.Override
      public com.google.protobuf.Int64ValueOrBuilder getHardLimitOrBuilder() {
        return getHardLimit();
      }
      public static final int SOFT_LIMIT_FIELD_NUMBER = 3;
      private com.google.protobuf.Int64Value softLimit_;
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the softLimit field is set.
       */
      @java.lang.Override
      public boolean hasSoftLimit() {
        return softLimit_ != null;
      }
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       * @return The softLimit.
       */
      @java.lang.Override
      public com.google.protobuf.Int64Value getSoftLimit() {
        return softLimit_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : softLimit_;
      }
      /**
       * 
       * Limit in bytes during certain time period.
       * 
       *
       * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
       */
      @java.lang.Override
      public com.google.protobuf.Int64ValueOrBuilder getSoftLimitOrBuilder() {
        return getSoftLimit();
      }
      public static final int SOFT_SECONDS_FIELD_NUMBER = 5;
      private com.google.protobuf.Int64Value softSeconds_;
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the softSeconds field is set.
       */
      @java.lang.Override
      public boolean hasSoftSeconds() {
        return softSeconds_ != null;
      }
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       * @return The softSeconds.
       */
      @java.lang.Override
      public com.google.protobuf.Int64Value getSoftSeconds() {
        return softSeconds_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : softSeconds_;
      }
      /**
       * 
       * Seconds for soft limit.
       * 
       *
       * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
       */
      @java.lang.Override
      public com.google.protobuf.Int64ValueOrBuilder getSoftSecondsOrBuilder() {
        return getSoftSeconds();
      }
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
        memoizedIsInitialized = 1;
        return true;
      }
      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (hardLimit_ != null) {
          output.writeMessage(1, getHardLimit());
        }
        if (softLimit_ != null) {
          output.writeMessage(3, getSoftLimit());
        }
        if (softSeconds_ != null) {
          output.writeMessage(5, getSoftSeconds());
        }
        unknownFields.writeTo(output);
      }
      @java.lang.Override
      public int getSerializedSize() {
        int size = memoizedSize;
        if (size != -1) return size;
        size = 0;
        if (hardLimit_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(1, getHardLimit());
        }
        if (softLimit_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, getSoftLimit());
        }
        if (softSeconds_ != null) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(5, getSoftSeconds());
        }
        size += unknownFields.getSerializedSize();
        memoizedSize = size;
        return size;
      }
      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit)) {
          return super.equals(obj);
        }
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit other = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit) obj;
        if (hasHardLimit() != other.hasHardLimit()) return false;
        if (hasHardLimit()) {
          if (!getHardLimit()
              .equals(other.getHardLimit())) return false;
        }
        if (hasSoftLimit() != other.hasSoftLimit()) return false;
        if (hasSoftLimit()) {
          if (!getSoftLimit()
              .equals(other.getSoftLimit())) return false;
        }
        if (hasSoftSeconds() != other.hasSoftSeconds()) return false;
        if (hasSoftSeconds()) {
          if (!getSoftSeconds()
              .equals(other.getSoftSeconds())) return false;
        }
        if (!unknownFields.equals(other.unknownFields)) return false;
        return true;
      }
      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasHardLimit()) {
          hash = (37 * hash) + HARD_LIMIT_FIELD_NUMBER;
          hash = (53 * hash) + getHardLimit().hashCode();
        }
        if (hasSoftLimit()) {
          hash = (37 * hash) + SOFT_LIMIT_FIELD_NUMBER;
          hash = (53 * hash) + getSoftLimit().hashCode();
        }
        if (hasSoftSeconds()) {
          hash = (37 * hash) + SOFT_SECONDS_FIELD_NUMBER;
          hash = (53 * hash) + getSoftSeconds().hashCode();
        }
        hash = (29 * hash) + unknownFields.hashCode();
        memoizedHashCode = hash;
        return hash;
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input);
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessageV3
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }
      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessageV3.Builder implements
          // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit)
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor;
        }
        @java.lang.Override
        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder.class);
        }
        // Construct using yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
        private Builder(
            com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessageV3
                  .alwaysUseFieldBuilders) {
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          if (hardLimitBuilder_ == null) {
            hardLimit_ = null;
          } else {
            hardLimit_ = null;
            hardLimitBuilder_ = null;
          }
          if (softLimitBuilder_ == null) {
            softLimit_ = null;
          } else {
            softLimit_ = null;
            softLimitBuilder_ = null;
          }
          if (softSecondsBuilder_ == null) {
            softSeconds_ = null;
          } else {
            softSeconds_ = null;
            softSecondsBuilder_ = null;
          }
          return this;
        }
        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getDefaultInstanceForType() {
          return yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance();
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit build() {
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
        @java.lang.Override
        public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit buildPartial() {
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit result = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit(this);
          if (hardLimitBuilder_ == null) {
            result.hardLimit_ = hardLimit_;
          } else {
            result.hardLimit_ = hardLimitBuilder_.build();
          }
          if (softLimitBuilder_ == null) {
            result.softLimit_ = softLimit_;
          } else {
            result.softLimit_ = softLimitBuilder_.build();
          }
          if (softSecondsBuilder_ == null) {
            result.softSeconds_ = softSeconds_;
          } else {
            result.softSeconds_ = softSecondsBuilder_.build();
          }
          onBuilt();
          return result;
        }
        @java.lang.Override
        public Builder clone() {
          return super.clone();
        }
        @java.lang.Override
        public Builder setField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.setField(field, value);
        }
        @java.lang.Override
        public Builder clearField(
            com.google.protobuf.Descriptors.FieldDescriptor field) {
          return super.clearField(field);
        }
        @java.lang.Override
        public Builder clearOneof(
            com.google.protobuf.Descriptors.OneofDescriptor oneof) {
          return super.clearOneof(oneof);
        }
        @java.lang.Override
        public Builder setRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            int index, java.lang.Object value) {
          return super.setRepeatedField(field, index, value);
        }
        @java.lang.Override
        public Builder addRepeatedField(
            com.google.protobuf.Descriptors.FieldDescriptor field,
            java.lang.Object value) {
          return super.addRepeatedField(field, value);
        }
        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit) {
            return mergeFrom((yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
        public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit other) {
          if (other == yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance()) return this;
          if (other.hasHardLimit()) {
            mergeHardLimit(other.getHardLimit());
          }
          if (other.hasSoftLimit()) {
            mergeSoftLimit(other.getSoftLimit());
          }
          if (other.hasSoftSeconds()) {
            mergeSoftSeconds(other.getSoftSeconds());
          }
          this.mergeUnknownFields(other.unknownFields);
          onChanged();
          return this;
        }
        @java.lang.Override
        public final boolean isInitialized() {
          return true;
        }
        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit) e.getUnfinishedMessage();
            throw e.unwrapIOException();
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private com.google.protobuf.Int64Value hardLimit_;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> hardLimitBuilder_;
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         * @return Whether the hardLimit field is set.
         */
        public boolean hasHardLimit() {
          return hardLimitBuilder_ != null || hardLimit_ != null;
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         * @return The hardLimit.
         */
        public com.google.protobuf.Int64Value getHardLimit() {
          if (hardLimitBuilder_ == null) {
            return hardLimit_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : hardLimit_;
          } else {
            return hardLimitBuilder_.getMessage();
          }
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setHardLimit(com.google.protobuf.Int64Value value) {
          if (hardLimitBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            hardLimit_ = value;
            onChanged();
          } else {
            hardLimitBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setHardLimit(
            com.google.protobuf.Int64Value.Builder builderForValue) {
          if (hardLimitBuilder_ == null) {
            hardLimit_ = builderForValue.build();
            onChanged();
          } else {
            hardLimitBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder mergeHardLimit(com.google.protobuf.Int64Value value) {
          if (hardLimitBuilder_ == null) {
            if (hardLimit_ != null) {
              hardLimit_ =
                com.google.protobuf.Int64Value.newBuilder(hardLimit_).mergeFrom(value).buildPartial();
            } else {
              hardLimit_ = value;
            }
            onChanged();
          } else {
            hardLimitBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder clearHardLimit() {
          if (hardLimitBuilder_ == null) {
            hardLimit_ = null;
            onChanged();
          } else {
            hardLimit_ = null;
            hardLimitBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64Value.Builder getHardLimitBuilder() {
          
          onChanged();
          return getHardLimitFieldBuilder().getBuilder();
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64ValueOrBuilder getHardLimitOrBuilder() {
          if (hardLimitBuilder_ != null) {
            return hardLimitBuilder_.getMessageOrBuilder();
          } else {
            return hardLimit_ == null ?
                com.google.protobuf.Int64Value.getDefaultInstance() : hardLimit_;
          }
        }
        /**
         * 
         * Total limit in bytes.
         * 
         *
         * .google.protobuf.Int64Value hard_limit = 1 [(.yandex.cloud.value) = ">=0"];
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
            getHardLimitFieldBuilder() {
          if (hardLimitBuilder_ == null) {
            hardLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                    getHardLimit(),
                    getParentForChildren(),
                    isClean());
            hardLimit_ = null;
          }
          return hardLimitBuilder_;
        }
        private com.google.protobuf.Int64Value softLimit_;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> softLimitBuilder_;
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         * @return Whether the softLimit field is set.
         */
        public boolean hasSoftLimit() {
          return softLimitBuilder_ != null || softLimit_ != null;
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         * @return The softLimit.
         */
        public com.google.protobuf.Int64Value getSoftLimit() {
          if (softLimitBuilder_ == null) {
            return softLimit_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : softLimit_;
          } else {
            return softLimitBuilder_.getMessage();
          }
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setSoftLimit(com.google.protobuf.Int64Value value) {
          if (softLimitBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            softLimit_ = value;
            onChanged();
          } else {
            softLimitBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setSoftLimit(
            com.google.protobuf.Int64Value.Builder builderForValue) {
          if (softLimitBuilder_ == null) {
            softLimit_ = builderForValue.build();
            onChanged();
          } else {
            softLimitBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder mergeSoftLimit(com.google.protobuf.Int64Value value) {
          if (softLimitBuilder_ == null) {
            if (softLimit_ != null) {
              softLimit_ =
                com.google.protobuf.Int64Value.newBuilder(softLimit_).mergeFrom(value).buildPartial();
            } else {
              softLimit_ = value;
            }
            onChanged();
          } else {
            softLimitBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder clearSoftLimit() {
          if (softLimitBuilder_ == null) {
            softLimit_ = null;
            onChanged();
          } else {
            softLimit_ = null;
            softLimitBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64Value.Builder getSoftLimitBuilder() {
          
          onChanged();
          return getSoftLimitFieldBuilder().getBuilder();
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64ValueOrBuilder getSoftLimitOrBuilder() {
          if (softLimitBuilder_ != null) {
            return softLimitBuilder_.getMessageOrBuilder();
          } else {
            return softLimit_ == null ?
                com.google.protobuf.Int64Value.getDefaultInstance() : softLimit_;
          }
        }
        /**
         * 
         * Limit in bytes during certain time period.
         * 
         *
         * .google.protobuf.Int64Value soft_limit = 3 [(.yandex.cloud.value) = ">=0"];
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
            getSoftLimitFieldBuilder() {
          if (softLimitBuilder_ == null) {
            softLimitBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                    getSoftLimit(),
                    getParentForChildren(),
                    isClean());
            softLimit_ = null;
          }
          return softLimitBuilder_;
        }
        private com.google.protobuf.Int64Value softSeconds_;
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> softSecondsBuilder_;
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         * @return Whether the softSeconds field is set.
         */
        public boolean hasSoftSeconds() {
          return softSecondsBuilder_ != null || softSeconds_ != null;
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         * @return The softSeconds.
         */
        public com.google.protobuf.Int64Value getSoftSeconds() {
          if (softSecondsBuilder_ == null) {
            return softSeconds_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : softSeconds_;
          } else {
            return softSecondsBuilder_.getMessage();
          }
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setSoftSeconds(com.google.protobuf.Int64Value value) {
          if (softSecondsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            softSeconds_ = value;
            onChanged();
          } else {
            softSecondsBuilder_.setMessage(value);
          }
          return this;
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder setSoftSeconds(
            com.google.protobuf.Int64Value.Builder builderForValue) {
          if (softSecondsBuilder_ == null) {
            softSeconds_ = builderForValue.build();
            onChanged();
          } else {
            softSecondsBuilder_.setMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder mergeSoftSeconds(com.google.protobuf.Int64Value value) {
          if (softSecondsBuilder_ == null) {
            if (softSeconds_ != null) {
              softSeconds_ =
                com.google.protobuf.Int64Value.newBuilder(softSeconds_).mergeFrom(value).buildPartial();
            } else {
              softSeconds_ = value;
            }
            onChanged();
          } else {
            softSecondsBuilder_.mergeFrom(value);
          }
          return this;
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public Builder clearSoftSeconds() {
          if (softSecondsBuilder_ == null) {
            softSeconds_ = null;
            onChanged();
          } else {
            softSeconds_ = null;
            softSecondsBuilder_ = null;
          }
          return this;
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64Value.Builder getSoftSecondsBuilder() {
          
          onChanged();
          return getSoftSecondsFieldBuilder().getBuilder();
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        public com.google.protobuf.Int64ValueOrBuilder getSoftSecondsOrBuilder() {
          if (softSecondsBuilder_ != null) {
            return softSecondsBuilder_.getMessageOrBuilder();
          } else {
            return softSeconds_ == null ?
                com.google.protobuf.Int64Value.getDefaultInstance() : softSeconds_;
          }
        }
        /**
         * 
         * Seconds for soft limit.
         * 
         *
         * .google.protobuf.Int64Value soft_seconds = 5 [(.yandex.cloud.value) = ">=0"];
         */
        private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
            getSoftSecondsFieldBuilder() {
          if (softSecondsBuilder_ == null) {
            softSecondsBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                    getSoftSeconds(),
                    getParentForChildren(),
                    isClean());
            softSeconds_ = null;
          }
          return softSecondsBuilder_;
        }
        @java.lang.Override
        public final Builder setUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.setUnknownFields(unknownFields);
        }
        @java.lang.Override
        public final Builder mergeUnknownFields(
            final com.google.protobuf.UnknownFieldSet unknownFields) {
          return super.mergeUnknownFields(unknownFields);
        }
        // @@protoc_insertion_point(builder_scope:yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit)
      }
      // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit)
      private static final yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit();
      }
      public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
      private static final com.google.protobuf.Parser
          PARSER = new com.google.protobuf.AbstractParser() {
        @java.lang.Override
        public ClientOutputBufferLimit parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new ClientOutputBufferLimit(input, extensionRegistry);
        }
      };
      public static com.google.protobuf.Parser parser() {
        return PARSER;
      }
      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
    }
    public static final int MAXMEMORY_POLICY_FIELD_NUMBER = 1;
    private int maxmemoryPolicy_;
    /**
     * 
     * Redis key eviction policy for a dataset that reaches maximum memory,
     * available to the host. Redis maxmemory setting depends on Managed
     * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
     * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
     * @return The enum numeric value on the wire for maxmemoryPolicy.
     */
    @java.lang.Override public int getMaxmemoryPolicyValue() {
      return maxmemoryPolicy_;
    }
    /**
     * 
     * Redis key eviction policy for a dataset that reaches maximum memory,
     * available to the host. Redis maxmemory setting depends on Managed
     * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
     * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
     * @return The maxmemoryPolicy.
     */
    @java.lang.Override public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy getMaxmemoryPolicy() {
      @SuppressWarnings("deprecation")
      yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy result = yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.valueOf(maxmemoryPolicy_);
      return result == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.UNRECOGNIZED : result;
    }
    public static final int TIMEOUT_FIELD_NUMBER = 2;
    private com.google.protobuf.Int64Value timeout_;
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     * @return Whether the timeout field is set.
     */
    @java.lang.Override
    public boolean hasTimeout() {
      return timeout_ != null;
    }
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     * @return The timeout.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getTimeout() {
      return timeout_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : timeout_;
    }
    /**
     * 
     * Time that Redis keeps the connection open while the client is idle.
     * If no new command is sent during that time, the connection is closed.
     * 
     *
     * .google.protobuf.Int64Value timeout = 2;
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getTimeoutOrBuilder() {
      return getTimeout();
    }
    public static final int PASSWORD_FIELD_NUMBER = 3;
    private volatile java.lang.Object password_;
    /**
     * 
     * Authentication password.
     * 
     *
     * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
     * @return The password.
     */
    @java.lang.Override
    public java.lang.String getPassword() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        password_ = s;
        return s;
      }
    }
    /**
     * 
     * Authentication password.
     * 
     *
     * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
     * @return The bytes for password.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getPasswordBytes() {
      java.lang.Object ref = password_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        password_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int DATABASES_FIELD_NUMBER = 4;
    private com.google.protobuf.Int64Value databases_;
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     * @return Whether the databases field is set.
     */
    @java.lang.Override
    public boolean hasDatabases() {
      return databases_ != null;
    }
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     * @return The databases.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getDatabases() {
      return databases_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : databases_;
    }
    /**
     * 
     * Number of database buckets on a single redis-server process.
     * 
     *
     * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getDatabasesOrBuilder() {
      return getDatabases();
    }
    public static final int SLOWLOG_LOG_SLOWER_THAN_FIELD_NUMBER = 5;
    private com.google.protobuf.Int64Value slowlogLogSlowerThan_;
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     * @return Whether the slowlogLogSlowerThan field is set.
     */
    @java.lang.Override
    public boolean hasSlowlogLogSlowerThan() {
      return slowlogLogSlowerThan_ != null;
    }
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     * @return The slowlogLogSlowerThan.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getSlowlogLogSlowerThan() {
      return slowlogLogSlowerThan_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : slowlogLogSlowerThan_;
    }
    /**
     * 
     * Threshold for logging slow requests to server in microseconds (log only slower than it).
     * 
     *
     * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getSlowlogLogSlowerThanOrBuilder() {
      return getSlowlogLogSlowerThan();
    }
    public static final int SLOWLOG_MAX_LEN_FIELD_NUMBER = 6;
    private com.google.protobuf.Int64Value slowlogMaxLen_;
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     * @return Whether the slowlogMaxLen field is set.
     */
    @java.lang.Override
    public boolean hasSlowlogMaxLen() {
      return slowlogMaxLen_ != null;
    }
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     * @return The slowlogMaxLen.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getSlowlogMaxLen() {
      return slowlogMaxLen_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : slowlogMaxLen_;
    }
    /**
     * 
     * Max slow requests number to log.
     * 
     *
     * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getSlowlogMaxLenOrBuilder() {
      return getSlowlogMaxLen();
    }
    public static final int NOTIFY_KEYSPACE_EVENTS_FIELD_NUMBER = 7;
    private volatile java.lang.Object notifyKeyspaceEvents_;
    /**
     * 
     * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
     * 
     *
     * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
     * @return The notifyKeyspaceEvents.
     */
    @java.lang.Override
    public java.lang.String getNotifyKeyspaceEvents() {
      java.lang.Object ref = notifyKeyspaceEvents_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        notifyKeyspaceEvents_ = s;
        return s;
      }
    }
    /**
     * 
     * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
     * 
     *
     * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
     * @return The bytes for notifyKeyspaceEvents.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getNotifyKeyspaceEventsBytes() {
      java.lang.Object ref = notifyKeyspaceEvents_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        notifyKeyspaceEvents_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    public static final int CLIENT_OUTPUT_BUFFER_LIMIT_PUBSUB_FIELD_NUMBER = 8;
    private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit clientOutputBufferLimitPubsub_;
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     * @return Whether the clientOutputBufferLimitPubsub field is set.
     */
    @java.lang.Override
    public boolean hasClientOutputBufferLimitPubsub() {
      return clientOutputBufferLimitPubsub_ != null;
    }
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     * @return The clientOutputBufferLimitPubsub.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitPubsub() {
      return clientOutputBufferLimitPubsub_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitPubsub_;
    }
    /**
     * 
     * Redis connection output buffers limits for pubsub operations.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitPubsubOrBuilder() {
      return getClientOutputBufferLimitPubsub();
    }
    public static final int CLIENT_OUTPUT_BUFFER_LIMIT_NORMAL_FIELD_NUMBER = 9;
    private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit clientOutputBufferLimitNormal_;
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     * @return Whether the clientOutputBufferLimitNormal field is set.
     */
    @java.lang.Override
    public boolean hasClientOutputBufferLimitNormal() {
      return clientOutputBufferLimitNormal_ != null;
    }
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     * @return The clientOutputBufferLimitNormal.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitNormal() {
      return clientOutputBufferLimitNormal_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitNormal_;
    }
    /**
     * 
     * Redis connection output buffers limits for clients.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitNormalOrBuilder() {
      return getClientOutputBufferLimitNormal();
    }
    public static final int MAXMEMORY_PERCENT_FIELD_NUMBER = 10;
    private com.google.protobuf.Int64Value maxmemoryPercent_;
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     * @return Whether the maxmemoryPercent field is set.
     */
    @java.lang.Override
    public boolean hasMaxmemoryPercent() {
      return maxmemoryPercent_ != null;
    }
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     * @return The maxmemoryPercent.
     */
    @java.lang.Override
    public com.google.protobuf.Int64Value getMaxmemoryPercent() {
      return maxmemoryPercent_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : maxmemoryPercent_;
    }
    /**
     * 
     * Redis maxmemory percent
     * 
     *
     * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
     */
    @java.lang.Override
    public com.google.protobuf.Int64ValueOrBuilder getMaxmemoryPercentOrBuilder() {
      return getMaxmemoryPercent();
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;
      memoizedIsInitialized = 1;
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (maxmemoryPolicy_ != yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.MAXMEMORY_POLICY_UNSPECIFIED.getNumber()) {
        output.writeEnum(1, maxmemoryPolicy_);
      }
      if (timeout_ != null) {
        output.writeMessage(2, getTimeout());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, password_);
      }
      if (databases_ != null) {
        output.writeMessage(4, getDatabases());
      }
      if (slowlogLogSlowerThan_ != null) {
        output.writeMessage(5, getSlowlogLogSlowerThan());
      }
      if (slowlogMaxLen_ != null) {
        output.writeMessage(6, getSlowlogMaxLen());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(notifyKeyspaceEvents_)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, notifyKeyspaceEvents_);
      }
      if (clientOutputBufferLimitPubsub_ != null) {
        output.writeMessage(8, getClientOutputBufferLimitPubsub());
      }
      if (clientOutputBufferLimitNormal_ != null) {
        output.writeMessage(9, getClientOutputBufferLimitNormal());
      }
      if (maxmemoryPercent_ != null) {
        output.writeMessage(10, getMaxmemoryPercent());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (maxmemoryPolicy_ != yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.MAXMEMORY_POLICY_UNSPECIFIED.getNumber()) {
        size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, maxmemoryPolicy_);
      }
      if (timeout_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTimeout());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(password_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, password_);
      }
      if (databases_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, getDatabases());
      }
      if (slowlogLogSlowerThan_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(5, getSlowlogLogSlowerThan());
      }
      if (slowlogMaxLen_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(6, getSlowlogMaxLen());
      }
      if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(notifyKeyspaceEvents_)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, notifyKeyspaceEvents_);
      }
      if (clientOutputBufferLimitPubsub_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(8, getClientOutputBufferLimitPubsub());
      }
      if (clientOutputBufferLimitNormal_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(9, getClientOutputBufferLimitNormal());
      }
      if (maxmemoryPercent_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(10, getMaxmemoryPercent());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig other = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig) obj;
      if (maxmemoryPolicy_ != other.maxmemoryPolicy_) return false;
      if (hasTimeout() != other.hasTimeout()) return false;
      if (hasTimeout()) {
        if (!getTimeout()
            .equals(other.getTimeout())) return false;
      }
      if (!getPassword()
          .equals(other.getPassword())) return false;
      if (hasDatabases() != other.hasDatabases()) return false;
      if (hasDatabases()) {
        if (!getDatabases()
            .equals(other.getDatabases())) return false;
      }
      if (hasSlowlogLogSlowerThan() != other.hasSlowlogLogSlowerThan()) return false;
      if (hasSlowlogLogSlowerThan()) {
        if (!getSlowlogLogSlowerThan()
            .equals(other.getSlowlogLogSlowerThan())) return false;
      }
      if (hasSlowlogMaxLen() != other.hasSlowlogMaxLen()) return false;
      if (hasSlowlogMaxLen()) {
        if (!getSlowlogMaxLen()
            .equals(other.getSlowlogMaxLen())) return false;
      }
      if (!getNotifyKeyspaceEvents()
          .equals(other.getNotifyKeyspaceEvents())) return false;
      if (hasClientOutputBufferLimitPubsub() != other.hasClientOutputBufferLimitPubsub()) return false;
      if (hasClientOutputBufferLimitPubsub()) {
        if (!getClientOutputBufferLimitPubsub()
            .equals(other.getClientOutputBufferLimitPubsub())) return false;
      }
      if (hasClientOutputBufferLimitNormal() != other.hasClientOutputBufferLimitNormal()) return false;
      if (hasClientOutputBufferLimitNormal()) {
        if (!getClientOutputBufferLimitNormal()
            .equals(other.getClientOutputBufferLimitNormal())) return false;
      }
      if (hasMaxmemoryPercent() != other.hasMaxmemoryPercent()) return false;
      if (hasMaxmemoryPercent()) {
        if (!getMaxmemoryPercent()
            .equals(other.getMaxmemoryPercent())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      hash = (37 * hash) + MAXMEMORY_POLICY_FIELD_NUMBER;
      hash = (53 * hash) + maxmemoryPolicy_;
      if (hasTimeout()) {
        hash = (37 * hash) + TIMEOUT_FIELD_NUMBER;
        hash = (53 * hash) + getTimeout().hashCode();
      }
      hash = (37 * hash) + PASSWORD_FIELD_NUMBER;
      hash = (53 * hash) + getPassword().hashCode();
      if (hasDatabases()) {
        hash = (37 * hash) + DATABASES_FIELD_NUMBER;
        hash = (53 * hash) + getDatabases().hashCode();
      }
      if (hasSlowlogLogSlowerThan()) {
        hash = (37 * hash) + SLOWLOG_LOG_SLOWER_THAN_FIELD_NUMBER;
        hash = (53 * hash) + getSlowlogLogSlowerThan().hashCode();
      }
      if (hasSlowlogMaxLen()) {
        hash = (37 * hash) + SLOWLOG_MAX_LEN_FIELD_NUMBER;
        hash = (53 * hash) + getSlowlogMaxLen().hashCode();
      }
      hash = (37 * hash) + NOTIFY_KEYSPACE_EVENTS_FIELD_NUMBER;
      hash = (53 * hash) + getNotifyKeyspaceEvents().hashCode();
      if (hasClientOutputBufferLimitPubsub()) {
        hash = (37 * hash) + CLIENT_OUTPUT_BUFFER_LIMIT_PUBSUB_FIELD_NUMBER;
        hash = (53 * hash) + getClientOutputBufferLimitPubsub().hashCode();
      }
      if (hasClientOutputBufferLimitNormal()) {
        hash = (37 * hash) + CLIENT_OUTPUT_BUFFER_LIMIT_NORMAL_FIELD_NUMBER;
        hash = (53 * hash) + getClientOutputBufferLimitNormal().hashCode();
      }
      if (hasMaxmemoryPercent()) {
        hash = (37 * hash) + MAXMEMORY_PERCENT_FIELD_NUMBER;
        hash = (53 * hash) + getMaxmemoryPercent().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * 
     * Fields and structure of `RedisConfig` reflects Redis configuration file
     * parameters.
     * 
     *
     * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfig}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.config.RedisConfig)
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        maxmemoryPolicy_ = 0;
        if (timeoutBuilder_ == null) {
          timeout_ = null;
        } else {
          timeout_ = null;
          timeoutBuilder_ = null;
        }
        password_ = "";
        if (databasesBuilder_ == null) {
          databases_ = null;
        } else {
          databases_ = null;
          databasesBuilder_ = null;
        }
        if (slowlogLogSlowerThanBuilder_ == null) {
          slowlogLogSlowerThan_ = null;
        } else {
          slowlogLogSlowerThan_ = null;
          slowlogLogSlowerThanBuilder_ = null;
        }
        if (slowlogMaxLenBuilder_ == null) {
          slowlogMaxLen_ = null;
        } else {
          slowlogMaxLen_ = null;
          slowlogMaxLenBuilder_ = null;
        }
        notifyKeyspaceEvents_ = "";
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          clientOutputBufferLimitPubsub_ = null;
        } else {
          clientOutputBufferLimitPubsub_ = null;
          clientOutputBufferLimitPubsubBuilder_ = null;
        }
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          clientOutputBufferLimitNormal_ = null;
        } else {
          clientOutputBufferLimitNormal_ = null;
          clientOutputBufferLimitNormalBuilder_ = null;
        }
        if (maxmemoryPercentBuilder_ == null) {
          maxmemoryPercent_ = null;
        } else {
          maxmemoryPercent_ = null;
          maxmemoryPercentBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig build() {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig buildPartial() {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig result = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig(this);
        result.maxmemoryPolicy_ = maxmemoryPolicy_;
        if (timeoutBuilder_ == null) {
          result.timeout_ = timeout_;
        } else {
          result.timeout_ = timeoutBuilder_.build();
        }
        result.password_ = password_;
        if (databasesBuilder_ == null) {
          result.databases_ = databases_;
        } else {
          result.databases_ = databasesBuilder_.build();
        }
        if (slowlogLogSlowerThanBuilder_ == null) {
          result.slowlogLogSlowerThan_ = slowlogLogSlowerThan_;
        } else {
          result.slowlogLogSlowerThan_ = slowlogLogSlowerThanBuilder_.build();
        }
        if (slowlogMaxLenBuilder_ == null) {
          result.slowlogMaxLen_ = slowlogMaxLen_;
        } else {
          result.slowlogMaxLen_ = slowlogMaxLenBuilder_.build();
        }
        result.notifyKeyspaceEvents_ = notifyKeyspaceEvents_;
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          result.clientOutputBufferLimitPubsub_ = clientOutputBufferLimitPubsub_;
        } else {
          result.clientOutputBufferLimitPubsub_ = clientOutputBufferLimitPubsubBuilder_.build();
        }
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          result.clientOutputBufferLimitNormal_ = clientOutputBufferLimitNormal_;
        } else {
          result.clientOutputBufferLimitNormal_ = clientOutputBufferLimitNormalBuilder_.build();
        }
        if (maxmemoryPercentBuilder_ == null) {
          result.maxmemoryPercent_ = maxmemoryPercent_;
        } else {
          result.maxmemoryPercent_ = maxmemoryPercentBuilder_.build();
        }
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig other) {
        if (other == yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance()) return this;
        if (other.maxmemoryPolicy_ != 0) {
          setMaxmemoryPolicyValue(other.getMaxmemoryPolicyValue());
        }
        if (other.hasTimeout()) {
          mergeTimeout(other.getTimeout());
        }
        if (!other.getPassword().isEmpty()) {
          password_ = other.password_;
          onChanged();
        }
        if (other.hasDatabases()) {
          mergeDatabases(other.getDatabases());
        }
        if (other.hasSlowlogLogSlowerThan()) {
          mergeSlowlogLogSlowerThan(other.getSlowlogLogSlowerThan());
        }
        if (other.hasSlowlogMaxLen()) {
          mergeSlowlogMaxLen(other.getSlowlogMaxLen());
        }
        if (!other.getNotifyKeyspaceEvents().isEmpty()) {
          notifyKeyspaceEvents_ = other.notifyKeyspaceEvents_;
          onChanged();
        }
        if (other.hasClientOutputBufferLimitPubsub()) {
          mergeClientOutputBufferLimitPubsub(other.getClientOutputBufferLimitPubsub());
        }
        if (other.hasClientOutputBufferLimitNormal()) {
          mergeClientOutputBufferLimitNormal(other.getClientOutputBufferLimitNormal());
        }
        if (other.hasMaxmemoryPercent()) {
          mergeMaxmemoryPercent(other.getMaxmemoryPercent());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int maxmemoryPolicy_ = 0;
      /**
       * 
       * Redis key eviction policy for a dataset that reaches maximum memory,
       * available to the host. Redis maxmemory setting depends on Managed
       * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
       * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
       * @return The enum numeric value on the wire for maxmemoryPolicy.
       */
      @java.lang.Override public int getMaxmemoryPolicyValue() {
        return maxmemoryPolicy_;
      }
      /**
       * 
       * Redis key eviction policy for a dataset that reaches maximum memory,
       * available to the host. Redis maxmemory setting depends on Managed
       * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
       * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
       * @param value The enum numeric value on the wire for maxmemoryPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setMaxmemoryPolicyValue(int value) {
        
        maxmemoryPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Redis key eviction policy for a dataset that reaches maximum memory,
       * available to the host. Redis maxmemory setting depends on Managed
       * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
       * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
       * @return The maxmemoryPolicy.
       */
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy getMaxmemoryPolicy() {
        @SuppressWarnings("deprecation")
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy result = yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.valueOf(maxmemoryPolicy_);
        return result == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy.UNRECOGNIZED : result;
      }
      /**
       * 
       * Redis key eviction policy for a dataset that reaches maximum memory,
       * available to the host. Redis maxmemory setting depends on Managed
       * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
       * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
       * @param value The maxmemoryPolicy to set.
       * @return This builder for chaining.
       */
      public Builder setMaxmemoryPolicy(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.MaxmemoryPolicy value) {
        if (value == null) {
          throw new NullPointerException();
        }
        
        maxmemoryPolicy_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * 
       * Redis key eviction policy for a dataset that reaches maximum memory,
       * available to the host. Redis maxmemory setting depends on Managed
       * Service for Redis [host class](/docs/managed-redis/concepts/instance-types).
       * All policies are described in detail in [Redis documentation](https://redis.io/topics/lru-cache).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.MaxmemoryPolicy maxmemory_policy = 1;
       * @return This builder for chaining.
       */
      public Builder clearMaxmemoryPolicy() {
        
        maxmemoryPolicy_ = 0;
        onChanged();
        return this;
      }
      private com.google.protobuf.Int64Value timeout_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> timeoutBuilder_;
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       * @return Whether the timeout field is set.
       */
      public boolean hasTimeout() {
        return timeoutBuilder_ != null || timeout_ != null;
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       * @return The timeout.
       */
      public com.google.protobuf.Int64Value getTimeout() {
        if (timeoutBuilder_ == null) {
          return timeout_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : timeout_;
        } else {
          return timeoutBuilder_.getMessage();
        }
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public Builder setTimeout(com.google.protobuf.Int64Value value) {
        if (timeoutBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeout_ = value;
          onChanged();
        } else {
          timeoutBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public Builder setTimeout(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (timeoutBuilder_ == null) {
          timeout_ = builderForValue.build();
          onChanged();
        } else {
          timeoutBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public Builder mergeTimeout(com.google.protobuf.Int64Value value) {
        if (timeoutBuilder_ == null) {
          if (timeout_ != null) {
            timeout_ =
              com.google.protobuf.Int64Value.newBuilder(timeout_).mergeFrom(value).buildPartial();
          } else {
            timeout_ = value;
          }
          onChanged();
        } else {
          timeoutBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public Builder clearTimeout() {
        if (timeoutBuilder_ == null) {
          timeout_ = null;
          onChanged();
        } else {
          timeout_ = null;
          timeoutBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public com.google.protobuf.Int64Value.Builder getTimeoutBuilder() {
        
        onChanged();
        return getTimeoutFieldBuilder().getBuilder();
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      public com.google.protobuf.Int64ValueOrBuilder getTimeoutOrBuilder() {
        if (timeoutBuilder_ != null) {
          return timeoutBuilder_.getMessageOrBuilder();
        } else {
          return timeout_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : timeout_;
        }
      }
      /**
       * 
       * Time that Redis keeps the connection open while the client is idle.
       * If no new command is sent during that time, the connection is closed.
       * 
       *
       * .google.protobuf.Int64Value timeout = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getTimeoutFieldBuilder() {
        if (timeoutBuilder_ == null) {
          timeoutBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getTimeout(),
                  getParentForChildren(),
                  isClean());
          timeout_ = null;
        }
        return timeoutBuilder_;
      }
      private java.lang.Object password_ = "";
      /**
       * 
       * Authentication password.
       * 
       *
       * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
       * @return The password.
       */
      public java.lang.String getPassword() {
        java.lang.Object ref = password_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          password_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * Authentication password.
       * 
       *
       * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
       * @return The bytes for password.
       */
      public com.google.protobuf.ByteString
          getPasswordBytes() {
        java.lang.Object ref = password_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          password_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * Authentication password.
       * 
       *
       * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
       * @param value The password to set.
       * @return This builder for chaining.
       */
      public Builder setPassword(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        password_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * Authentication password.
       * 
       *
       * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
       * @return This builder for chaining.
       */
      public Builder clearPassword() {
        
        password_ = getDefaultInstance().getPassword();
        onChanged();
        return this;
      }
      /**
       * 
       * Authentication password.
       * 
       *
       * string password = 3 [(.yandex.cloud.pattern) = "[a-zA-Z0-9@=+?*.,!&#$^<>_-]{8,128}"];
       * @param value The bytes for password to set.
       * @return This builder for chaining.
       */
      public Builder setPasswordBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        password_ = value;
        onChanged();
        return this;
      }
      private com.google.protobuf.Int64Value databases_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> databasesBuilder_;
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       * @return Whether the databases field is set.
       */
      public boolean hasDatabases() {
        return databasesBuilder_ != null || databases_ != null;
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       * @return The databases.
       */
      public com.google.protobuf.Int64Value getDatabases() {
        if (databasesBuilder_ == null) {
          return databases_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : databases_;
        } else {
          return databasesBuilder_.getMessage();
        }
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public Builder setDatabases(com.google.protobuf.Int64Value value) {
        if (databasesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          databases_ = value;
          onChanged();
        } else {
          databasesBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public Builder setDatabases(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (databasesBuilder_ == null) {
          databases_ = builderForValue.build();
          onChanged();
        } else {
          databasesBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public Builder mergeDatabases(com.google.protobuf.Int64Value value) {
        if (databasesBuilder_ == null) {
          if (databases_ != null) {
            databases_ =
              com.google.protobuf.Int64Value.newBuilder(databases_).mergeFrom(value).buildPartial();
          } else {
            databases_ = value;
          }
          onChanged();
        } else {
          databasesBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public Builder clearDatabases() {
        if (databasesBuilder_ == null) {
          databases_ = null;
          onChanged();
        } else {
          databases_ = null;
          databasesBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public com.google.protobuf.Int64Value.Builder getDatabasesBuilder() {
        
        onChanged();
        return getDatabasesFieldBuilder().getBuilder();
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      public com.google.protobuf.Int64ValueOrBuilder getDatabasesOrBuilder() {
        if (databasesBuilder_ != null) {
          return databasesBuilder_.getMessageOrBuilder();
        } else {
          return databases_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : databases_;
        }
      }
      /**
       * 
       * Number of database buckets on a single redis-server process.
       * 
       *
       * .google.protobuf.Int64Value databases = 4 [(.yandex.cloud.value) = ">0"];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getDatabasesFieldBuilder() {
        if (databasesBuilder_ == null) {
          databasesBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getDatabases(),
                  getParentForChildren(),
                  isClean());
          databases_ = null;
        }
        return databasesBuilder_;
      }
      private com.google.protobuf.Int64Value slowlogLogSlowerThan_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> slowlogLogSlowerThanBuilder_;
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the slowlogLogSlowerThan field is set.
       */
      public boolean hasSlowlogLogSlowerThan() {
        return slowlogLogSlowerThanBuilder_ != null || slowlogLogSlowerThan_ != null;
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       * @return The slowlogLogSlowerThan.
       */
      public com.google.protobuf.Int64Value getSlowlogLogSlowerThan() {
        if (slowlogLogSlowerThanBuilder_ == null) {
          return slowlogLogSlowerThan_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : slowlogLogSlowerThan_;
        } else {
          return slowlogLogSlowerThanBuilder_.getMessage();
        }
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder setSlowlogLogSlowerThan(com.google.protobuf.Int64Value value) {
        if (slowlogLogSlowerThanBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          slowlogLogSlowerThan_ = value;
          onChanged();
        } else {
          slowlogLogSlowerThanBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder setSlowlogLogSlowerThan(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (slowlogLogSlowerThanBuilder_ == null) {
          slowlogLogSlowerThan_ = builderForValue.build();
          onChanged();
        } else {
          slowlogLogSlowerThanBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder mergeSlowlogLogSlowerThan(com.google.protobuf.Int64Value value) {
        if (slowlogLogSlowerThanBuilder_ == null) {
          if (slowlogLogSlowerThan_ != null) {
            slowlogLogSlowerThan_ =
              com.google.protobuf.Int64Value.newBuilder(slowlogLogSlowerThan_).mergeFrom(value).buildPartial();
          } else {
            slowlogLogSlowerThan_ = value;
          }
          onChanged();
        } else {
          slowlogLogSlowerThanBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder clearSlowlogLogSlowerThan() {
        if (slowlogLogSlowerThanBuilder_ == null) {
          slowlogLogSlowerThan_ = null;
          onChanged();
        } else {
          slowlogLogSlowerThan_ = null;
          slowlogLogSlowerThanBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public com.google.protobuf.Int64Value.Builder getSlowlogLogSlowerThanBuilder() {
        
        onChanged();
        return getSlowlogLogSlowerThanFieldBuilder().getBuilder();
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      public com.google.protobuf.Int64ValueOrBuilder getSlowlogLogSlowerThanOrBuilder() {
        if (slowlogLogSlowerThanBuilder_ != null) {
          return slowlogLogSlowerThanBuilder_.getMessageOrBuilder();
        } else {
          return slowlogLogSlowerThan_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : slowlogLogSlowerThan_;
        }
      }
      /**
       * 
       * Threshold for logging slow requests to server in microseconds (log only slower than it).
       * 
       *
       * .google.protobuf.Int64Value slowlog_log_slower_than = 5 [(.yandex.cloud.value) = ">=0"];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getSlowlogLogSlowerThanFieldBuilder() {
        if (slowlogLogSlowerThanBuilder_ == null) {
          slowlogLogSlowerThanBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getSlowlogLogSlowerThan(),
                  getParentForChildren(),
                  isClean());
          slowlogLogSlowerThan_ = null;
        }
        return slowlogLogSlowerThanBuilder_;
      }
      private com.google.protobuf.Int64Value slowlogMaxLen_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> slowlogMaxLenBuilder_;
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       * @return Whether the slowlogMaxLen field is set.
       */
      public boolean hasSlowlogMaxLen() {
        return slowlogMaxLenBuilder_ != null || slowlogMaxLen_ != null;
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       * @return The slowlogMaxLen.
       */
      public com.google.protobuf.Int64Value getSlowlogMaxLen() {
        if (slowlogMaxLenBuilder_ == null) {
          return slowlogMaxLen_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : slowlogMaxLen_;
        } else {
          return slowlogMaxLenBuilder_.getMessage();
        }
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder setSlowlogMaxLen(com.google.protobuf.Int64Value value) {
        if (slowlogMaxLenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          slowlogMaxLen_ = value;
          onChanged();
        } else {
          slowlogMaxLenBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder setSlowlogMaxLen(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (slowlogMaxLenBuilder_ == null) {
          slowlogMaxLen_ = builderForValue.build();
          onChanged();
        } else {
          slowlogMaxLenBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder mergeSlowlogMaxLen(com.google.protobuf.Int64Value value) {
        if (slowlogMaxLenBuilder_ == null) {
          if (slowlogMaxLen_ != null) {
            slowlogMaxLen_ =
              com.google.protobuf.Int64Value.newBuilder(slowlogMaxLen_).mergeFrom(value).buildPartial();
          } else {
            slowlogMaxLen_ = value;
          }
          onChanged();
        } else {
          slowlogMaxLenBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public Builder clearSlowlogMaxLen() {
        if (slowlogMaxLenBuilder_ == null) {
          slowlogMaxLen_ = null;
          onChanged();
        } else {
          slowlogMaxLen_ = null;
          slowlogMaxLenBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public com.google.protobuf.Int64Value.Builder getSlowlogMaxLenBuilder() {
        
        onChanged();
        return getSlowlogMaxLenFieldBuilder().getBuilder();
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      public com.google.protobuf.Int64ValueOrBuilder getSlowlogMaxLenOrBuilder() {
        if (slowlogMaxLenBuilder_ != null) {
          return slowlogMaxLenBuilder_.getMessageOrBuilder();
        } else {
          return slowlogMaxLen_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : slowlogMaxLen_;
        }
      }
      /**
       * 
       * Max slow requests number to log.
       * 
       *
       * .google.protobuf.Int64Value slowlog_max_len = 6 [(.yandex.cloud.value) = ">=0"];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getSlowlogMaxLenFieldBuilder() {
        if (slowlogMaxLenBuilder_ == null) {
          slowlogMaxLenBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getSlowlogMaxLen(),
                  getParentForChildren(),
                  isClean());
          slowlogMaxLen_ = null;
        }
        return slowlogMaxLenBuilder_;
      }
      private java.lang.Object notifyKeyspaceEvents_ = "";
      /**
       * 
       * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
       * 
       *
       * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
       * @return The notifyKeyspaceEvents.
       */
      public java.lang.String getNotifyKeyspaceEvents() {
        java.lang.Object ref = notifyKeyspaceEvents_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          notifyKeyspaceEvents_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * 
       * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
       * 
       *
       * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
       * @return The bytes for notifyKeyspaceEvents.
       */
      public com.google.protobuf.ByteString
          getNotifyKeyspaceEventsBytes() {
        java.lang.Object ref = notifyKeyspaceEvents_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          notifyKeyspaceEvents_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * 
       * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
       * 
       *
       * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
       * @param value The notifyKeyspaceEvents to set.
       * @return This builder for chaining.
       */
      public Builder setNotifyKeyspaceEvents(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  
        notifyKeyspaceEvents_ = value;
        onChanged();
        return this;
      }
      /**
       * 
       * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
       * 
       *
       * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
       * @return This builder for chaining.
       */
      public Builder clearNotifyKeyspaceEvents() {
        
        notifyKeyspaceEvents_ = getDefaultInstance().getNotifyKeyspaceEvents();
        onChanged();
        return this;
      }
      /**
       * 
       * String setting for pub\sub functionality; subset of KEg$lshzxeAtm.
       * 
       *
       * string notify_keyspace_events = 7 [(.yandex.cloud.pattern) = "[KEg$lshzxeAtm]{0,13}"];
       * @param value The bytes for notifyKeyspaceEvents to set.
       * @return This builder for chaining.
       */
      public Builder setNotifyKeyspaceEventsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  checkByteStringIsUtf8(value);
        
        notifyKeyspaceEvents_ = value;
        onChanged();
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit clientOutputBufferLimitPubsub_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder> clientOutputBufferLimitPubsubBuilder_;
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       * @return Whether the clientOutputBufferLimitPubsub field is set.
       */
      public boolean hasClientOutputBufferLimitPubsub() {
        return clientOutputBufferLimitPubsubBuilder_ != null || clientOutputBufferLimitPubsub_ != null;
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       * @return The clientOutputBufferLimitPubsub.
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitPubsub() {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          return clientOutputBufferLimitPubsub_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitPubsub_;
        } else {
          return clientOutputBufferLimitPubsubBuilder_.getMessage();
        }
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public Builder setClientOutputBufferLimitPubsub(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit value) {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clientOutputBufferLimitPubsub_ = value;
          onChanged();
        } else {
          clientOutputBufferLimitPubsubBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public Builder setClientOutputBufferLimitPubsub(
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder builderForValue) {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          clientOutputBufferLimitPubsub_ = builderForValue.build();
          onChanged();
        } else {
          clientOutputBufferLimitPubsubBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public Builder mergeClientOutputBufferLimitPubsub(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit value) {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          if (clientOutputBufferLimitPubsub_ != null) {
            clientOutputBufferLimitPubsub_ =
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.newBuilder(clientOutputBufferLimitPubsub_).mergeFrom(value).buildPartial();
          } else {
            clientOutputBufferLimitPubsub_ = value;
          }
          onChanged();
        } else {
          clientOutputBufferLimitPubsubBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public Builder clearClientOutputBufferLimitPubsub() {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          clientOutputBufferLimitPubsub_ = null;
          onChanged();
        } else {
          clientOutputBufferLimitPubsub_ = null;
          clientOutputBufferLimitPubsubBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder getClientOutputBufferLimitPubsubBuilder() {
        
        onChanged();
        return getClientOutputBufferLimitPubsubFieldBuilder().getBuilder();
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitPubsubOrBuilder() {
        if (clientOutputBufferLimitPubsubBuilder_ != null) {
          return clientOutputBufferLimitPubsubBuilder_.getMessageOrBuilder();
        } else {
          return clientOutputBufferLimitPubsub_ == null ?
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitPubsub_;
        }
      }
      /**
       * 
       * Redis connection output buffers limits for pubsub operations.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_pubsub = 8;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder> 
          getClientOutputBufferLimitPubsubFieldBuilder() {
        if (clientOutputBufferLimitPubsubBuilder_ == null) {
          clientOutputBufferLimitPubsubBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder>(
                  getClientOutputBufferLimitPubsub(),
                  getParentForChildren(),
                  isClean());
          clientOutputBufferLimitPubsub_ = null;
        }
        return clientOutputBufferLimitPubsubBuilder_;
      }
      private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit clientOutputBufferLimitNormal_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder> clientOutputBufferLimitNormalBuilder_;
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       * @return Whether the clientOutputBufferLimitNormal field is set.
       */
      public boolean hasClientOutputBufferLimitNormal() {
        return clientOutputBufferLimitNormalBuilder_ != null || clientOutputBufferLimitNormal_ != null;
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       * @return The clientOutputBufferLimitNormal.
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit getClientOutputBufferLimitNormal() {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          return clientOutputBufferLimitNormal_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitNormal_;
        } else {
          return clientOutputBufferLimitNormalBuilder_.getMessage();
        }
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public Builder setClientOutputBufferLimitNormal(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit value) {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clientOutputBufferLimitNormal_ = value;
          onChanged();
        } else {
          clientOutputBufferLimitNormalBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public Builder setClientOutputBufferLimitNormal(
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder builderForValue) {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          clientOutputBufferLimitNormal_ = builderForValue.build();
          onChanged();
        } else {
          clientOutputBufferLimitNormalBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public Builder mergeClientOutputBufferLimitNormal(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit value) {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          if (clientOutputBufferLimitNormal_ != null) {
            clientOutputBufferLimitNormal_ =
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.newBuilder(clientOutputBufferLimitNormal_).mergeFrom(value).buildPartial();
          } else {
            clientOutputBufferLimitNormal_ = value;
          }
          onChanged();
        } else {
          clientOutputBufferLimitNormalBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public Builder clearClientOutputBufferLimitNormal() {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          clientOutputBufferLimitNormal_ = null;
          onChanged();
        } else {
          clientOutputBufferLimitNormal_ = null;
          clientOutputBufferLimitNormalBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder getClientOutputBufferLimitNormalBuilder() {
        
        onChanged();
        return getClientOutputBufferLimitNormalFieldBuilder().getBuilder();
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder getClientOutputBufferLimitNormalOrBuilder() {
        if (clientOutputBufferLimitNormalBuilder_ != null) {
          return clientOutputBufferLimitNormalBuilder_.getMessageOrBuilder();
        } else {
          return clientOutputBufferLimitNormal_ == null ?
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.getDefaultInstance() : clientOutputBufferLimitNormal_;
        }
      }
      /**
       * 
       * Redis connection output buffers limits for clients.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig.ClientOutputBufferLimit client_output_buffer_limit_normal = 9;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder> 
          getClientOutputBufferLimitNormalFieldBuilder() {
        if (clientOutputBufferLimitNormalBuilder_ == null) {
          clientOutputBufferLimitNormalBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimit.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.ClientOutputBufferLimitOrBuilder>(
                  getClientOutputBufferLimitNormal(),
                  getParentForChildren(),
                  isClean());
          clientOutputBufferLimitNormal_ = null;
        }
        return clientOutputBufferLimitNormalBuilder_;
      }
      private com.google.protobuf.Int64Value maxmemoryPercent_;
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> maxmemoryPercentBuilder_;
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       * @return Whether the maxmemoryPercent field is set.
       */
      public boolean hasMaxmemoryPercent() {
        return maxmemoryPercentBuilder_ != null || maxmemoryPercent_ != null;
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       * @return The maxmemoryPercent.
       */
      public com.google.protobuf.Int64Value getMaxmemoryPercent() {
        if (maxmemoryPercentBuilder_ == null) {
          return maxmemoryPercent_ == null ? com.google.protobuf.Int64Value.getDefaultInstance() : maxmemoryPercent_;
        } else {
          return maxmemoryPercentBuilder_.getMessage();
        }
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public Builder setMaxmemoryPercent(com.google.protobuf.Int64Value value) {
        if (maxmemoryPercentBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          maxmemoryPercent_ = value;
          onChanged();
        } else {
          maxmemoryPercentBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public Builder setMaxmemoryPercent(
          com.google.protobuf.Int64Value.Builder builderForValue) {
        if (maxmemoryPercentBuilder_ == null) {
          maxmemoryPercent_ = builderForValue.build();
          onChanged();
        } else {
          maxmemoryPercentBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public Builder mergeMaxmemoryPercent(com.google.protobuf.Int64Value value) {
        if (maxmemoryPercentBuilder_ == null) {
          if (maxmemoryPercent_ != null) {
            maxmemoryPercent_ =
              com.google.protobuf.Int64Value.newBuilder(maxmemoryPercent_).mergeFrom(value).buildPartial();
          } else {
            maxmemoryPercent_ = value;
          }
          onChanged();
        } else {
          maxmemoryPercentBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public Builder clearMaxmemoryPercent() {
        if (maxmemoryPercentBuilder_ == null) {
          maxmemoryPercent_ = null;
          onChanged();
        } else {
          maxmemoryPercent_ = null;
          maxmemoryPercentBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public com.google.protobuf.Int64Value.Builder getMaxmemoryPercentBuilder() {
        
        onChanged();
        return getMaxmemoryPercentFieldBuilder().getBuilder();
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      public com.google.protobuf.Int64ValueOrBuilder getMaxmemoryPercentOrBuilder() {
        if (maxmemoryPercentBuilder_ != null) {
          return maxmemoryPercentBuilder_.getMessageOrBuilder();
        } else {
          return maxmemoryPercent_ == null ?
              com.google.protobuf.Int64Value.getDefaultInstance() : maxmemoryPercent_;
        }
      }
      /**
       * 
       * Redis maxmemory percent
       * 
       *
       * .google.protobuf.Int64Value maxmemory_percent = 10 [(.yandex.cloud.value) = "1-75"];
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder> 
          getMaxmemoryPercentFieldBuilder() {
        if (maxmemoryPercentBuilder_ == null) {
          maxmemoryPercentBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              com.google.protobuf.Int64Value, com.google.protobuf.Int64Value.Builder, com.google.protobuf.Int64ValueOrBuilder>(
                  getMaxmemoryPercent(),
                  getParentForChildren(),
                  isClean());
          maxmemoryPercent_ = null;
        }
        return maxmemoryPercentBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.mdb.redis.v1.config.RedisConfig)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.config.RedisConfig)
    private static final yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig();
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RedisConfig parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RedisConfig(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  public interface RedisConfigSetOrBuilder extends
      // @@protoc_insertion_point(interface_extends:yandex.cloud.mdb.redis.v1.config.RedisConfigSet)
      com.google.protobuf.MessageOrBuilder {
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     * @return Whether the effectiveConfig field is set.
     */
    boolean hasEffectiveConfig();
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     * @return The effectiveConfig.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getEffectiveConfig();
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getEffectiveConfigOrBuilder();
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     * @return Whether the userConfig field is set.
     */
    boolean hasUserConfig();
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     * @return The userConfig.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getUserConfig();
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getUserConfigOrBuilder();
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     * @return Whether the defaultConfig field is set.
     */
    boolean hasDefaultConfig();
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     * @return The defaultConfig.
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultConfig();
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     */
    yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getDefaultConfigOrBuilder();
  }
  /**
   * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfigSet}
   */
  public static final class RedisConfigSet extends
      com.google.protobuf.GeneratedMessageV3 implements
      // @@protoc_insertion_point(message_implements:yandex.cloud.mdb.redis.v1.config.RedisConfigSet)
      RedisConfigSetOrBuilder {
  private static final long serialVersionUID = 0L;
    // Use RedisConfigSet.newBuilder() to construct.
    private RedisConfigSet(com.google.protobuf.GeneratedMessageV3.Builder> builder) {
      super(builder);
    }
    private RedisConfigSet() {
    }
    @java.lang.Override
    @SuppressWarnings({"unused"})
    protected java.lang.Object newInstance(
        UnusedPrivateParameter unused) {
      return new RedisConfigSet();
    }
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
    getUnknownFields() {
      return this.unknownFields;
    }
    private RedisConfigSet(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10: {
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder subBuilder = null;
              if (effectiveConfig_ != null) {
                subBuilder = effectiveConfig_.toBuilder();
              }
              effectiveConfig_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(effectiveConfig_);
                effectiveConfig_ = subBuilder.buildPartial();
              }
              break;
            }
            case 18: {
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder subBuilder = null;
              if (userConfig_ != null) {
                subBuilder = userConfig_.toBuilder();
              }
              userConfig_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(userConfig_);
                userConfig_ = subBuilder.buildPartial();
              }
              break;
            }
            case 26: {
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder subBuilder = null;
              if (defaultConfig_ != null) {
                subBuilder = defaultConfig_.toBuilder();
              }
              defaultConfig_ = input.readMessage(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.parser(), extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(defaultConfig_);
                defaultConfig_ = subBuilder.buildPartial();
              }
              break;
            }
            default: {
              if (!parseUnknownField(
                  input, unknownFields, extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor;
    }
    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.Builder.class);
    }
    public static final int EFFECTIVE_CONFIG_FIELD_NUMBER = 1;
    private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig effectiveConfig_;
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     * @return Whether the effectiveConfig field is set.
     */
    @java.lang.Override
    public boolean hasEffectiveConfig() {
      return effectiveConfig_ != null;
    }
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     * @return The effectiveConfig.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getEffectiveConfig() {
      return effectiveConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : effectiveConfig_;
    }
    /**
     * 
     * Effective settings for a Redis cluster (a combination of settings
     * defined in [user_config] and [default_config]).
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getEffectiveConfigOrBuilder() {
      return getEffectiveConfig();
    }
    public static final int USER_CONFIG_FIELD_NUMBER = 2;
    private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig userConfig_;
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     * @return Whether the userConfig field is set.
     */
    @java.lang.Override
    public boolean hasUserConfig() {
      return userConfig_ != null;
    }
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     * @return The userConfig.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getUserConfig() {
      return userConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : userConfig_;
    }
    /**
     * 
     * User-defined settings for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getUserConfigOrBuilder() {
      return getUserConfig();
    }
    public static final int DEFAULT_CONFIG_FIELD_NUMBER = 3;
    private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig defaultConfig_;
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     * @return Whether the defaultConfig field is set.
     */
    @java.lang.Override
    public boolean hasDefaultConfig() {
      return defaultConfig_ != null;
    }
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     * @return The defaultConfig.
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultConfig() {
      return defaultConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : defaultConfig_;
    }
    /**
     * 
     * Default configuration for a Redis cluster.
     * 
     *
     * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
     */
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getDefaultConfigOrBuilder() {
      return getDefaultConfig();
    }
    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;
      memoizedIsInitialized = 1;
      return true;
    }
    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (effectiveConfig_ != null) {
        output.writeMessage(1, getEffectiveConfig());
      }
      if (userConfig_ != null) {
        output.writeMessage(2, getUserConfig());
      }
      if (defaultConfig_ != null) {
        output.writeMessage(3, getDefaultConfig());
      }
      unknownFields.writeTo(output);
    }
    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;
      size = 0;
      if (effectiveConfig_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, getEffectiveConfig());
      }
      if (userConfig_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getUserConfig());
      }
      if (defaultConfig_ != null) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getDefaultConfig());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }
    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet)) {
        return super.equals(obj);
      }
      yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet other = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet) obj;
      if (hasEffectiveConfig() != other.hasEffectiveConfig()) return false;
      if (hasEffectiveConfig()) {
        if (!getEffectiveConfig()
            .equals(other.getEffectiveConfig())) return false;
      }
      if (hasUserConfig() != other.hasUserConfig()) return false;
      if (hasUserConfig()) {
        if (!getUserConfig()
            .equals(other.getUserConfig())) return false;
      }
      if (hasDefaultConfig() != other.hasDefaultConfig()) return false;
      if (hasDefaultConfig()) {
        if (!getDefaultConfig()
            .equals(other.getDefaultConfig())) return false;
      }
      if (!unknownFields.equals(other.unknownFields)) return false;
      return true;
    }
    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEffectiveConfig()) {
        hash = (37 * hash) + EFFECTIVE_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getEffectiveConfig().hashCode();
      }
      if (hasUserConfig()) {
        hash = (37 * hash) + USER_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getUserConfig().hashCode();
      }
      if (hasDefaultConfig()) {
        hash = (37 * hash) + DEFAULT_CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input);
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3
          .parseWithIOException(PARSER, input, extensionRegistry);
    }
    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code yandex.cloud.mdb.redis.v1.config.RedisConfigSet}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessageV3.Builder implements
        // @@protoc_insertion_point(builder_implements:yandex.cloud.mdb.redis.v1.config.RedisConfigSet)
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor;
      }
      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.class, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.Builder.class);
      }
      // Construct using yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      private Builder(
          com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3
                .alwaysUseFieldBuilders) {
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (effectiveConfigBuilder_ == null) {
          effectiveConfig_ = null;
        } else {
          effectiveConfig_ = null;
          effectiveConfigBuilder_ = null;
        }
        if (userConfigBuilder_ == null) {
          userConfig_ = null;
        } else {
          userConfig_ = null;
          userConfigBuilder_ = null;
        }
        if (defaultConfigBuilder_ == null) {
          defaultConfig_ = null;
        } else {
          defaultConfig_ = null;
          defaultConfigBuilder_ = null;
        }
        return this;
      }
      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet getDefaultInstanceForType() {
        return yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.getDefaultInstance();
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet build() {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      @java.lang.Override
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet buildPartial() {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet result = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet(this);
        if (effectiveConfigBuilder_ == null) {
          result.effectiveConfig_ = effectiveConfig_;
        } else {
          result.effectiveConfig_ = effectiveConfigBuilder_.build();
        }
        if (userConfigBuilder_ == null) {
          result.userConfig_ = userConfig_;
        } else {
          result.userConfig_ = userConfigBuilder_.build();
        }
        if (defaultConfigBuilder_ == null) {
          result.defaultConfig_ = defaultConfig_;
        } else {
          result.defaultConfig_ = defaultConfigBuilder_.build();
        }
        onBuilt();
        return result;
      }
      @java.lang.Override
      public Builder clone() {
        return super.clone();
      }
      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.setField(field, value);
      }
      @java.lang.Override
      public Builder clearField(
          com.google.protobuf.Descriptors.FieldDescriptor field) {
        return super.clearField(field);
      }
      @java.lang.Override
      public Builder clearOneof(
          com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return super.clearOneof(oneof);
      }
      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index, java.lang.Object value) {
        return super.setRepeatedField(field, index, value);
      }
      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          java.lang.Object value) {
        return super.addRepeatedField(field, value);
      }
      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet) {
          return mergeFrom((yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      public Builder mergeFrom(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet other) {
        if (other == yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet.getDefaultInstance()) return this;
        if (other.hasEffectiveConfig()) {
          mergeEffectiveConfig(other.getEffectiveConfig());
        }
        if (other.hasUserConfig()) {
          mergeUserConfig(other.getUserConfig());
        }
        if (other.hasDefaultConfig()) {
          mergeDefaultConfig(other.getDefaultConfig());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }
      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }
      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig effectiveConfig_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> effectiveConfigBuilder_;
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       * @return Whether the effectiveConfig field is set.
       */
      public boolean hasEffectiveConfig() {
        return effectiveConfigBuilder_ != null || effectiveConfig_ != null;
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       * @return The effectiveConfig.
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getEffectiveConfig() {
        if (effectiveConfigBuilder_ == null) {
          return effectiveConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : effectiveConfig_;
        } else {
          return effectiveConfigBuilder_.getMessage();
        }
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public Builder setEffectiveConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (effectiveConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          effectiveConfig_ = value;
          onChanged();
        } else {
          effectiveConfigBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public Builder setEffectiveConfig(
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder builderForValue) {
        if (effectiveConfigBuilder_ == null) {
          effectiveConfig_ = builderForValue.build();
          onChanged();
        } else {
          effectiveConfigBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public Builder mergeEffectiveConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (effectiveConfigBuilder_ == null) {
          if (effectiveConfig_ != null) {
            effectiveConfig_ =
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.newBuilder(effectiveConfig_).mergeFrom(value).buildPartial();
          } else {
            effectiveConfig_ = value;
          }
          onChanged();
        } else {
          effectiveConfigBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public Builder clearEffectiveConfig() {
        if (effectiveConfigBuilder_ == null) {
          effectiveConfig_ = null;
          onChanged();
        } else {
          effectiveConfig_ = null;
          effectiveConfigBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder getEffectiveConfigBuilder() {
        
        onChanged();
        return getEffectiveConfigFieldBuilder().getBuilder();
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getEffectiveConfigOrBuilder() {
        if (effectiveConfigBuilder_ != null) {
          return effectiveConfigBuilder_.getMessageOrBuilder();
        } else {
          return effectiveConfig_ == null ?
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : effectiveConfig_;
        }
      }
      /**
       * 
       * Effective settings for a Redis cluster (a combination of settings
       * defined in [user_config] and [default_config]).
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig effective_config = 1;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> 
          getEffectiveConfigFieldBuilder() {
        if (effectiveConfigBuilder_ == null) {
          effectiveConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder>(
                  getEffectiveConfig(),
                  getParentForChildren(),
                  isClean());
          effectiveConfig_ = null;
        }
        return effectiveConfigBuilder_;
      }
      private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig userConfig_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> userConfigBuilder_;
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       * @return Whether the userConfig field is set.
       */
      public boolean hasUserConfig() {
        return userConfigBuilder_ != null || userConfig_ != null;
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       * @return The userConfig.
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getUserConfig() {
        if (userConfigBuilder_ == null) {
          return userConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : userConfig_;
        } else {
          return userConfigBuilder_.getMessage();
        }
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public Builder setUserConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (userConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          userConfig_ = value;
          onChanged();
        } else {
          userConfigBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public Builder setUserConfig(
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder builderForValue) {
        if (userConfigBuilder_ == null) {
          userConfig_ = builderForValue.build();
          onChanged();
        } else {
          userConfigBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public Builder mergeUserConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (userConfigBuilder_ == null) {
          if (userConfig_ != null) {
            userConfig_ =
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.newBuilder(userConfig_).mergeFrom(value).buildPartial();
          } else {
            userConfig_ = value;
          }
          onChanged();
        } else {
          userConfigBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public Builder clearUserConfig() {
        if (userConfigBuilder_ == null) {
          userConfig_ = null;
          onChanged();
        } else {
          userConfig_ = null;
          userConfigBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder getUserConfigBuilder() {
        
        onChanged();
        return getUserConfigFieldBuilder().getBuilder();
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getUserConfigOrBuilder() {
        if (userConfigBuilder_ != null) {
          return userConfigBuilder_.getMessageOrBuilder();
        } else {
          return userConfig_ == null ?
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : userConfig_;
        }
      }
      /**
       * 
       * User-defined settings for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig user_config = 2;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> 
          getUserConfigFieldBuilder() {
        if (userConfigBuilder_ == null) {
          userConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder>(
                  getUserConfig(),
                  getParentForChildren(),
                  isClean());
          userConfig_ = null;
        }
        return userConfigBuilder_;
      }
      private yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig defaultConfig_;
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> defaultConfigBuilder_;
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       * @return Whether the defaultConfig field is set.
       */
      public boolean hasDefaultConfig() {
        return defaultConfigBuilder_ != null || defaultConfig_ != null;
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       * @return The defaultConfig.
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig getDefaultConfig() {
        if (defaultConfigBuilder_ == null) {
          return defaultConfig_ == null ? yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : defaultConfig_;
        } else {
          return defaultConfigBuilder_.getMessage();
        }
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public Builder setDefaultConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (defaultConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          defaultConfig_ = value;
          onChanged();
        } else {
          defaultConfigBuilder_.setMessage(value);
        }
        return this;
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public Builder setDefaultConfig(
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder builderForValue) {
        if (defaultConfigBuilder_ == null) {
          defaultConfig_ = builderForValue.build();
          onChanged();
        } else {
          defaultConfigBuilder_.setMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public Builder mergeDefaultConfig(yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig value) {
        if (defaultConfigBuilder_ == null) {
          if (defaultConfig_ != null) {
            defaultConfig_ =
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.newBuilder(defaultConfig_).mergeFrom(value).buildPartial();
          } else {
            defaultConfig_ = value;
          }
          onChanged();
        } else {
          defaultConfigBuilder_.mergeFrom(value);
        }
        return this;
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public Builder clearDefaultConfig() {
        if (defaultConfigBuilder_ == null) {
          defaultConfig_ = null;
          onChanged();
        } else {
          defaultConfig_ = null;
          defaultConfigBuilder_ = null;
        }
        return this;
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder getDefaultConfigBuilder() {
        
        onChanged();
        return getDefaultConfigFieldBuilder().getBuilder();
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder getDefaultConfigOrBuilder() {
        if (defaultConfigBuilder_ != null) {
          return defaultConfigBuilder_.getMessageOrBuilder();
        } else {
          return defaultConfig_ == null ?
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.getDefaultInstance() : defaultConfig_;
        }
      }
      /**
       * 
       * Default configuration for a Redis cluster.
       * 
       *
       * .yandex.cloud.mdb.redis.v1.config.RedisConfig default_config = 3;
       */
      private com.google.protobuf.SingleFieldBuilderV3<
          yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder> 
          getDefaultConfigFieldBuilder() {
        if (defaultConfigBuilder_ == null) {
          defaultConfigBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
              yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfig.Builder, yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigOrBuilder>(
                  getDefaultConfig(),
                  getParentForChildren(),
                  isClean());
          defaultConfig_ = null;
        }
        return defaultConfigBuilder_;
      }
      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }
      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }
      // @@protoc_insertion_point(builder_scope:yandex.cloud.mdb.redis.v1.config.RedisConfigSet)
    }
    // @@protoc_insertion_point(class_scope:yandex.cloud.mdb.redis.v1.config.RedisConfigSet)
    private static final yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet();
    }
    public static yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }
    private static final com.google.protobuf.Parser
        PARSER = new com.google.protobuf.AbstractParser() {
      @java.lang.Override
      public RedisConfigSet parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new RedisConfigSet(input, extensionRegistry);
      }
    };
    public static com.google.protobuf.Parser parser() {
      return PARSER;
    }
    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }
    @java.lang.Override
    public yandex.cloud.api.mdb.redis.v1.config.Redis.RedisConfigSet getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_fieldAccessorTable;
  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n,yandex/cloud/mdb/redis/v1/config/redis" +
      ".proto\022 yandex.cloud.mdb.redis.v1.config" +
      "\032\036google/protobuf/wrappers.proto\032\035yandex" +
      "/cloud/validation.proto\"\200\t\n\013RedisConfig\022" +
      "W\n\020maxmemory_policy\030\001 \001(\0162=.yandex.cloud" +
      ".mdb.redis.v1.config.RedisConfig.Maxmemo" +
      "ryPolicy\022,\n\007timeout\030\002 \001(\0132\033.google.proto" +
      "buf.Int64Value\0228\n\010password\030\003 \001(\tB&\362\3071\"[a" +
      "-zA-Z0-9@=+?*.,!$^<>_-]{8,128}\0226\n\tdata" +
      "bases\030\004 \001(\0132\033.google.protobuf.Int64Value" +
      "B\006\372\3071\002>0\022E\n\027slowlog_log_slower_than\030\005 \001(" +
      "\0132\033.google.protobuf.Int64ValueB\007\372\3071\003>=0\022" +
      "=\n\017slowlog_max_len\030\006 \001(\0132\033.google.protob" +
      "uf.Int64ValueB\007\372\3071\003>=0\0229\n\026notify_keyspac" +
      "e_events\030\007 \001(\tB\031\362\3071\025[KEg$lshzxeAtm]{0,13" +
      "}\022p\n!client_output_buffer_limit_pubsub\030\010" +
      " \001(\0132E.yandex.cloud.mdb.redis.v1.config." +
      "RedisConfig.ClientOutputBufferLimit\022p\n!c" +
      "lient_output_buffer_limit_normal\030\t \001(\0132E" +
      ".yandex.cloud.mdb.redis.v1.config.RedisC" +
      "onfig.ClientOutputBufferLimit\022@\n\021maxmemo" +
      "ry_percent\030\n \001(\0132\033.google.protobuf.Int64" +
      "ValueB\010\372\3071\0041-75\032\311\001\n\027ClientOutputBufferLi" +
      "mit\0228\n\nhard_limit\030\001 \001(\0132\033.google.protobu" +
      "f.Int64ValueB\007\372\3071\003>=0\0228\n\nsoft_limit\030\003 \001(" +
      "\0132\033.google.protobuf.Int64ValueB\007\372\3071\003>=0\022" +
      ":\n\014soft_seconds\030\005 \001(\0132\033.google.protobuf." +
      "Int64ValueB\007\372\3071\003>=0\"\304\001\n\017MaxmemoryPolicy\022" +
      " \n\034MAXMEMORY_POLICY_UNSPECIFIED\020\000\022\020\n\014VOL" +
      "ATILE_LRU\020\001\022\017\n\013ALLKEYS_LRU\020\002\022\020\n\014VOLATILE" +
      "_LFU\020\003\022\017\n\013ALLKEYS_LFU\020\004\022\023\n\017VOLATILE_RAND" +
      "OM\020\005\022\022\n\016ALLKEYS_RANDOM\020\006\022\020\n\014VOLATILE_TTL" +
      "\020\007\022\016\n\nNOEVICTION\020\010\"\344\001\n\016RedisConfigSet\022G\n" +
      "\020effective_config\030\001 \001(\0132-.yandex.cloud.m" +
      "db.redis.v1.config.RedisConfig\022B\n\013user_c" +
      "onfig\030\002 \001(\0132-.yandex.cloud.mdb.redis.v1." +
      "config.RedisConfig\022E\n\016default_config\030\003 \001" +
      "(\0132-.yandex.cloud.mdb.redis.v1.config.Re" +
      "disConfigBr\n$yandex.cloud.api.mdb.redis." +
      "v1.configZJgithub.com/yandex-cloud/go-ge" +
      "nproto/yandex/cloud/mdb/redis/v1/config;" +
      "redisb\006proto3"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.WrappersProto.getDescriptor(),
          yandex.cloud.api.Validation.getDescriptor(),
        });
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor,
        new java.lang.String[] { "MaxmemoryPolicy", "Timeout", "Password", "Databases", "SlowlogLogSlowerThan", "SlowlogMaxLen", "NotifyKeyspaceEvents", "ClientOutputBufferLimitPubsub", "ClientOutputBufferLimitNormal", "MaxmemoryPercent", });
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor =
      internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_descriptor.getNestedTypes().get(0);
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfig_ClientOutputBufferLimit_descriptor,
        new java.lang.String[] { "HardLimit", "SoftLimit", "SoftSeconds", });
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
        internal_static_yandex_cloud_mdb_redis_v1_config_RedisConfigSet_descriptor,
        new java.lang.String[] { "EffectiveConfig", "UserConfig", "DefaultConfig", });
    com.google.protobuf.ExtensionRegistry registry =
        com.google.protobuf.ExtensionRegistry.newInstance();
    registry.add(yandex.cloud.api.Validation.pattern);
    registry.add(yandex.cloud.api.Validation.value);
    com.google.protobuf.Descriptors.FileDescriptor
        .internalUpdateFileDescriptor(descriptor, registry);
    com.google.protobuf.WrappersProto.getDescriptor();
    yandex.cloud.api.Validation.getDescriptor();
  }
  // @@protoc_insertion_point(outer_class_scope)
}
                     © 2015 - 2025 Weber Informatics LLC | Privacy Policy